View a markdown version of this page

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

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

使用监控亚马逊 SNS 主题 CloudWatch

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

注意

您为 Amazon SNS 主题配置的指标会自动收集并以 CloudWatch 1 分钟为间隔推送到 CloudWatch 。这些指标是针对符合活跃 CloudWatch 指导方针的所有主题收集的。自上次 CloudWatch 有关该主题的活动(即任何 API 调用)起最多六小时后,该主题被视为处于活动状态。

中报告的亚马逊 SNS 指标不收取任何费用 CloudWatch;它们是亚马逊 SNS 服务的一部分提供的。

查看亚马逊 SNS 的 CloudWatch 指标

您可以使用 CloudWatch 控制台、 CloudWatch 命令行接口 (CLI) 或使用 API 以编程方式监控 Amazon SNS 的 CloudWatch 指标。以下过程展示如何使用 Amazon Web Services 管理控制台访问指标。

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

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

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

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

    • PhoneNumber

    • Topic Metrics (主题指标)

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

  4. 要查看详细信息,请选择特定项目。例如,如果您选择 “主题指标”,然后选择 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 管理控制台 并打开 CloudWatch 控制台,地址为https://console.aws.amazon.com/cloudwatch/。

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

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

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

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

    注意

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

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

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

Amazon SNS 指标

亚马逊 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

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

单位:计数

有效维度:应用程序 PhoneNumber、平台和 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

已发布消息的大小。对于 PublishBatch API 调用,此指标将整个批次的总大小报告为单个数据点,而不是单个消息的大小。

单位:字节

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

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

Amazon/SNS

SMSMonthToDateSpentUSD

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

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

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

单位:美元

有效维度:无

有效统计数据:Sum

Amazon/SNS

SMSSuccessRate

SMS 消息传输的成功率。

单位:计数

有效尺寸: PhoneNumber

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

Amazon SNS 指标的维度

亚马逊简单通知服务将以下维度发送至 CloudWatch。

维度

说明

Application

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

Application,Platform

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

Country

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

PhoneNumber

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

Platform

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

TopicName

筛选 Amazon SNS 主题名称。

SMSType

SMS 消息的消息类型的筛选条件。可以为 promotional 或 transactional。

Amazon SNS 使用情况指标

亚马逊简单通知服务将以下使用指标发送至 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 账户中对所选亚马逊 SNS API 的 API 调用次数。

  • 尾部不允许有内容。

    单位:无

  • 有效统计数据:Sum