

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon CloudWatch 監控 Amazon SNS 主題
<a name="sns-monitoring-using-cloudwatch"></a>

Amazon SNS 和 Amazon CloudWatch 已經整合，讓您可收集、檢視和分析每個作用中 Amazon SNS 通知的指標。一旦您為 Amazon SNS 設定好 CloudWatch 之後，就可以對於您的 Amazon SNS 主題、推送通知和簡訊傳送獲得更深入的效能洞察。例如，您可以設定警示，在達到 Amazon SNS 指標的指定閾值 (例如 `NumberOfNotificationsFailed`) 時傳送電子郵件通知。有關 Amazon SNS 傳送至 CloudWatch 之所有指標的清單，請參閱 [Amazon SNS 指標](#sns-metrics)。如需使用 Amazon SNS 推送通知的詳細資訊，請參閱 [使用 Amazon SNS 傳送行動推播通知](sns-mobile-application-as-subscriber.md)。

**注意**  
自動收集您為 Amazon SNS 主題設定 CloudWatch 的指標，並在 *1 分鐘*間隔推送到 CloudWatch。這些指標會針對所有符合 CloudWatch 作用中的要求的主題進行收集。被 CloudWatch 視為作用中的主題為自上次在主題上活動 (例如任何 API 呼叫) 已長達六小時者。  
CloudWatch 中所報告的 Amazon SNS 指標不會產生費用；這是做為 Amazon SNS 服務的一部分提供。

## 檢視 Amazon SNS 的 CloudWatch 指標
<a name="view-cloudwatch-metrics"></a>

您可以使用 CloudWatch 主控台、CloudWatch 本身的命令列界面 (CLI) 或使用 CloudWatch API 的程式設計方式來監控 Amazon SNS 指標。下列程序顯示如何使用 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. 若要檢視更多詳細資訊，請選擇特定項目。例如，如果您選擇 **Topic Metrics** (主題指標)，然後選擇 **NumberOfMessagesPublished**，則會顯示 6 小時範圍內一分鐘時間所發佈 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 管理主控台 ，並在 https：//[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1.  選擇 **Alarms** (警示)，然後選擇 **Create Alarm** (建立警示) 按鈕。這會啟動 **Create Alarm** (建立警示) 精靈。

1.  捲動 Amazon SNS 指標以找到您要設定警示的指標。選取要建立警示的指標，然後選擇 **Continue** (繼續)。

1. 填入指標的 **Name** (名稱)、**Description** (描述)、**Threshold** (閾值) 和 **Time** (時間) 值，然後選擇 **Continue** (繼續)。

1. 選擇 **Alarm** (警示) 做為警示狀態。如果您希望 CloudWatch 在達到警示狀態時傳送電子郵件給您，請選擇現有的 Amazon SNS 主題或選擇 **Create New Email Topic** (建立新的電子郵件主題)。如果您選擇 **Create New Email Topic** (建立新的電子郵件主題)，即可為新的主題設定名稱和電子郵件地址。此清單將會儲存並顯示在下拉式方塊中，供未來警示用。選擇 **Continue** (繼續)。
**注意**  
如果您使用 **Create New Email Topic** (建立新的電子郵件主題) 來建立新的 Amazon SNS 主題，電子郵件地址必須先經過驗證才會接收通知。電子郵件只有在警示進入警示狀態時才會傳送。如果此警示狀態在驗證電子郵件地址之前發生變更，就不會收到通知。

1. 此時，**Create Alarm** (建立警示) 精靈會提供您機會檢閱您將建立的警示。如果您需要進行任何變更，可以使用右邊的 **Edit** (編輯) 連結。編輯好之後，選擇 **Create Alarm** (建立警示)。

如需使用 CloudWatch 和警示的詳細資訊，請參閱 [CloudWatch 文件](https://aws.amazon.com/documentation/cloudwatch)。

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

Amazon SNS 會傳送下列指標至 CloudWatch。


| 命名空間 | 指標 | Description | 
| --- | --- | --- | 
| AWS/SNS |  NumberOfMessagesPublished  |  發佈至 Amazon SNS 主題的訊息數量。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效的統計資訊：**總和  | 
| AWS/SNS |  NumberOfNotificationsDelivered  |  成功從 Amazon SNS 主題傳送至訂閱端點的訊息數量。 為了讓傳遞嘗試成功，端點的訂閱必須接受訊息。訂閱接受訊息的情況為 a.) 它缺少篩選條件政策或 b.) 其篩選條件政策包含符合指派給該訊息的屬性。如果訂閱拒絕訊息，此指標不會計入傳遞嘗試次數。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效的統計資訊：**總和  | 
| AWS/SNS |  NumberOfNotificationsFailed  |  Amazon SNS 無法傳送之訊息的數量。 對於 Amazon SQS、電子郵件、簡訊或行動推送端點，當 Amazon SNS 停止嘗試傳遞訊息，此指標會以 1 的方式遞增。對於 HTTP 或 HTTPS 端點，指標包含每個失敗的傳遞嘗試，包括首次嘗試之後的重試次數。對於所有其他端點，計數會在訊息傳遞失敗時增加 1 (不論嘗試次數多寡)。 這個指標不包含被訂閱篩選政策拒絕的訊息。 您可以控制 HTTP 端點的重試數目。如需詳細資訊，請參閱[Amazon SNS 訊息傳遞重試](sns-message-delivery-retries.md)。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效統計資料：**總和、平均  | 
| AWS/SNS | NumberOfNotificationsFilteredOut |  被訂閱篩選政策拒絕的訊息數。當訊息屬性不符政策屬性時，篩選政策會拒絕訊息。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效統計資料：**總和、平均  | 
| AWS/SNS | NumberOfNotificationsFilteredOut-MessageAttributes | 被以屬性為基礎篩選的訂閱篩選政策拒絕的訊息數。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效統計資料：**總和、平均  | 
| AWS/SNS | NumberOfNotificationsFilteredOut-MessageBody |  被以承載為基礎篩選的訂閱篩選政策拒絕的訊息數。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效統計資料：**總和、平均  | 
| AWS/SNS | NumberOfNotificationsFilteredOut-InvalidAttributes |  因為訊息屬性無效而被訂閱篩選條件政策拒絕的訊息數量，例如，因為屬性 JSON 的格式不正確。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效統計資料：**總和、平均  | 
| AWS/SNS | NumberOfNotificationsFilteredOut-NoMessageAttributes |  因為訊息沒有屬性而被訂閱篩選條件政策拒絕的訊息數量。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效統計資料：**總和、平均  | 
| AWS/SNS | NumberOfNotificationsFilteredOut-InvalidMessageBody |  因訊息內文無效而被訂閱篩選政策拒絕的訊息數，例如，JSON 訊息內文無效。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效統計資料：**總和、平均  | 
| AWS/SNS |  NumberOfNotificationsRedrivenToDlq  |  已移至無效字母佇列的訊息數量。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效統計資料：**總和、平均 | 
| AWS/SNS |  NumberOfNotificationsFailedToRedriveToDlq  |  無法移至無效字母佇列的訊息數量。 **單位：**計數 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效統計資料：**總和、平均 | 
| AWS/SNS |  PublishSize  |  已發佈訊息的大小。 **單位：**位元組 **有效維度：**Application、 PhoneNumber、 Platform 和 TopicName **有效統計資料：**最小值、最大值、平均值和計數  | 
| AWS/SNS | SMSMonthToDateSpentUSD |  您從當月月初開始傳送簡訊所累計的費用。 您可以為此指標設定警示，以得知本月至今的費用是否已接近您帳戶的每月簡訊費用配額。當 Amazon SNS 判定傳送簡訊會致使成本超過此配額時，就會在幾分鐘內停止發步簡訊。 如需有關每月簡訊費用配額的設定資訊，或者要求 AWS提高費用配額的相關資訊，請參閱 [在 Amazon SNS 中設定簡訊偏好設定](sms_preferences.md)。 **單位：**USD **有效維度：**無 **有效的統計資訊：**總和  | 
| AWS/SNS |  SMSSuccessRate  |  成功傳送簡訊的比率。 **單位：**計數 **有效維度：**PhoneNumber **有效統計資料：**總和、平均、資料範例  | 

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

Amazon Simple Notification Service 會傳送下列維度至 CloudWatch。


|  維度  |  Description  | 
| --- | --- | 
|  Application  |  篩選應用程式物件，該物件代表向其中一個支援的推送通知服務 (例如 APN 和 FCM) 註冊的應用程式和裝置。  | 
|  Application,Platform  |  篩選應用程式和平台物件，其中平台物件適用於支援的推送通知服務，例如 APN 和 FCM。  | 
| Country |  篩選簡訊的目的地國家/地區或區域。國家/地區或區域是以其 ISO 3166-1 alpha-2 代碼表示。  | 
|  PhoneNumber  |  當您直接將簡訊發佈至電話號碼 (不含主題) 時，篩選電話號碼。  | 
|  Platform  |  篩選適用於推送通知服務 (例如 APN 和 FCM) 的平台物件。  | 
|  TopicName  |  篩選 Amazon SNS 主題名稱。  | 
| SMSType |  篩選簡訊的訊息類型。可以是*促銷型*或*交易型*。  | 

## Amazon SNS 用量指標
<a name="sns-usage-metrics"></a>

Amazon Simple Notification Service 會傳送下列用量指標至 CloudWatch。


|  命名空間  |  服務  | 指標 | 資源 | 類型 | 說明 | 
| --- | --- | --- | --- | --- | --- | 
| AWS/用量 | SNS | ResourceCount | NumberOfMessagesPublishedPerAccount | 資源 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/用量 | SNS | ResourceCount | ApproximateNumberOfTopics | 資源 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/用量 | SNS | ResourceCount | ApproximateNumberOfFilterPolicies | 資源 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/用量 | SNS | ResourceCount | ApproximateNumberOfPendingSubscriptions | 資源 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/用量 | SNS | CallCount |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | API |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 