Amazon Simple Notification Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 CloudWatch 监控 Amazon SNS 主题

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

每五分钟会自动收集一次您使用 CloudWatch 为 Amazon SNS 主题配置的指标并将其发送到 CloudWatch。由于是有效的,这些会被收集在所有满足 CloudWatch 指南条件的主题上。主题上自上次活动 6 小时,一个主题被 CloudWatch 视为是有效的(例如任何 API 调用)。

注意

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

访问 Amazon SNS 的 CloudWatch 指标

您可以使用 CloudWatch 控制台、CloudWatch 自己的命令行界面 (CLI) 或者通过以编程方式使用 CloudWatch API 来监控 Amazon SNS 的指标。以下过程演示如何使用这些不同的选项来访问指标。

使用 CloudWatch 控制台查看指标

  1. 登录 AWS 管理控制台并通过以下网址打开 CloudWatch 控制台 https://console.amazonaws.cn/cloudwatch/

  2. 选择 View Metrics

  3. Viewing (查看) 下拉菜单中选择 SNS: Topic Metrics (SNS: 主题指标)SNS: Push Notifications by Application (SNS: 通过应用程序推送通知)SNS: Push Notifications by Application and Platform (SNS: 通过应用程序和平台推送通知)SNS: Push Notifications by Platform (SNS: 通过平台推送通知) 以显示可用指标。

  4. 选择一个指定的项目查看更多详情,如所收集数据的图表。例如,下面针对所选指标发布的消息数量的图表显示了 6 个小时内按五分钟时间间隔发布的 Amazon SNS 消息的平均数目。

从 CloudWatch CLI 访问指标

从 CloudWatch API 访问指标

为 Amazon SNS 指标设置 CloudWatch 警报

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

使用 CloudWatch 控制台设置警报

  1. 登录 AWS 管理控制台并通过以下网址打开 CloudWatch 控制台 https://console.amazonaws.cn/cloudwatch/

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

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

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

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

    注意

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

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

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

Amazon SNS 指标

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

指标 说明

NumberOfMessagesPublished

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

单位:计数

有效统计数据:Sum

NumberOfNotificationsDelivered

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

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

单位:计数

有效统计数据:Sum

NumberOfNotificationsFailed

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

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

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

您可以控制 HTTP 终端节点的重试次数。有关更多信息,请参阅 设置Amazon SNS用于 HTTP/HTTPS 终端节点的传输重试策略

单位:计数

有效统计数据:Sum、Average

NumberOfNotificationsFilteredOut

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

单位:计数

有效统计数据:Sum、Average

NumberOfNotificationsFilteredOut-NoMessageAttributes

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

单位:计数

有效统计数据:Sum、Average

NumberOfNotificationsFilteredOut-InvalidAttributes

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

单位:计数

有效统计数据:Sum、Average

PublishSize

已发布消息的大小。

单位:字节

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

SMSMonthToDateSpentUSD

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

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

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

单位:美元

有效统计数据:Maximum

SMSSuccessRate

SMS 消息传输的成功率。

单位:计数

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

Amazon Simple Notification Service 指标的维度

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

维度

说明

Application

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

Application,Platform

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

Country

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

Platform

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

TopicName

Amazon SNS 主题名称筛选条件。

SMSType

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