

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

# 使用监控亚马逊 SNS 主题 CloudWatch
<a name="sns-monitoring-using-cloudwatch"></a>

Amazon SNS 和亚马逊 CloudWatch 集成在一起，因此您可以收集、查看和分析每条有效的亚马逊 SNS 通知的指标。配置 CloudWatch Amazon SNS 后，您可以更好地了解您的 Amazon SNS 主题、推送通知和短信发送的表现。例如，您可以设置一个告警，以便在某个 Amazon SNS 指标（如 `NumberOfNotificationsFailed`）达到指定阈值时向您发送电子邮件通知。有关 Amazon SNS 发送到的所有指标的列表 CloudWatch，请参阅。[Amazon SNS 指标](#sns-metrics)有关 Amazon SNS 推送通知的更多信息，请参阅 [使用 Amazon SNS 发送移动推送通知](sns-mobile-application-as-subscriber.md)。

**注意**  
系统会自动收集您 CloudWatch 为 Amazon SNS 主题配置的指标，并每隔 *1* 分钟推送 CloudWatch 一次。这些指标是针对所有符合活跃 CloudWatch 指南的话题收集的。自该主题的上次活动（即任何 API 调用）起，该主题最多在六小时内被视为处于活动状态。 CloudWatch   
中报告的亚马逊 SNS 指标不收取任何费用 CloudWatch；这些指标是作为亚马逊 SNS 服务的一部分提供的。

## 查看 Amazon SNS 的 CloudWatch 指标
<a name="view-cloudwatch-metrics"></a>

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

**使用 CloudWatch 控制台查看指标**

1. 登录 [CloudWatch 控制台](https://console.aws.amazon.com/cloudwatch)。

1. 在导航面板上，选择 **Metrics**。

1. 在 **All metrics (全部指标)** 选项卡上，选择 **SNS**，然后选择以下维度之一：
   + **Country, SMS Type (国家/地区，短信类型)**
   + **PhoneNumber**
   + **Topic Metrics (主题指标)**
   + **Metrics with no dimensions (无维度指标)**

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

1. 要查看 Amazon SNS 使用情况指标，请在 **All metrics**（所有指标）选项卡上选择 **Usage**（使用情况），然后选择 **Target Amazon SNS usage metric**（目标 Amazon SNS 使用情况指标），例如 `NumberOfMessagesPublishedPerAccount`。

## 为 Amazon SNS 指标设置 CloudWatch 警报
<a name="SNS_AlarmMetrics"></a>

CloudWatch 还允许您在指标达到阈值时设置警报。例如，您可以为指标设置警报 **NumberOfNotificationsFailed**，以便在采样周期内达到指定的阈值时，系统会发送一封电子邮件通知来通知您该事件。

**使用 CloudWatch 控制台设置警报**

1. 登录 AWS 管理控制台 并打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

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

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

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

1. 按照报警器说明选择“**Alarm**”。如果您 CloudWatch 想在达到警报状态时向您发送电子邮件，请选择现有的 Amazon SNS 主题或选择**创建新电子邮件**主题。如果您选择 **新建电子邮件主题**，则可以为新主题设置名称和电子邮件地址。此清单将会被保存下来并在将来报警器的下列框显示。选择**继续**。
**注意**  
如果您使用**新建电子邮件主题**来创建新的 Amazon SNS 主题，那么电子邮件地址必须通过验证才能接收通知。当报警器进入报警状态时，才发送电子邮件。如果在电子邮件地址验证之前报警状态发生变化，那么他们不会收到通知。

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

有关使用 CloudWatch 和警报的更多信息，请参阅[CloudWatch文档](https://aws.amazon.com/documentation/cloudwatch)。

## Amazon SNS 指标
<a name="sns-metrics"></a>

Amazon SNS 向发送以下指标。 CloudWatch


| 命名空间 | 指标 | 说明 | 
| --- | --- | --- | 
| AWS/SNS |  NumberOfMessagesPublished  |  发布到您的 Amazon SNS 主题的消息数量。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum  | 
| AWS/SNS |  NumberOfNotificationsDelivered  |  从您的 Amazon SNS 主题成功传输到订阅终端节点的消息数量。 要想成功传输，终端节点的订阅必须接受消息。在以下两种情况下订阅可接受消息：a.) 它缺少筛选策略或 b.) 其筛选策略中包含的属性与分配给消息的属性相匹配。如果订阅拒绝消息，则传输尝试不会计入此指标。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum  | 
| AWS/SNS |  NumberOfNotificationsFailed  |  Amazon SNS 传输失败的消息数量。 对于 Amazon SQS、电子邮件、SMS 或移动推送终端节点，当 Amazon SNS 停止尝试传送消息时，此指标会递增 1。对于 HTTP 或 HTTPS 终端节点，此指标包括每次失败的传输尝试（含初始尝试之后的重试）。对于所有其他终端节点，消息传输失败时计数增加 1（不考虑尝试次数）。 此指标不包括被订阅筛选策略拒绝的消息。 您可以控制 HTTP 终端节点的重试次数。有关更多信息，请参阅 [Amazon SNS 消息传输重试](sns-message-delivery-retries.md)。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum、Average  | 
| AWS/SNS | NumberOfNotificationsFilteredOut |  被订阅筛选策略拒绝的消息数量。如果消息属性与策略属性不匹配，筛选策略会拒绝消息。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum、Average  | 
| AWS/SNS | NumberOfNotificationsFilteredOut-MessageAttributes | 被基于属性的筛选的订阅筛选策略拒绝的消息数量。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum、Average  | 
| AWS/SNS | NumberOfNotificationsFilteredOut-MessageBody |  被基于有效负载的筛选的订阅筛选策略拒绝的消息数量。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum、Average  | 
| AWS/SNS | NumberOfNotificationsFilteredOut-InvalidAttributes |  由于消息属性无效（例如属性 JSON 格式不正确）而被订阅筛选策略拒绝的消息数量。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum、Average  | 
| AWS/SNS | NumberOfNotificationsFilteredOut-NoMessageAttributes |  由于消息没有属性而被订阅筛选策略拒绝的消息数量。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum、Average  | 
| AWS/SNS | NumberOfNotificationsFilteredOut-InvalidMessageBody |  由于消息正文对于筛选条件无效（例如无效的 JSON 消息正文）而被订阅筛选策略拒绝的消息数量。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum、Average  | 
| AWS/SNS |  NumberOfNotificationsRedrivenToDlq  |  已移动到死信队列的消息量。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum、Average | 
| AWS/SNS |  NumberOfNotificationsFailedToRedriveToDlq  |  无法移动到死信队列中的消息量。 **单位**：计数 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Sum、Average | 
| AWS/SNS |  PublishSize  |  已发布消息的大小。 **单位**：字节 **有效维度：**应用程序 PhoneNumber、平台和 TopicName **有效统计数据**：Minimum、Maximum、Average 和 Count  | 
| AWS/SNS | SMSMonthToDateSpentUSD |  当前日历月开始以来您因发送 SMS 消息累积产生的费用。 您可以为此指标设置警报，以了解您的 month-to-date费用何时接近账户的每月短信支出配额。如果 Amazon SNS 确定发送 SMS 消息产生的费用会超过此配额，它会在几分钟内停止发布 SMS 消息。 有关设置您的每月 SMS 支出配额的信息，或有关向 AWS请求提高支出配额的信息，请参阅[设置 Amazon SNS 中的短信收发首选项](sms_preferences.md)。 **单位**：美元 **有效维度**：无 **有效统计数据**：Sum  | 
| AWS/SNS |  SMSSuccessRate  |  SMS 消息传输的成功率。 **单位**：计数 **有效尺寸：** PhoneNumber **有效统计数据**：Sum、Average、Data Samples  | 

## Amazon SNS 指标的维度
<a name="sns-metric-dimensions"></a>

Amazon 简单通知服务会将以下维度发送至 CloudWatch。


|  维度  |  说明  | 
| --- | --- | 
|  Application  |  对应用程序对象进行筛选，这些对象表示在支持的推送通知服务之一（例如和 FCM）中注册的应用程序 APNs 和设备。  | 
|  Application,Platform  |  对应用程序和平台对象进行筛选，其中平台对象用于支持的推送通知服务，例如 APNs 和 FCM。  | 
| Country |  用于 SMS 消息的目标国家或地区的筛选条件。代表该国家或地区的是其 ISO 3166-1 α-2 代码。  | 
|  PhoneNumber  |  当您将 SMS 直接发布到电话号码（无主题）时，筛选电话号码。  | 
|  Platform  |  筛选推送通知服务的平台对象，例如 APNs 和 FCM。  | 
|  TopicName  |  筛选 Amazon SNS 主题名称。  | 
| SMSType |  SMS 消息的消息类型的筛选条件。可以为 *promotional* 或 *transactional*。  | 

## Amazon SNS 使用情况指标
<a name="sns-usage-metrics"></a>

Amazon 简单通知服务向发送以下使用量指标 CloudWatch。


|  命名空间  |  服务  | 指标 | 资源 | 类型 | 说明 | 
| --- | --- | --- | --- | --- | --- | 
| AWS/Usage | SNS | ResourceCount | NumberOfMessagesPublishedPerAccount | 资源 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/Usage | SNS | ResourceCount | ApproximateNumberOfTopics | 资源 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/Usage | SNS | ResourceCount | ApproximateNumberOfFilterPolicies | 资源 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/Usage | SNS | ResourceCount | ApproximateNumberOfPendingSubscriptions | 资源 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/Usage | SNS | CallCount |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | API |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 