本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 SQS 的可用 CloudWatch 指标
亚马逊 SQS 将以下指标发送至。 CloudWatch
注意
由于 Amazon SQS 采用分布式架构,某些指标的结果为近似值。在大多数情况下,该计数应接近队列中的实际消息数。
Amazon SQS 指标
Amazon SQS 会自动在命名空间 CloudWatch下向AWS/SQS
亚马逊发布运营指标。这些指标可帮助您监控队列运行状况和性能。由于 SQS 的分布式特性,许多值都是近似值,但对于大多数运营决策来说足够准确。
注意
-
仅当队列处于活动状态时,所有指标才会发出非负值。
-
有些指标(例如
SentMessageSize
)要等到至少发送一条消息后才会发出。
指标 | 描述 | 单位 | 举报行为 | 关键笔记 |
---|---|---|---|---|
ApproximateAgeOfOldestMessage |
队列中最早的未处理消息的年龄。 | 秒 |
如果队列中至少包含一条活动消息,则会报告。 |
|
ApproximateNumberOfGroupsWithInflightMessages |
仅适用于 FIFO。包含一条或多条正在发送的消息的消息组的数量。 | 计数 |
已报告 FIFO 队列是否处于活动状态。 |
|
ApproximateNumberOfMessagesDelayed |
队列中延迟且无法立即检索的消息数量。 |
计数 |
如果队列中存在延迟消息,则会报告。 |
|
ApproximateNumberOfMessagesNotVisible |
已收到但尚未删除或过期的飞行中消息的数量。 | 计数 |
如果存在飞行中消息,则会报告。 |
|
ApproximateNumberOfMessagesVisible |
当前可供检索和处理的消息数量。 | 计数 |
报告队列是否处于活动状态。 |
|
NumberOfEmptyReceives ¹ |
未返回任何消息的 ReceiveMessageAPI 调用次数。 | 计数 |
在接收操作期间报告。 |
|
NumberOfDeduplicatedSentMessages |
仅适用于 FIFO。经过重复数据删除但未添加到队列中的已发送消息的数量。 | 计数 |
如果检测到重复的MessageDeduplicationId 值或内容,则会报告。 |
|
NumberOfMessagesDeleted ¹ |
成功从队列中删除的消息数量。 |
计数 |
使用有效的收据账号对每个删除请求进行报告。 |
|
NumberOfMessagesReceived ¹ |
ReceiveMessageAPI 返回的消息数量。 | 计数 |
在接收操作期间报告。 |
|
NumberOfMessagesSent ¹ |
成功添加到队列中的消息数量。 | 计数 |
每次成功手动发送都会报告。 |
|
SentMessageSize ¹ |
成功发送到队列的消息的大小。 |
字节 |
至少发送一条消息后才会发出。 |
|
ApproximateNumberOfNoisyGroups |
公平队列中被视为噪音较大的消息组的数量。嘈杂的消息组表示多租户队列中嘈杂的邻居租户。 |
计数 |
如果队列处于活动状态,则报告非负值。 |
|
ApproximateNumberOfMessagesVisibleInQuietGroups |
可见的消息数量,不包括来自嘈杂消息组的消息。 |
计数 |
如果队列处于活动状态,则报告非负值。 |
|
ApproximateNumberOfMessagesNotVisibleInQuietGroups |
正在传输的消息数量,不包括来自嘈杂消息组的消息。 | 计数 |
如果队列处于活动状态,则报告非负值。 |
|
ApproximateNumberOfMessagesDelayedInQuietGroups |
不包括来自嘈杂消息组且延迟且无法立即阅读的消息的消息数量。当队列配置为延迟队列或发送带有延迟参数的消息时,就会出现延迟消息。 | 计数 |
如果队列处于活动状态,则报告非负值。 |
|
ApproximateAgeOfOldestMessageInQuietGroups |
队列中最早的未删除消息的年限,不包括来自嘈杂消息组的消息。 | 秒 |
如果队列处于活动状态,则报告非负值。 |
|
¹ 这些指标反映了系统级别的活动,可能包括重试、重复或延迟消息。如果不考虑消息生命周期行为,请勿使用原始计数来估算实时队列状态。
死信队列 (DLQs) 和指标 CloudWatch
使用时 DLQs,重要的是要了解 Amazon SQS 指标的行为方式:
-
NumberOfMessagesSent
— 此指标在以下方面的行为有所不同: DLQs-
手动发送-此指标捕获手动发送到 DLQ 的邮件。
-
自动重新驱动-此指标不捕获由于处理失败而自动移至 DLQ 的邮件。因此,
NumberOfMessagesSent
和NumberOfMessagesReceived
指标可能会显示出差异。 DLQs
-
-
推荐的指标 DLQs-要监控 DLQ 的状态,请使用该
ApproximateNumberOfMessagesVisible
指标。此指标指示 DLQ 中当前可供处理的消息数量。
公平的队列和 CloudWatch 指标
当您使用公平队列时,Amazon SQS 会发出以下额外指标:
-
ApproximateNumberOfNoisyGroups
-
ApproximateNumberOfMessagesVisibleInQuietGroups
-
ApproximateNumberOfMessagesNotVisibleInQuietGroups
-
ApproximateNumberOfMessagesDelayedInQuietGroups
-
ApproximateAgeOfOldestMessageInQuietGroups
注意
每个QuietGroup
指标都是等效标准队列级别Approximate
指标的子集,但不包括来自嘈杂邻居组的消息。
- 吵闹的群体
-
嘈杂的消息组表示多租户队列中嘈杂的邻居租户。
- 安静的团体
-
不包括嘈杂群组的消息组。
观察 SQS 公平队列行为
要监控 Amazon SQS 公平队列的影响,您可以将Approximate..InQuietGroups
指标与标准队列级别指标进行比较。在特定租户的流量激增期间,一般队列级别的指标可能会显示积压的消息越来越长或消息时限较长。但是,单独查看安静的群组,可以确定大多数非嘈杂的消息组或租户都没有受到影响,并估算出受影响的消息组总数。
虽然这些新指标可以很好地概述了 Amazon SQS 公平队列行为,但了解哪个特定租户导致了负载可能会有所帮助。Amazon CloudWatch 贡献者见解允许您查看有关前 N 个贡献者、独立贡献者总数及其使用情况的指标。这在您与成千上万的租户打交道的场景中特别有用,否则这些租户在发出传统指标时会导致高基数数据(和成本)。
有关公平队列监控配置的示例,请参阅中的示例GitHub
Amazon SQS 指标的维度
Amazon SQS 指标 CloudWatch 使用单一维度:. QueueName
所有指标数据均按队列名称进行分组和筛选。
监控技巧
使用关键指标和 CloudWatch 警报有效地监控 SQS,以检测队列积压、优化性能并保持在服务限制之内。
-
根据 catch 设置CloudWatch 警报
ApproximateNumberOfMessagesVisible
以捕捉待办事项增长情况。 -
NumberOfEmptyReceives
通过监控来调整轮询频率并降低 API 成本。 -
ApproximateNumberOfGroupsWithInflightMessages
在 FIFO 队列中用于诊断吞吐量限制。 -
查看 SQS 配额以了解指标阈值和服务限制。