

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

# CloudWatch 中的 CloudWatch Metrics Insights 查詢警示
<a name="cloudwatch-metrics-insights-alarms"></a>

您可在 Metrics Insights 查詢上建立警示。這有助您讓警示追蹤多個資源，且之後亦無需更新。查詢會擷取新資源和變更的資源。例如，您可以建立警示，以監看機群的 CPU 使用率，且該警示會自動評估您在警示建立後啟動的新執行個體。

在為 CloudWatch 跨帳戶可觀測性設定的監控帳戶中，您的 Metrics Insights 警示可監視來源帳戶和監控帳戶本身中的資源。如需有關如何將警示查詢限制給特定帳戶或按帳戶 ID 對結果分組的詳細資訊，請參閱 [CloudWatch Metrics Insights 中的查詢元件和語法](cloudwatch-metrics-insights-querylanguage.md) 中的 `WHERE` 和 `GROUP BY` 一節。

**在警示查詢中使用標籤**

您可以在 Metrics Insights 查詢上建立警示，這些查詢使用 AWS 資源標籤來篩選和分組指標。若要搭配使用標籤與警示，請在 [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/) 上選擇**設定**。在 **CloudWatch 設定**頁面的**在遙測上啟用資源標籤**下，選擇**啟用**。內容感知警示會自動監控特定應用程式、環境或團隊，以因應資源變動。

例如，您可以建立警示，用於監控標記為特定應用程式之所有 Amazon EC2 執行個體的 CPU 使用率。

```
SELECT MAX(CPUUtilization) FROM "AWS/EC2" WHERE tag.Application = 'Orders' AND tag.Environment = 'Prod'
```

標籤型警示會隨著您新增或移除帶相符標籤的資源而自動調整，提供與您的操作結構相符的動態監控。

**Contents**
+ [建立 Metrics Insights CloudWatch 警示](cloudwatch-metrics-insights-alarm-create.md)

# 建立 Metrics Insights CloudWatch 警示
<a name="cloudwatch-metrics-insights-alarm-create"></a>

**使用主控台在 Metrics Insights 查詢上建立警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Metrics** (指標)、**All metrics** (所有指標)。

1. (選用) 若要執行預先建置的範例查詢，請選擇 **Add query** (新增查詢)，然後選取要執行的查詢。或者，您也可以選擇 **Editor** (編輯器) 以編輯範例查詢，然後選擇 **Run** (執行) 來執行修改的查詢。

1. 若要建立自己的查詢，請選擇**多來源查詢**。然後您可以使用**建置器**檢視、**編輯器**檢視，也可以同時使用兩者。您可以隨時在兩個檢視之間切換，並在兩個檢視中查看工作進度。

   在 **Builder** (建置器) 檢視中，您可以瀏覽並選取指標命名空間、指標名稱、篩選條件、群組和排序選項。對於這些選項中的每一個，查詢建置器都會為您提供環境中可能的選項清單，以供您選擇。

   在 **Editor** (編輯器) 檢視中，您可以開始編寫查詢。輸入時，編輯器會根據您目前輸入的字元提供建議。

   例如，建立針對警示的 Metrics Insights 查詢時，您可以使用標籤對指標進行篩選和分組，以進行更精準的監控。
   + 依標籤篩選 – 使用 `WHERE tag.keyName = 'value'` 監控具有特定標籤的資源

     ```
     SELECT MAX(CPUUtilization) FROM "AWS/EC2" WHERE tag.Environment = 'Prod'
     ```
   + 將標籤與維度結合 – 將標籤篩選條件與現有指標維度結合

     ```
     SELECT AVG(Duration) FROM "AWS/Lambda" WHERE tag.Application = 'OrderService' AND FunctionName = 'process%'
     ```
**注意**  
使用標籤時，僅當評估時段內關聯資源上存在指定的標籤時，警示才與指標相符。

1. 當您對您的查詢感到滿意時，請選擇 **Run** (執行)。

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

1. 在 **Conditions (條件)** 下，指定以下內容：

   1. 針對 **Whenever *metric* is (指標為...時)**，請指定指標是否必須大於、小於，或等於閾值。在 **than... (於...)** 下，指定閾值。

   1. 選擇 **Additional configuration (其他組態)**。針對 **Datapoints to alarm (要警示的資料點)**，請指定 (資料點) 必須處於 `ALARM` 狀態多少評估期間，才會觸發警示。如果此處的兩個值相符，您便可以建立警示，在許多連續期間違規時移至 `ALARM` 狀態。

      若要建立 N 個中有 M 個警示，請針對第一個值，指定低於您為第二個值所指定值的值。如需詳細資訊，請參閱[警示評估](alarm-evaluation.md)。

   1. 針對 **Missing data treatment (遺失資料處理)**，選擇警示在遺失某些資料點時的行為。如需詳細資訊，請參閱[設定 CloudWatch 警示如何處理遺失資料](alarms-and-missing-data.md)。

1. 選擇**下一步**。

1. 在 **Notification (通知)** 下，選取 SNS 主題來在警示處於 `ALARM` 狀態、`OK` 狀態或 `INSUFFICIENT_DATA` 狀態時進行通知。

   若要讓警示針對相同的警示狀態或不同警示狀態傳送多個通知，請選擇 **Add notification (新增通知)**。

   若要讓警示不傳送通知，請選擇 **Remove (移動)**。

1. 若要讓警示執行 Auto Scaling、 EC2 或 Systems Manager 動作，請選擇適當的按鈕，然後選擇警示狀態及要執行的動作。警示只能在進入 ALARM 狀態時執行 Systems Manager 動作。如需有關 Systems Manager 動作的詳細資訊，請參閱[設定 CloudWatch 以從警示建立 OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) 和[事件建立](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html)。
**注意**  
若要建立執行 SSM Incident Manager 動作的警示，您必須具備特定許可。如需詳細資訊，請參閱 [AWS Systems Manager Incident Manager 的身分型政策範例](https://docs.aws.amazon.com/incident-manager/latest/userguide/security_iam_id-based-policy-examples.html)。

1. 完成時，請選擇**下一步**。

1. 輸入警示的名稱與說明。名稱只能包含 ASCII 字元。然後選擇**下一步**。

1. 在 **Preview and create (預覽及建立)** 下，請確認資訊和條件都是您希望的內容，然後選擇 **Create alarm (建立警示)**。

**使用 在 Metrics Insights 查詢上建立警示 AWS CLI**

使用 `put-metric-alarm` 命令，在 `metrics` 參數中指定 Metrics Insights 查詢。例如，若任何執行個體的 CPU 使用率超過 50%，則下列命令會讓警示進入 ALARM 狀態。

```
aws cloudwatch put-metric-alarm —alarm-name Prod-App-CPU-Alarm —evaluation-periods 1 —comparison-operator GreaterThanThreshold —metrics '[{"Id":"m1","Expression":"SELECT MAX(CPUUtilization) FROM \"AWS/EC2\" WHERE tag.Environment = '\''Prod'\'' AND tag.Application = '\''OrderService'\''", "Period":60}]' —threshold 80
```