Links#
1. Dashboard Rule#
Folder: Messaging
Dashboard: SQS - Overview
Rows:
Overview:
backlog 是否增长,oldest message 是否变老,DLQ 是否有消息
Drilldown:
按 queue / producer / consumer 拆开看
Capacity:
incoming / processed rate、drain time、consumer capacity
Debug:
visibility timeout、empty receive、delayed message、in-flight 细节,不放第一屏;排查消费异常时查看2. Overview#
| Panel | Metrics | Why |
|---|---|---|
| Oldest message age | ApproximateAgeOfOldestMessage |
队列最重要的用户影响信号 |
| Visible backlog | ApproximateNumberOfMessagesVisible |
等待消费的消息量 |
| In-flight messages | ApproximateNumberOfMessagesNotVisible |
正在被 consumer 处理的消息量 |
| Incoming rate | NumberOfMessagesSent |
producer 写入速度 |
| Processed rate | NumberOfMessagesDeleted |
consumer 完成速度 |
| DLQ depth | DLQ ApproximateNumberOfMessagesVisible |
失败消息是否堆积 |
Unit: ops/s#
ops/s means operations per second. In SQS dashboard, one operation usually means one message-related metric event, not a business transaction.
NumberOfMessagesSent:
messages sent per second
NumberOfMessagesReceived:
messages received per second
NumberOfMessagesDeleted:
messages deleted per second
NumberOfEmptyReceives:
empty receive calls per secondYACE collects these SQS CloudWatch metrics with Statistic: Sum. Sum is the total count inside one CloudWatch period. To show ops/s, divide by the period seconds:
ops/s = CloudWatch Sum / period_seconds
example:
period = 300s
NumberOfMessagesDeleted Sum = 1500
ops/s = 1500 / 300 = 5So:
raw Sum:
count per CloudWatch period
ops/s:
normalized per-second rate3. Drilldown#
| Panel | Metrics | Why |
|---|---|---|
| Queue backlog by queue | ApproximateNumberOfMessagesVisible |
找到具体积压 queue |
| Age by queue | ApproximateAgeOfOldestMessage |
优先处理影响最大的 queue |
| Sent vs deleted | NumberOfMessagesSent, NumberOfMessagesDeleted |
判断是 producer 激增还是 consumer 变慢 |
| Receive behavior | NumberOfMessagesReceived, NumberOfEmptyReceives |
判断 polling 是否低效 |
| In-flight saturation | ApproximateNumberOfMessagesNotVisible |
visibility timeout / consumer 并发问题 |
4. Capacity#
| Panel | Metrics | Why |
|---|---|---|
| Backlog trend | ApproximateNumberOfMessagesVisible |
判断是否持续积压 |
| Drain time | backlog / processed rate | 估算清空队列需要多久 |
| Producer trend | NumberOfMessagesSent |
识别业务峰值 |
| Consumer throughput trend | NumberOfMessagesDeleted |
估算 worker 扩容需求 |
| DLQ trend | DLQ visible messages | 识别失败率是否长期上升 |
5. Debug#
| Panel | Metrics | Why |
|---|---|---|
| Delayed messages | ApproximateNumberOfMessagesDelayed |
排查 delay queue 或 message timer |
| Empty receives | NumberOfEmptyReceives |
polling 参数或 consumer 空转问题 |
| Receive count gap | NumberOfMessagesReceived vs NumberOfMessagesDeleted |
识别重复处理或处理失败 |
| FIFO group pressure | FIFO group / dedup related app metrics | FIFO 场景下需要业务侧指标补足 |
6. YACE Metrics#
如果 SQS dashboard 使用 aws_sqs_* metrics,需要 YACE 采集 AWS/SQS。DLQ 也是一个普通 queue,需要把 DLQ 一起纳入 discovery。
YACE config:
apiVersion: v1alpha1
sts-region: ap-northeast-1
discovery:
jobs:
- type: AWS/SQS
regions:
- ap-northeast-1
customTags:
- key: environment
value: uat
period: 300
length: 600
nilToZero: true
metrics:
- name: ApproximateAgeOfOldestMessage
statistics: [Average, Maximum]
- name: ApproximateNumberOfMessagesVisible
statistics: [Average, Maximum]
- name: ApproximateNumberOfMessagesNotVisible
statistics: [Average, Maximum]
- name: ApproximateNumberOfMessagesDelayed
statistics: [Average, Maximum]
- name: NumberOfMessagesSent
statistics: [Sum]
- name: NumberOfMessagesDeleted
statistics: [Sum]
- name: NumberOfMessagesReceived
statistics: [Sum]
- name: NumberOfEmptyReceives
statistics: [Sum]同一个配置文件也放在:
static/Grafana/yace-sqs-config.yml确认 metric name:
{__name__=~"aws_sqs_.*"}7. Do Not Put In Overview#
不要放:
每个 worker 的内部指标
empty receive 明细
FIFO dedup 低频指标
原因:
SQS overview 重点是 age、backlog、throughput、DLQ