使用 CloudWatch 监控 Amazon SNS - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 CloudWatch 监控 Amazon SNS

Amazon SNS 与 Amazon CloudWatch 集成在一起,因此您可以收集、查看和分析每个活动 Amazon SNS 通知的指标。为 Amazon SNS 配置 CloudWatch 后,您可以更好地了解 Amazon SNS 主题、推送通知和 SMS 传送的性能。例如,您可以设置一个告警,以便在某个 Amazon SNS 指标(如 NumberOfNotificationsFailed)达到指定阈值时向您发送电子邮件通知。有关 Amazon SNS 发送到 CloudWatch 的所有指标的列表,请参阅 Amazon SNS 指标。有关 Amazon SNS 推送通知的更多信息,请参阅 移动推送通知

注意

您使用 CloudWatch 为您的 Amazon SNS 主题配置的指标将自动收集并以 1 分钟的间隔推送到 CloudWatch。由于是有效的,这些会被收集在所有满足 CloudWatch 指南条件的主题上。自主题上的最后一个活动(即任何 API 调用)的 6 小时内,该主题被 CloudWatch 视为是有效的。

不对 CloudWatch 中报告的 Amazon SNS 指标收费;它们是作为 Amazon SNS 服务的一部分提供的。

查看 Amazon SNS 的 CloudWatch 指标

您可以使用 CloudWatch 控制台、CloudWatch 自己的命令行界面 (CLI) 或者通过以编程方式使用 CloudWatch API 来监控 Amazon SNS 的指标。以下过程展示如何使用 Amazon Web Services Management Console访问指标。

使用 CloudWatch 控制台查看指标
  1. 登录到 CloudWatch 控制台

  2. 在导航面板上,选择 Metrics

  3. All metrics (全部指标) 选项卡上,选择 SNS,然后选择以下维度之一:

    • Country, SMS Type (国家/地区,短信类型)

    • PhoneNumber

    • Topic Metrics (主题指标)

    • Metrics with no dimensions (无维度指标)

  4. 要查看详细信息,请选择特定项目。例如,如果您选择 Topic Metrics(主题指标),然后选择 NumberOfMessagesPublished,则会显示在 6 小时的时间范围内每 1 分钟发布的 Amazon SNS 消息的平均数量。

  5. 要查看 Amazon SNS 使用情况指标,请在 All metrics(所有指标)选项卡上选择 Usage(使用情况),然后选择 Target Amazon SNS usage metric(目标 Amazon SNS 使用情况指标),例如 NumberOfMessagesPublishedPerAccount

设置 Amazon SNS 指标的 CloudWatch 告警

此外,CloudWatch 还允许您设置指标达到阈值时的告警。例如,您可能会为指标设置一个报警器,NumberOfNotificationsFailed,所以在采样周期内您指定的阈值已经满足,那么将有一封电子邮件通知发送给您告知您此事件。

使用 CloudWatch 控制台设置警报
  1. 登录Amazon Web Services Management Console并打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

  2. 选择警报,然后选择创建警报按钮。这样会启动“Create Alarm”向导。

  3. 滚动 Amazon SNS 指标找到您想要设置告警的指标的位置。选择该指标创建一个警报并选择继续

  4. 填写指标的名称描述阈值时间值,然后选择继续

  5. 按照报警器说明选择“Alarm”。如果您希望 CloudWatch 在达到告警状态时向您发送电子邮件,可选择现有的 Amazon SNS 主题,也可选择 Create New Email Topic(新建电子邮件主题)。如果您选择 新建电子邮件主题,则可以为新主题设置名称和电子邮件地址。此清单将会被保存下来并在将来报警器的下列框显示。选择 Continue(继续)。

    注意

    如果您使用新建电子邮件主题来创建新的 Amazon SNS 主题,那么电子邮件地址必须通过验证才能接收通知。当报警器进入报警状态时,才发送电子邮件。如果在电子邮件地址验证之前报警状态发生变化,那么他们不会收到通知。

  6. 此时,“Create Alarm”向导会给您一次机会检查您准备创建的报警器。如果你想做一些变动,那么您可使用右边的“Edit”链接。如果您满意,请选择创建警报

有关使用 CloudWatch 和告警的更多信息,请参阅 CloudWatch 文档

Amazon SNS 指标

Amazon SNS 会向 CloudWatch 发送以下指标。

命名空间 指标 描述

Amazon/SNS

NumberOfMessagesPublished

发布到您的 Amazon SNS 主题的消息数量。

单位:计数

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Sum

Amazon/SNS

NumberOfNotificationsDelivered

从您的 Amazon SNS 主题成功传输到订阅终端节点的消息数量。

要想成功传输,终端节点的订阅必须接受消息。在以下两种情况下订阅可接受消息:a.) 它缺少筛选策略或 b.) 其筛选策略中包含的属性与分配给消息的属性相匹配。如果订阅拒绝消息,则传输尝试不会计入此指标。

单位:计数

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Sum

Amazon/SNS

NumberOfNotificationsFailed

Amazon SNS 传输失败的消息数量。

对于 Amazon SQS、电子邮件、SMS 或移动推送终端节点,当 Amazon SNS 停止尝试传送消息时,此指标会递增 1。对于 HTTP 或 HTTPS 终端节点,此指标包括每次失败的传输尝试(含初始尝试之后的重试)。对于所有其他终端节点,消息传输失败时计数增加 1(不考虑尝试次数)。

此指标不包括被订阅筛选策略拒绝的消息。

您可以控制 HTTP 终端节点的重试次数。有关更多信息,请参阅Amazon SNS 消息传输重试

单位:计数

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Sum、Average

Amazon/SNS

NumberOfNotificationsFilteredOut

被订阅筛选策略拒绝的消息数量。如果消息属性与策略属性不匹配,筛选策略会拒绝消息。

单位:计数

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Sum、Average

Amazon/SNS

NumberOfNotificationsFilteredOut-MessageAttributes

被基于属性的筛选的订阅筛选策略拒绝的消息数量。

单位:CountValid

维度:Application、PhoneNumber、Platform 和 TopicName

有效统计数据:Sum、Average

Amazon/SNS

NumberOfNotificationsFilteredOut-MessageBody

被基于有效负载的筛选的订阅筛选策略拒绝的消息数量。

单位:计数

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Sum、Average

Amazon/SNS

NumberOfNotificationsFilteredOut-InvalidAttributes

由于消息属性无效(例如属性 JSON 格式不正确)而被订阅筛选策略拒绝的消息数量。

单位:计数

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Sum、Average

Amazon/SNS

NumberOfNotificationsFilteredOut-NoMessageAttributes

由于消息没有属性而被订阅筛选策略拒绝的消息数量。

单位:计数

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Sum、Average

Amazon/SNS

NumberOfNotificationsFilteredOut-InvalidMessageBody

由于消息正文对于筛选条件无效(例如无效的 JSON 消息正文)而被订阅筛选策略拒绝的消息数量。

单位:计数

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Sum、Average

Amazon/SNS

NumberOfNotificationsRedrivenToDlq

已移动到死信队列的消息量。

单位:计数

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Sum、Average

Amazon/SNS

NumberOfNotificationsFailedToRedriveToDlq

无法移动到死信队列中的消息量。

单位:计数

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Sum、Average

Amazon/SNS

PublishSize

已发布消息的大小。

单位:字节

有效维度:应用程序、PhoneNumber、平台和 TopicName

有效统计数据:Minimum、Maximum、Average 和 Count

Amazon/SNS

SMSMonthToDateSpentUSD

当前日历月开始以来您因发送 SMS 消息累积产生的费用。

您可以为该指标设置警报,以便在当月至今的费用接近您账户每月的 SMS 支出配额时得到消息。如果 Amazon SNS 确定发送 SMS 消息产生的费用会超过此配额,它会在几分钟内停止发布 SMS 消息。

有关设置您的每月 SMS 支出配额的信息,或有关向 Amazon 请求提高支出配额的信息,请参阅设置发送 SMS 消息的首选项

单位:美元

有效维度:PhoneNumber

有效统计数据:Maximum

Amazon/SNS

SMSSuccessRate

SMS 消息传输的成功率。

单位:计数

有效维度:PhoneNumber

有效统计数据:Sum、Average、Data Samples

Amazon SNS 指标的维度

Amazon Simple Notification Service 会向 CloudWatch 发送以下维度。

维度

描述

Application

应用程序对象的筛选条件,表示某一应用程序和设备向一项支持的推送通知服务(如 APNs 和 FCM)进行了注册。

Application,Platform

应用程序和平台对象筛选条件,其中,平台对象针对的是支持的推送通知服务(如 APNs 和 FCM)。

Country

用于 SMS 消息的目标国家或地区的筛选条件。代表该国家或地区的是其 ISO 3166-1 α-2 代码。

PhoneNumber

当您将 SMS 直接发布到电话号码(无主题)时,筛选电话号码。

Platform

针对推送通知服务(如 APNs 和 FCM)的平台对象的筛选条件。

TopicName

筛选 Amazon SNS 主题名称。

SMSType

SMS 消息的消息类型的筛选条件。可以为 promotionaltransactional

Amazon SNS 使用情况指标

Amazon Simple Notification Service 会向 CloudWatch 发送以下使用情况指标。

命名空间

服务

指标

资源

类型

描述

Amazon/Usage SNS ResourceCount NumberOfMessagesPublishedPerAccount 资源
  • 发布到您 Amazon 账户中 Amazon SNS 主题的消息数量。

  • 单位:无

  • 有效统计数据:Sum

Amazon/Usage SNS ResourceCount ApproximateNumberOfTopics 资源
  • 您的 Amazon 账户中的大致主题数量。

  • 单位:无

  • 有效统计数据:Average、Minimum、Maximum、Sum

Amazon/Usage SNS ResourceCount ApproximateNumberOfFilterPolicies 资源
  • 您的 Amazon 账户中的大致筛选条件策略数量。

  • 单位:无

  • 有效统计数据:Average、Minimum、Maximum、Sum

Amazon/Usage SNS ResourceCount ApproximateNumberOfPendingSubscriptions 资源
  • 您的 Amazon 账户中待处理订阅的大致数量。

  • 单位:无

  • 有效统计数据:Average、Minimum、Maximum、Sum

Amazon/Usage SNS CallCount
  • AddPermission

  • CheckIfPhoneNumberIsOptedOut

  • CreatePlatformApplication

  • CreatePlatformEndpoint

  • ConfirmSubscription

  • CreateSMSSandboxPhoneNumber

  • CreateTopic

  • DeleteEndpoint

  • DeletePlatformApplication

  • DeleteSMSSandboxPhoneNumber

  • DeleteTopic

  • GetEndpointAttributes

  • GetPlatformApplicationAttributes

  • GetSMSAttributes

  • GetSMSSandboxAccountStatus

  • GetSubscriptionAttributes

  • GetTopicAttributes

  • ListEndpointsByPlatformApplication

  • ListOriginationNumbers

  • ListPhoneNumbersOptedOut

  • ListPlatformApplications

  • ListSMSSandboxPhoneNumbers

  • ListSubscriptions

  • ListSubscriptionsByTopic

  • ListTagsForResource

  • ListTopics

  • OptInPhoneNumber

  • RemovePermission

  • SetEndpointAttributes

  • SetPlatformApplicationAttributes

  • SetSMSAttributes

  • SetSubscriptionAttributes

  • SetTopicAttributes

  • Subscribe

  • Unsubscribe

  • UntagResource

  • VerifySMSSandboxPhoneNumber

API
  • 您的 Amazon 账户中选定 Amazon SNS API 的 API 调用次数。

  • 单位:无

  • 有效统计数据:Sum