YACE Dashboard


1. YACE Config#

这些 metric 都是 AWS 官方 AWS/DynamoDB CloudWatch metrics。ThrottledRequests 也是真实存在的 metric,但它是 sparse / event-driven metric,通常只有发生 throttle 后才容易在 CloudWatch metrics / YACE 输出中看到。通用原则见 Monitoring Exporters.

如果你的 metrics 已经通过 relabel 统一成 environment label,可以使用 environment 版本 dashboard。它会增加 $environment 变量,并在所有 DynamoDB 查询里加上:

{environment=~"$environment", dimension_TableName=~"$table_name"}

This dashboard assumes YACE exposes DynamoDB table name as dimension_TableName, for example:

environment="uat"
dimension_TableName="read_cursor_dynamo"
apiVersion: v1alpha1
sts-region: ap-northeast-1
discovery:
  jobs:
    - type: AWS/DynamoDB
      regions: [ap-northeast-1]
      customTags:
        - key: environment
          value: uat
      period: 300
      length: 600
      nilToZero: true
      metrics:
        - name: ThrottledRequests
          statistics: [Sum]
        - name: ReadThrottleEvents
          statistics: [Sum]
        - name: WriteThrottleEvents
          statistics: [Sum]
        - name: SuccessfulRequestLatency
          statistics: [Average, p95, p99]
        - name: SystemErrors
          statistics: [Sum]
        - name: UserErrors
          statistics: [Sum]
        - name: ConsumedReadCapacityUnits
          statistics: [Sum]
        - name: ConsumedWriteCapacityUnits
          statistics: [Sum]
        - name: ProvisionedReadCapacityUnits
          statistics: [Average]
        - name: ProvisionedWriteCapacityUnits
          statistics: [Average]
        - name: ConditionalCheckFailedRequests
          statistics: [Sum]
        - name: ReturnedItemCount
          statistics: [Sum]

2. Metric Check#

Metric AWS/DynamoDB Metric? Recommended Statistic When Datapoint Appears Note
ThrottledRequests yes Sum DynamoDB throttles a request sparse metric; may be absent when no throttling happened
ReadThrottleEvents yes Sum read operation is throttled use with WriteThrottleEvents to split read/write pressure
WriteThrottleEvents yes Sum write operation is throttled use with ReadThrottleEvents to split read/write pressure
SuccessfulRequestLatency yes Average, p95, p99 successful DynamoDB request completes only successful requests are included
SystemErrors yes Sum DynamoDB service-side error occurs sparse metric; should normally be zero/absent
UserErrors yes Sum client-side request error occurs includes bad request patterns; inspect SDK/app errors
ConsumedReadCapacityUnits yes Sum read request consumes RCU appears when reads happen; Sum is per period
ConsumedWriteCapacityUnits yes Sum write request consumes WCU appears when writes happen; Sum is per period
ProvisionedReadCapacityUnits yes Average table/index has provisioned read capacity mainly useful for provisioned mode capacity ratio
ProvisionedWriteCapacityUnits yes Average table/index has provisioned write capacity mainly useful for provisioned mode capacity ratio
ConditionalCheckFailedRequests yes Sum condition expression evaluates false expected in optimistic-lock/idempotency flows; alert on abnormal spikes
ReturnedItemCount yes Sum Query or Scan returns items useful for query efficiency and large-result detection

Why a real metric may not appear:

no datapoints:
    CloudWatch / YACE may not show a metric until the event happened recently

wrong dimensions:
    DynamoDB metrics may be table-level, operation-level, or index-level
    check actual labels exposed by YACE before writing PromQL

discovery filter:
    if YACE discovery does not find the table, no metric will be scraped

metric spelling:
    ReturnedItemCount is valid
    ReturnedItemCoun is invalid

AWS CLI check:

aws cloudwatch list-metrics \
  --namespace AWS/DynamoDB \
  --metric-name ThrottledRequests \
  --region ap-northeast-1

If it returns empty, it does not prove the metric is invalid. It usually means no recent datapoint exists for the selected region/account/dimensions.

3. Dashboard Rows#

Row Panels
Overview throttled requests, latency p95, system errors, consumed capacity
Drilldown read/write throttle split, user errors, conditional failures
Capacity consumed vs provisioned RCU/WCU
Debug returned item count and operation-level latency

4. Verify#

{__name__=~"aws_dynamodb_.*"}