

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

# 使用 Amazon CloudWatch 監控 Amazon Personalize
<a name="personalize-monitoring"></a>

透過 Amazon CloudWatch，您可以取得與 Amazon Personalize 相關聯的指標。您可以設定警示，在一或多個這些指標超出既定閾值時通知您。若要查看指標，您可以使用 [Amazon CloudWatch](https://console.aws.amazon.com/cloudwatch/)、[Amazon AWS Command Line Interface](https://docs.aws.amazon.com/AmazonCloudWatch/latest/cli/) 或 [CloudWatch API](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/)。



**Topics**
+ [使用 Amazon Personalize 的 CloudWatch 指標](#using-metrics)
+ [存取 Amazon Personalize 指標](#how-to-access)
+ [建立 警示](#alarms)
+ [Amazon Personalize 無伺服器監控應用程式範例](#creating-monitor-app)
+ [Amazon Personalize 的 CloudWatch 指標](cloudwatch-metrics.md)

## 使用 Amazon Personalize 的 CloudWatch 指標
<a name="using-metrics"></a>

要使用指標，您必須指定下列資訊：
+  指標名稱。
+ 指標維度。*維度*是一組用來單獨辨識指標的名稱值組。

您可以使用 AWS 管理主控台、 AWS CLI或 CloudWatch API 取得 Amazon Personalize 的監控資料。您也可以透過其中一個 AWS SDKs或 CloudWatch API 工具來使用 CloudWatch API。主控台會根據 CloudWatch API 的原始資料顯示一系列圖形。根據需求，您可能偏好使用顯示於主控台中的圖形或自 API 擷取的圖形。

下列清單顯示一些常見的指標用途。這些是協助您開始的建議，而不是完整清單。


| 運作方式？ | 相關指標 | 
| --- | --- | 
|  如何追蹤已記錄的事件數？  |  監控 `PutEventsRequests` 指標。  | 
|  如何監控 DatasetImportJob 錯誤？  |  使用 `DatasetImportJobError` 指標。  | 
|  如何監控 `GetRecommendations` 呼叫延遲？  |  使用 `GetRecommendationsLatency` 指標。  | 

您必須擁有適當的 CloudWatch 許可，才能使用 CloudWatch 監控 Amazon Personalize。如需詳細資訊，請參閱 [Amazon CloudWatch 的身分驗證和存取控制](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/auth-and-access-control-cw.html)。

## 存取 Amazon Personalize 指標
<a name="how-to-access"></a>

下列範例示範如何使用 CloudWatch 主控台、 AWS CLI和 CloudWatch API 存取 Amazon Personalize 指標。

**檢視指標 (主控台)**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 選擇**指標**，選擇**所有指標**索引標籤，然後選擇 `AWS/Personalize`。

1. 選擇指標維度。

1. 從清單中選擇所需指標，然後選擇圖形的期間。

**檢視一段期間內收到的事件指標 (CLI)**
+ 開啟 AWS CLI 並輸入下列命令：

  ```
  aws cloudwatch get-metric-statistics \
    --metric-name PutEventsRequests \
    --start-time 2019-03-15T00:00:20Z \
    --period 3600 \
    --end-time 2019-03-16T00:00:00Z \
    --namespace AWS/Personalize \
    --dimensions Name=EventTrackerArn,Value=EventTrackerArn \
    --statistics Sum
  ```

  此範例顯示一段期間內為指定的事件追蹤器 ARN 收到的事件。如需詳細資訊，請參閱 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html)。

**存取指標 (CloudWatch API)**
+  呼叫 `[GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)`。如需詳細資訊，請參閱 [Amazon CloudWatch API 參考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/)。

## 建立 警示
<a name="alarms"></a>

您可以建立 CloudWatch 警報，在警示變更狀態時傳送 Amazon Simple Notification Service (Amazon SNS) 訊息。警示會在您指定的期間，監看單一指標。警示會根據在數段期間內與指定閾值相關的指標值，來執行一個或多個動作。動作是傳送至 Amazon SNS 主題或政策的 AWS Auto Scaling 通知。

警示僅會針對持續狀態變更調用動作。CloudWatch 警示不會只因為處於特定狀態而調用動作。狀態必須發生變更並維持一段指定的時間。

**若要設定警示 (主控台)**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms (警示)**，然後選擇 **Create alarm (建立警示)**。這會啟動 **Create Alarm Wizard (建立警示精靈)**。

1. 選擇**選取指標**。

1. **在所有指標**索引標籤中，選擇 `AWS/Personalize`。

1. 選擇 **EventTrackerArn**，然後選擇 **PutEventsRequests** 指標。

1. 選擇 **Graphed metrics (圖表化指標)** 標籤。

1. 在 **Statistic (統計資料)** 中選擇 **Sum (總和)**。

1. 選擇**選取指標**。

1. 填入 **Name** (名稱) 和 **Description** (說明)。對於 **Whenever (每當)**，選擇 **>** 並輸入您選擇的最大值。

1. 如果您希望 CloudWatch 在達到警示狀態時傳送電子郵件給您，請在**每當此警示：**中選擇**狀態為「警示」**。若要傳送警示到現有的 Amazon SNS 主題，請在**傳送通知至：**選項中選擇現有的 SNS 主題。若要設定新電子郵件訂閱清單的名稱和電子郵件地址，請選擇**新增清單**。CloudWatch 會儲存清單並將其顯示在 欄位中，以便您用來設定未來的警示。
**注意**  
如果您使用**新清單**建立新的 Amazon SNS 主題，則必須在預期收件人收到通知之前驗證電子郵件地址。Amazon SNS 只會在警示進入警示狀態時才會傳送電子郵件。如果此警示狀態在驗證電子郵件地址之前發生變更，目標收件人就不會收到通知。

1. 選擇 **Create alarm** (建立警示)。

**設定警示 (AWS CLI)**
+ 開啟 AWS CLI，然後輸入下列命令。變更 `alarm-actions` 參數的值，以參考您先前建立的 Amazon SNS 主題。

  ```
  aws cloudwatch put-metric-alarm \
      --alarm-name PersonalizeCLI \
      --alarm-description "Alarm when more than 10 events occur" \
      --metric-name PutEventsRequests \
      --namespace  AWS/Personalize \
      --statistic Sum \
      --period 300 \
      --threshold 10 \
      --comparison-operator GreaterThanThreshold \
      --evaluation-periods 1 \
      --unit Count \
      --dimensions Name=EventTrackerArn,Value=EventTrackerArn \
      --alarm-actions SNSTopicArn
  ```

  此範例說明當特定事件追蹤器 ARN 在 5 分鐘內發生 10 次以上的事件時，如何為這種情況建立警示。如需詳細資訊，請參閱 [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html)。

**使用 CloudWatch API 設定警示**
+ 呼叫 `[PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html)`。如需詳細資訊，請參閱 *[Amazon CloudWatch API 參考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/)*。

## Amazon Personalize 無伺服器監控應用程式範例
<a name="creating-monitor-app"></a>

如需新增 Amazon Personalize 監控、警示和最佳化功能的範例應用程式，請參閱 [Amazon Personalize 範例儲存庫中的 Amazon Personalize 監控](https://github.com/aws-samples/amazon-personalize-monitor)。 [https://github.com/aws-samples/amazon-personalize-samples](https://github.com/aws-samples/amazon-personalize-samples)

# Amazon Personalize 的 CloudWatch 指標
<a name="cloudwatch-metrics"></a>

本節包含適用於 Amazon Personalize 的 Amazon CloudWatch 指標相關資訊。如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon Personalize](personalize-monitoring.md)。

下表列出 Amazon Personalize 指標。除了 GetRecommendations 和 GetPersonalizedRanking 之外的所有指標都支援這些統計資料：`Average, Minimum, Maximum, Sum`。僅限 GetRecommendations 和 GetPersonalizedRanking 支援`Sum`。


| 指標 | Description | 
| --- | --- | 
| DatasetImportJobRequests |  成功 [CreateDatasetImportJob](API_CreateDatasetImportJob.md) API 呼叫的數量。 維度：`DatasetGroupArn, DatasetArn, DatasetImportJobArn`  | 
| DatasetImportJobError |  產生錯誤的 `CreateDatasetImportJob` API 呼叫數。 維度：`DatasetGroupArn, DatasetArn, DatasetImportJobArn`  | 
| DatasetImportJobExecutionTime |  操作的 `CreateDatasetImportJob` API 呼叫和完成 (或失敗) 間的相隔時間。 維度：`DatasetGroupArn, DatasetArn, DatasetImportJobArn` 單位：秒  | 
| DatasetSize |  資料集匯入任務所匯入的資料大小。 維度：`DatasetGroupArn, DatasetArn, DatasetImportJobArn` 單位：位元組  | 
| SolutionTrainingJobRequests |  成功 [CreateSolutionVersion](API_CreateSolutionVersion.md) API 呼叫的數量。 維度：`SolutionArn, SolutionVersionArn`  | 
| SolutionTrainingJobError |  產生錯誤的 `CreateSolutionVersion` API 呼叫數。 維度：`SolutionArn, SolutionVersionArn`  | 
| SolutionTrainingJobExecutionTime |  操作的 `CreateSolutionVersion` API 呼叫和完成 (或失敗) 間的相隔時間。 維度：`SolutionArn, SolutionVersionArn` 單位：秒  | 
| GetPersonalizedRanking |  [GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md) API 呼叫是否成功。使用 `sum` 統計資料來檢視成功 GetPersonalizedRanking API 呼叫的總計數。此指標不支援其他統計資料。 維度：`CampaignArn`  | 
| GetPersonalizedRanking4xxErrors |  傳回 4xx HTTP 回應代碼的 `GetPersonalizedRanking` API 呼叫數。 維度：`CampaignArn`  | 
| GetPersonalizedRanking5xxErrors |  傳回 5xx HTTP 回應代碼的 `GetPersonalizedRanking` API 呼叫數。 維度：`CampaignArn`  | 
| GetPersonalizedRankingLatency |  接收 `GetPersonalizedRanking` API 呼叫和傳送建議之間的時間 (不含 4xx 和 5xx 錯誤)。 維度：`CampaignArn` 單位：毫秒  | 
| GetRecommendations |  [GetRecommendations](API_RS_GetRecommendations.md) API 呼叫是否成功。使用 `sum` 統計資料來檢視成功 GetRecommendations API 呼叫的總計數。此指標不支援其他統計資料。 維度：`CampaignArn`  | 
| GetRecommendations4xxErrors |  傳回 4xx HTTP 回應代碼的 `GetRecommendations` API 呼叫數。 維度：`CampaignArn`  | 
| GetRecommendations5xxErrors |  傳回 5xx HTTP 回應代碼的 `GetRecommendations` API 呼叫數。 維度：CampaignArn  | 
| GetRecommendationsLatency |  接收 `GetRecommendations` API 呼叫和傳送建議之間的時間 (不含 4xx 和 5xx 錯誤)。 維度：`CampaignArn` 單位：毫秒  | 
| PutEventsRequests |  成功 [PutEvents](API_UBS_PutEvents.md) API 呼叫的數量。 維度：` DatasetGroupArn, DatasetArn, EventTrackerArn`  | 
| PutEvents4xxErrors |  傳回 4xx HTTP 回應代碼的 `PutEvents` API 呼叫數。 維度：` DatasetGroupArn, DatasetArn, EventTrackerArn`  | 
| PutEvents5xxErrors |  傳回 5xx HTTP 回應代碼的 `PutEvents` API 呼叫數。 維度：` DatasetGroupArn, DatasetArn, EventTrackerArn`  | 
| PutEventLatency |  完成 `PutEvents` API 呼叫的時間 (不含 4xx 和 5xx 錯誤)。 維度：` DatasetGroupArn, DatasetArn, EventTrackerArn` 單位：毫秒  | 
| PutItemsRequests |  成功 [PutItems](API_UBS_PutItems.md) API 呼叫的數量。 維度：` DatasetGroupArn, DatasetArn`  | 
| PutItems4xxErrors |  傳回 4xx HTTP 回應代碼的 `PutItems` API 呼叫數。 維度：` DatasetGroupArn, DatasetArn`  | 
| PutItems5xxErrors |  傳回 5xx HTTP 回應代碼的 `PutItems` API 呼叫數。 維度：` DatasetGroupArn, DatasetArn`  | 
| PutItemsLatency |  完成 `PutItems` API 呼叫的時間 (不含 4xx 和 5xx 錯誤)。 維度：` DatasetGroupArn, DatasetArn` 單位：毫秒  | 
| PutUsersRequests |  成功 [PutUsers](API_UBS_PutUsers.md) API 呼叫的數量。 維度：` DatasetGroupArn, DatasetArn`  | 
| PutUsers4xxErrors |  傳回 4xx HTTP 回應代碼的 `PutUsers` API 呼叫數。 維度：` DatasetGroupArn, DatasetArn`  | 
| PutUsers5xxErrors |  傳回 5xx HTTP 回應代碼的 `PutUsers` API 呼叫數。 維度：` DatasetGroupArn, DatasetArn`  | 
| PutUsersLatency |  完成 `PutUsers` API 呼叫的時間 (不含 4xx 和 5xx 錯誤)。 維度：` DatasetGroupArn, DatasetArn` 單位：毫秒  | 