

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

# 使用 Contributor Insights 來分析高基數資料
<a name="ContributorInsights"></a>

您可以使用 Contributor Insights 來分析日誌資料，以及建立顯示參與者資料的時間序列。您可以查看與前 N 個參與者有關的指標、唯一參與者的總數及其用量。這有助於您尋找最頂端的說話者，並了解正在影響系統效能的對象或項目。例如，您可以尋找錯誤的主機、識別負荷最重的網路使用者，或是尋找產生最多錯誤的 URL。

您可以從頭開始建置規則，當您使用 時 AWS 管理主控台 ，也可以使用 AWS 已建立的範例規則。規則會定義您希望用來定義參與者的日誌欄位，例如 `IpAddress`。您也可以篩選日誌資料來尋找和分析個別參與者的行為。

CloudWatch 也提供內建規則，可讓您用來分析來自其他 AWS 服務的指標。

所有規則都會即時分析傳入的資料。

如果您登入的帳戶已設定為 CloudWatch 跨帳戶觀察功能中的監控帳戶，則可以在該監視帳戶中建立 Contributor Insights 規則，分析來源帳戶和監控帳戶中的日誌群組。您也可以建立單一規則，來分析多個帳戶中的日誌群組。如需詳細資訊，請參閱[CloudWatch 跨帳戶觀察功能](CloudWatch-Unified-Cross-Account.md)。

使用 Contributor Insights 時，每次出現符合規則的日誌事件，您都需要支付費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

**注意**  
僅當規則參考的數值介於 -1e9 和 1e9 之間時，Contributor Insights 才能比對日誌項目。若日誌項目中的值超出此範圍，Contributor Insights 會略過該日誌項目。

**Topics**
+ [在 CloudWatch 中建立 Contributor Insights 規則](ContributorInsights-CreateRule.md)
+ [CloudWatch 中的 Contributor Insights 規則語法](ContributorInsights-RuleSyntax.md)
+ [CloudWatch Contributor Insights 規則範例](ContributorInsights-Rule-Examples.md)
+ [在 CloudWatch 中檢視 Contributor Insights 報告](ContributorInsights-ViewReports.md)
+ [在 CloudWatch 中繪製規則產生的指標](ContributorInsights-GraphReportData.md)
+ [在 CloudWatch 中使用 Contributor Insights 內建規則](ContributorInsights-BuiltInRules.md)

# 在 CloudWatch 中建立 Contributor Insights 規則
<a name="ContributorInsights-CreateRule"></a>

您可以建立規則來分析日誌資料。任何 JSON 或通用日誌格式 (CLF) 的日誌都可進行評估。這包括遵循這些格式之一的自訂日誌，以及來自 AWS 服務的日誌，例如 Amazon VPC 流程日誌、Amazon Route 53 DNS 查詢日誌、Amazon ECS 容器日誌，以及來自 Amazon SageMaker AI AWS CloudTrail、Amazon RDS AWS AppSync 和 API Gateway 的日誌。

在規格中，當您指定欄位名稱或值時，所有的比對都區分大小寫。

您可以在建立規則時使用內建範例規則，或者也可以從頭開始建立您自己的規則。Contributor Insights 包含下列日誌類型的範例規則：
+ Amazon API Gateway 日誌
+ Amazon Route 53 公有 DNS 查詢日誌
+ Amazon Route 53 Resolver 查詢日誌
+ CloudWatch Container Insights 日誌
+ VPC 流量日誌

如果您登入的帳戶已設定為 CloudWatch 跨帳戶觀察功能中的監控帳戶，您不僅可以為監控帳戶中的日誌群組建立規則，還可以為與此監控帳戶連結之來源帳戶中的日誌群組建立 Contributor Insights 規則。您也可以設定單一規則，來監控不同帳戶中的日誌群組。如需詳細資訊，請參閱[CloudWatch 跨帳戶觀察功能](CloudWatch-Unified-Cross-Account.md)。

**重要**  
當您將 `cloudwatch:PutInsightRule` 許可授予使用者時，依預設，該使用者可以建立規則來評估 CloudWatch Logs 中的任何日誌群組。您可以新增 IAM 政策條件，以限制這些許可，進而讓使用者包含和排除特定日誌群組。如需詳細資訊，請參閱[使用條件索引鍵限制 Contributor Insights 使用者存取日誌群組](iam-cw-condition-keys-contributor.md)。

**如何使用內建範例規則建立規則**

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

1. 在導覽窗格中，選擇**日誌**、**Contributor Insights**。

1. 選擇**建立規則**。

   

1.  在 **Select log group(s)** (選取日誌群組) 中，選取您要讓規則監控的日誌群組。您最多可以選取 20 個日誌群組。如果您已登入 CloudWatch 跨帳戶觀察功能中設定的監控帳戶，則可以在來源帳戶中選取日誌群組，然後設定單一規則來分析不同帳戶中的日誌群組。

   1.  (選用) 若要選取名稱開頭為特定字串的所有日誌群組，請選擇 **Select by prefix match** (依字首相符選取) 下拉式清單，然後輸入字首。如果這是監控帳戶，您可以選擇選取要搜尋的帳戶，否則會選取所有帳戶。
**注意**  
 每個符合規則的日誌事件都會產生費用。如果選擇 **Select by prefix match** (依字首相符選取) 下拉式清單，請注意字首可能匹配到的日誌群組數量。如果您搜尋到的日誌群組比所需的多，則可能會產生非預期的費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing)。

1. 在 **Rule type** (規則類型) 中，選擇 **Sample rule** (範例規則)。然後選擇 **Select sample rule** (選取範例規則) 並選取規則。

1. 對於**日誌格式**，選取規則將評估之日誌的格式。

1. 對於**轉換器**，選取**在轉換器上啟用 Contributor Insights**，讓規則在 [CloudWatch Logs 日誌轉換功能](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html.html)轉換日誌事件之後，評估日誌事件。如果選取啟用此功能：
   + 如果規則評估具有轉換器的任何日誌群組，規則將套用至日誌的轉換後版本。
   + 如果規則評估沒有轉換器的日誌群組，規則將套用至日誌的原始版本。

   如果不選取此選項，評估將套用至所有日誌群組中的原始日誌事件，即使該等群組使用了日誌轉換亦然。
**注意**  
如果日誌群組具有轉換器，且某些日誌事件的轉換失敗，Contributor Insights 將不會評估該等日誌事件。如需有關調查日誌轉換故障的資訊，請參閱[轉換指標與錯誤](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Transformation-Errors-Metrics.html)。

1.  您選擇的規則範例已填寫**日誌格式**、**影響**、**篩選條件**和**彙整對象**等欄位。您可以視需要調整這些值。

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

1. 在 **Rule name (規則名稱)** 中，輸入名稱。有效字元為 A-Z、a-z、0-9、(連字號)、(底線) 和 (句號)。

1. 選擇是要以停用或啟用狀態建立規則。如果您選擇啟用，規則會立即開始分析您的資料。執行啟用的規則時會產生費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

   Contributor Insights 只會分析建立規則之後的新日誌事件。規則無法處理先前由 CloudWatch Logs 處理的日誌事件。

1. (選用) 在 **Tags** (標籤) 中，新增一或多個鍵/值對，作為此值的標籤。標籤可協助您識別和組織 AWS 資源，並追蹤成本 AWS 。如需詳細資訊，請參閱[標記您的 Amazon CloudWatch 資源](CloudWatch-Tagging.md)。

1. 選擇**建立**。

**如何從頭開始建立規則**

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

1. 在導覽窗格中，選擇**日誌**、**Contributor Insights**。

1. 選擇**建立規則**。

   

1.  在 **Select log group(s)** (選取日誌群組) 中，選取您要讓規則監控的日誌群組。您最多可以選取 20 個日誌群組。如果您已登入 CloudWatch 跨帳戶觀察功能中設定的監控帳戶，則可以在來源帳戶中選取日誌群組，然後設定單一規則來分析不同帳戶中的日誌群組。

   1.  (選用) 若要選取名稱開頭為特定字串的所有日誌群組，請選擇 **Select by prefix match** (依字首相符選取) 下拉式清單，然後輸入字首。
**注意**  
 每個符合規則的日誌事件都會產生費用。如果選擇 **Select by prefix match** (依字首相符選取) 下拉式清單，請注意字首可能匹配到的日誌群組數量。如果您搜尋到的日誌群組比所需的多，則可能會產生非預期的費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing)。

1. 在 **Rule type** (規則類型) 中，選擇 **Custom rule** (自訂規則)。

1. 針對 **Log format (日誌格式)**，選擇 **JSON** 或 **CLF**。

1. 對於**轉換器**，選取**在轉換器上啟用 Contributor Insights**，讓規則在 [CloudWatch Logs 日誌轉換功能](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html.html)轉換日誌事件之後，評估日誌事件。如果選取啟用此功能：
   + 如果規則評估具有轉換器的任何日誌群組，規則將套用至日誌的轉換後版本。
   + 如果規則評估沒有轉換器的日誌群組，規則將套用至日誌的原始版本。

   如果不選取此選項，評估將套用至所有日誌群組中的原始日誌事件，即使該等群組使用了日誌轉換亦然。
**注意**  
如果日誌群組具有轉換器，且某些日誌事件的轉換失敗，Contributor Insights 將不會評估該等日誌事件。如需有關調查日誌轉換故障的資訊，請參閱[轉換指標與錯誤](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Transformation-Errors-Metrics.html)。

1. 您可以使用精靈完成建立規則，或是透過選擇 **Syntax (語法)** 標籤並手動指定您的規則語法。

   如要繼續使用精靈，請執行以下作業：

   1. 針對 **Contribution (貢獻)**、**Key (索引鍵)**，輸入您希望報告的參與者類型。報告會針對此參與者類型顯示前 N 個值。

      有效的項目是任何包含值的日誌欄位。範例包括 **requestId**、**sourceIPaddress** 和 **containerID**。

      如需有關為特定日誌群組中的日誌尋找日誌欄位名稱的資訊，請參閱「[尋找日誌欄位](#finding_log_fields)」。

      大於 1 KB 的索引鍵會截斷至 1KB。

   1. (選用) 選擇 **Add new key** (新增鍵)，以新增更多鍵。您最多可以在規則中包含四個索引鍵。如果您輸入的索引鍵超過一個，報告中的參與者會由索引鍵的唯一值組合定義。例如，如果您指定了三個索引鍵，則三個索引鍵的每個唯一值組合都會計為唯一的參與者。

   1. (選用) 如果您想要新增篩選條件，來縮小結果範圍，請選擇 **Add filter** (新增篩選條件)。針對 **Match** (比對)，輸入您希望據以篩選的日誌名稱。針對 **Condition** (條件)，選擇比較運算子並輸入您希望為其進行篩選的值。

      您可以在規則中新增最多四個篩選條件。多個篩選條件會以 AND 邏輯聯結，因此只會評估符合所有篩選條件的日誌事件。
**注意**  
遵循比較運算子的陣列 (例如 `In`、`NotIn` 或 `StartsWith`) 最多可包含 10 個字串值。如需有關 Contributor Insights 規則語法的詳細資訊，請參閱 [CloudWatch 中的 Contributor Insights 規則語法](ContributorInsights-RuleSyntax.md)。

   1. 針對 **Aggregate on** (彙整對象)，選擇 **Count** (計數) 或 **Sum** (總和)。選擇 **Count** (計數) 會使參與者排名以發生次數為基礎。選擇 **Sum** (總和) 會使排名以您為 **Contribution** (貢獻)、**Value** (值) 所指定的欄位值彙整總和為基礎。

1. 如要輸入您的規則作為 JSON 物件，而非使用精靈，請執行以下作業：

   1. 選擇 **Syntax (語法)** 標籤。

   1. 在 **Rule body (規則主體)** 中，輸入您規則的 JSON 物件。如需規則語法的資訊，請參閱 [CloudWatch 中的 Contributor Insights 規則語法](ContributorInsights-RuleSyntax.md)。

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

1. 在 **Rule name (規則名稱)** 中，輸入名稱。有效字元是 A‒Z、a‒z、0‒9、"-"、"\$1" 和 "."。

1. 選擇是要以停用或啟用狀態建立規則。如果您選擇啟用，規則會立即開始分析您的資料。執行啟用的規則時會產生費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

   Contributor Insights 只會分析建立規則之後的新日誌事件。規則無法處理先前由 CloudWatch Logs 處理的日誌事件。

1. (選用) 在 **Tags** (標籤) 中，新增一或多個鍵/值對，作為此值的標籤。標籤可協助您識別和組織 AWS 資源，並追蹤成本 AWS 。如需詳細資訊，請參閱[標記您的 Amazon CloudWatch 資源](CloudWatch-Tagging.md)。

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

1. 確認您輸入的設定值，然後選擇 **Create rule** (建立規則)。

您可以停用、啟用或刪除您已建立的規則。

**啟用、停用或刪除 Contributor Insights 中的規則**

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

1. 在導覽窗格中，選擇**日誌**、**Contributor Insights**。

1. 在規則清單中，選取單一規則旁邊的核取方塊。

   內建規則由 AWS 服務建立，無法編輯、停用或刪除。

1. 選擇 **Actions (動作)**，然後選擇您希望的選項。<a name="finding_log_fields"></a>

**尋找日誌欄位**

當您建立規則時，您需要了解日誌群組中日誌項目內的欄位名稱。

**尋找日誌群組中的日誌欄位**

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

1. 在導覽窗格的 **Logs (日誌)** 下，選擇 **Insights (深入分析)**。

1. 在查詢編輯器上方，選取一或多個要查詢的日誌群組。

   選取日誌群組時，CloudWatch Logs Insights 會自動偵測日誌群組中資料內的欄位，並在 **Discovered fields** (已探索欄位) 的右側窗格中顯示。

# CloudWatch 中的 Contributor Insights 規則語法
<a name="ContributorInsights-RuleSyntax"></a>

本節說明 Contributor Insights 規則的語法。請只在您透過輸入 JSON 區塊來建立規則時使用此語法。如果您使用精靈建立規則，您便不需要了解語法。如需使用精靈建立規則的詳細資訊，請參閱 [在 CloudWatch 中建立 Contributor Insights 規則](ContributorInsights-CreateRule.md)。

所有規則與日誌事件欄位名稱及值進行的比對都區分大小寫。

以下範例示範 JSON 日誌的語法。

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "API-Gateway-Access-Logs*",
        "Log-group-name2"
    ],
    "LogFormat": "JSON",
    "Contribution": {
        "Keys": [
            "$.ip"
        ],
        "ValueOf": "$.requestBytes",
        "Filters": [
            {
                "Match": "$.httpMethod",
                "In": [
                    "PUT"
                ]
            }
        ]
    },
    "AggregateOn": "Sum"
}
```Contributor Insights 規則中的欄位

結構描述  
 分析 CloudWatch Logs 資料之規則的 `Schema` 值必須總是為 `{"Name": "CloudWatchLogRule", "Version": 1}` 

LogGroupNames  
 字串陣列。針對陣列中的每個元素，您可以選擇在字串的結尾使用 `*` 來包含所有名稱開頭為該字首的日誌群組。  
請小心搭配日誌群組名稱使用萬用字元。每個符合規則的日誌事件都會產生費用。如果您不小心搜尋了比您預期數量更多的日誌群組，您可能會產生未預期的費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing)。

LogGroupARNs  
如果您要在 CloudWatch 跨帳戶觀察功能的監控帳戶中建立此規則，則可以使用 `LogGroupARNs` 來指定與監控帳戶連結之來源帳戶中的日誌群組，還可以指定監控帳戶自身中的日誌群組。您必須在規則中指定 `LogGroupNames` 或 `LogGroupARNs`，但不能同時指定兩者。  
 `LogGroupARNs` 是字串陣列。對於陣列中的每個元素，您可以在某些情況下選擇使用 `*` 作為萬用字元。例如，您可以指定 `arn:aws:logs:us-west-1:*:log-group/MyLogGroupName2`，以指定美國西部 (加利佛尼亞北部) 區域中所有來源帳戶以及監控帳戶中命名為 `MyLogGroupName2` 的日誌群組。您也可以指定 `arn:aws:logs:us-west-1:111122223333:log-group/GroupNamePrefix*`，來指定 111122223333 帳戶在美國西部 (加利佛尼亞北部) 中名稱以 `GroupNamePrefix` 開頭的所有日誌群組。  
您無法指定部分 AWS 帳戶 ID 做為萬用字元的字首。  
將萬用字元用於日誌群組 ARN 用時應小心。每個符合規則的日誌事件都會產生費用。如果您不小心搜尋了比您預期數量更多的日誌群組，您可能會產生未預期的費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing)。

LogFormat  
 有效值為 `JSON` 和 `CLF`。

Contribution  
 此物件包含 `Keys` 陣列 (其中最多可以有四個成員)、選用的單一 `ValueOf`，以及其中最多可包含四個 `Filters` 的選用陣列。

金鑰  
 最多四個日誌欄位的陣列，會用來作為分類參與者的維度。如果您輸入的索引鍵超過一個，索引鍵值的每個唯一組合都會計為唯一的參與者。欄位必須使用 JSON 屬性格式表示法指定。

ValueOf  
 (選用) 請只在您指定 `Sum` 作為 `AggregateOn` 的值時才使用此項目。`ValueOf` 會使用數值指定日誌欄位。在這種規則類型中，參與者會根據此欄位值的總和進行排名，而非在日誌項目中發生的次數。例如，如果您想要根據其在特定期間內的總 `BytesSent` 排名參與者，您可將 `ValueOf` 設為 `BytesSent`，並為 `AggregateOn` 指定 `Sum`。

篩選條件  
 指定最多四個篩選條件的陣列，縮小包含在報告中的日誌事件。如果您指定了多個篩選條件，Contributor Insights 會使用邏輯 AND 運算子進行評估。您可以使用此項目來在您的搜尋中篩選掉不相關的日誌事件，或是您可以用來選取單一參與者以分析其行為。  
陣列中的每個成員都必須包含 `Match` 欄位，以及一個指出要使用比對運算子類型的欄位。  
`Match` 欄位會指定要在篩選條件中評估的日誌欄位。日誌欄位是使用 JSON 屬性格式表示法指定。  
比對運算子欄位必須是以下其中一個：`In`、`NotIn`、`StartsWith`、`GreaterThan`、`LessThan`、`EqualTo`、`NotEqualTo` 或 `IsPresent`。如果運算子欄位是 `In`、`NotIn` 或 `StartsWith`，其後會跟隨一個要檢查的字串值陣列。Contributor Insights 會使用 OR 運算子評估字串值陣列。陣列最多可包含 10 個字串值。  
如果運算子欄位是 `GreaterThan`、`LessThan`、`EqualTo` 或 `NotEqualTo`，其後會跟隨要比較的單一數值。  
如果運算子欄位是 `IsPresent`，其後會跟隨 `true` 或 `false`。此運算子會根據日誌事件中是否存在指定的日誌欄位來比對日誌事件。`isPresent` 只能搭配 JSON 屬性分葉節點中的值運作。例如，尋找與 `c-count` 相符的篩選條件不會評估值為 `details.c-count.c1` 的日誌事件。  
請參閱以下四個篩選條件範例：  

```
{"Match": "$.httpMethod", "In": [ "PUT", ] }
{"Match": "$.StatusCode", "EqualTo": 200 }
{"Match": "$.BytesReceived", "GreaterThan": 10000}
{"Match": "$.eventSource", "StartsWith": [ "ec2", "ecs" ] }
```

AggregateOn  
 有效值為 `Count` 和 `Sum`。指定是要根據發生計數彙整報告，還是在 `ValueOf` 欄位中指定的欄位值總和彙整報告。

**JSON 屬性格式表示法**

`Keys`、`ValueOf` 和 `Match` 欄位允許使用點表示法的 JSON 屬性格式，其中 `$` 表示 JSON 物件的根。其後會跟隨一個句點，然後是包含子屬性名稱的英數字串。其支援多個屬性層級。

字串的第一個字元只能是 A-Z 或 a-z。字串的後續字元可以是 A-Z、a-z 或 0-9。

以下清單示範 JSON 屬性格式的有效範例：

```
$.userAgent
$.endpoints[0]
$.users[1].name
$.requestParameters.instanceId
```

**CLF 日誌規則中的其他欄位**

通用日誌格式 (CLF) 日誌事件不會跟 JSON 一樣包含欄位的名稱。如要提供欄位以用於 Contributor Insights 規則，CLF 日誌事件可以視為索引從 `1` 開始的陣列處理。您可以將第一個欄位指定為 **"1"**，將第二個欄位指定為 **"2"**，以此類推。

如要讓 CLF 日誌的規則更容易閱讀，您可以使用 `Fields`。這可以讓您為 CLF 欄位位置提供命名別名。例如，您可以指定位置 "4" 是一個 IP 位址。指定之後，`IpAddress` 便可以用來在規則的 `Keys`、`ValueOf` 和 `Filters` 中作為屬性。

以下是使用 `Fields` 欄位的 CLF 日誌規則範例。

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "API-Gateway-Access-Logs*"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "4": "IpAddress",
        "7": "StatusCode"
    },
    "Contribution": {
        "Keys": [
            "IpAddress"
        ],
        "Filters": [
            {
                "Match": "StatusCode",
                "EqualTo": 200
            }
        ]
    },
    "AggregateOn": "Count"
}
```

# CloudWatch Contributor Insights 規則範例
<a name="ContributorInsights-Rule-Examples"></a>

本節包含範例，示範 Contributor Insights 規則的使用案例。

**VPC 流程日誌：來源及目的地 IP 地址傳輸的位元組**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "/aws/containerinsights/sample-cluster-name/flowlogs"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "4": "srcaddr",
        "5": "dstaddr",
        "10": "bytes"
    },
    "Contribution": {
        "Keys": [
            "srcaddr",
            "dstaddr"
        ],
        "ValueOf": "bytes",
        "Filters": []
    },
    "AggregateOn": "Sum"
}
```

**VPC 流程日誌：HTTPS 請求數量上限**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "/aws/containerinsights/sample-cluster-name/flowlogs"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "5": "destination address",
        "7": "destination port",
        "9": "packet count"
    },
    "Contribution": {
        "Keys": [
            "destination address"
        ],
        "ValueOf": "packet count",
        "Filters": [
            {
                "Match": "destination port",
                "EqualTo": 443
            }
        ]
    },
    "AggregateOn": "Sum"
}
```

**VPC 流程日誌：遭拒絕的 TCP 連線**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "/aws/containerinsights/sample-cluster-name/flowlogs"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "3": "interfaceID",
        "4": "sourceAddress",
        "8": "protocol",
        "13": "action"
    },
    "Contribution": {
        "Keys": [
            "interfaceID",
            "sourceAddress"
        ],
        "Filters": [
            {
                "Match": "protocol",
                "EqualTo": 6
            },
            {
                "Match": "action",
                "In": [
                    "REJECT"
                ]
            }
        ]
    },
    "AggregateOn": "Sum"
}
```

**依來源地址進行 Route 53 NXDomain 回應**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "AggregateOn": "Count",
    "Contribution": {
        "Filters": [
            {
                "Match": "$.rcode",
                "StartsWith": [
                    "NXDOMAIN"
                ]
            }
        ],
        "Keys": [
            "$.srcaddr"
        ]
    },
    "LogFormat": "JSON",
    "LogGroupNames": [
        "<loggroupname>"
    ]
}
```

**依網域名稱進行 Route 53 Resolver 查詢**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "AggregateOn": "Count",
    "Contribution": {
        "Filters": [],
        "Keys": [
            "$.query_name"
        ]
    },
    "LogFormat": "JSON",
    "LogGroupNames": [
        "<loggroupname>"
    ]
}
```

**依查詢類型和來源地址進行 Route 53 Resolver 查詢**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "AggregateOn": "Count",
    "Contribution": {
        "Filters": [],
        "Keys": [
            "$.query_type",
            "$.srcaddr"
        ]
    },
    "LogFormat": "JSON",
    "LogGroupNames": [
        "<loggroupname>"
    ]
}
```

# 在 CloudWatch 中檢視 Contributor Insights 報告
<a name="ContributorInsights-ViewReports"></a>

如要檢視報告資料的圖表和您規則找到的參與者排名清單，請遵循這些步驟。

**檢視您的規則報告**

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

1. 在導覽窗格中，選擇**日誌**、**Contributor Insights**。

   

1. 在規則清單中，選擇規則的名稱。

   圖表會顯示過去三個小時內的規則結果。圖表下方的表格會顯示前 10 個參與者。

1. 如要變更表格中顯示的參與者數，請選擇圖表頂端的 **Top 10 contributors (前 10 個參與者)**。

1. 如要篩選圖表，只顯示來自單一參與者的結果，請在表格圖例中選擇該參與者。如要再次顯示所有參與者，請在圖例中再次選擇相同的參與者。

1. 如要變更報告中顯示的時間範圍，請在圖表的頂端選擇 **15m** (15 分鐘)、**30m** (30 分鐘)、**1h** (1 小時)、**2h** (2 小時)、**3h** (3 小時) 或 **custom** (自訂)。

   報告的時間範圍上限是 24 小時，但您可以選擇長達過去 15 天內發生的 24 小時時段。如要選擇過去的時段，請選擇 **custom (自訂)**、**absolute (絕對)**，然後指定您的時段。

1. 如要變更用於彙整和排名參與者的時間期間長度，請選擇圖表頂端的 **period (期間)**。檢視更長的時間期間通常會顯示尖峰較少且較為平滑的報告。選擇較短的時間期間更有可能會顯示尖峰。

1. 若要將此圖表新增至 CloudWatch 儀表板，請選擇 **Add to dashboard** (新增至儀表板)。

1. 若要開啟 CloudWatch Logs Insights 查詢視窗，並在查詢方塊中載入此報告中的日誌群組，請選擇 **View logs** (檢視日誌)。

1. 如要將報告資料匯出至您的剪貼簿或 CSV 檔案，請選擇 **Export (匯出)**。

# 在 CloudWatch 中繪製規則產生的指標
<a name="ContributorInsights-GraphReportData"></a>

Contributor Insights 提供指標數學函數 `INSIGHT_RULE_METRIC`。您可以使用此函數，將 Contributor Insights 報表中的資料新增至 CloudWatch 主控台的 **Metrics** (指標) 標籤。您也可以根據此數學函數設定警示。如需指標數學函數的詳細資訊，請參閱 [搭配 CloudWatch 指標使用數學表達式](using-metric-math.md)。

若要使用此指標數學函數，您必須登入擁有 `cloudwatch:GetMetricData` 和 `cloudwatch:GetInsightRuleReport` 許可的帳戶。



語法是 `INSIGHT_RULE_METRIC(ruleName, metricName)`。*ruleName* 是 Contributor Insights 規則的名稱。*metricName* 是以下清單中的其中一個值。*metricName* 的值會判斷數學函數傳回的資料類型。
+ `UniqueContributors` — 每個資料點的唯一貢獻因子數目。
+ `MaxContributorValue` — 每個資料點的最佳貢獻因子值。圖表中每個資料點的參與者的身分可能會變更。

  如果此規則是以 `Count` 彙整，則每個資料點的最高貢獻因子是在該期間中發生次數最多的貢獻因子。如果規則是以 `Sum` 彙整，則最高貢獻因子是該期間中，規則的 `Value` 所指定日誌欄位內總和數最大的貢獻因子。
+ `SampleCount` — 規則符合的資料點數目。
+ `Sum` — 該資料點所表示時間期間內來自所有貢獻因子的值的總和。
+ `Minimum` — 該資料點所表示時間期間內單一觀察的最小值。
+ `Maximum` — 該資料點所表示時間期間內單一觀察的最大值。
+ `Average` — 該資料點所表示時間期間內來自所有貢獻因子的平均值。

## 在 Contributor Insights 指標資料上設定警示
<a name="ContributorInsights-GraphReportData-Alarm"></a>

您可以使用函數 `INSIGHT_RULE_METRIC`，對 Contributor Insights 產生的指標設定警示。例如，您可以根據遭拒絕傳輸控制通訊協定 (TCP) 連線百分比來建立警示。如果要開始使用此類警示，您可以建立類似於以下兩個範例中所示的規則：

**規則範例：「RejectedConnectionsRule」**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "/aws/containerinsights/sample-cluster-name/flowlogs"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "3": "interfaceID",
        "4": "sourceAddress",
        "8": "protocol",
        "13": "action"
    },
    "Contribution": {
        "Keys": [
            "interfaceID",
            "sourceAddress"
        ],
        "Filters": [
            {
                "Match": "protocol",
                "EqualTo": 6
            },
            {
                "Match": "action",
                "In": [
                    "REJECT"
                ]
            }
        ]
    },
    "AggregateOn": "Sum"
}
```

**規則範例：「TotalConnectionsRule」**

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "/aws/containerinsights/sample-cluster-name/flowlogs"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "3": "interfaceID",
        "4": "sourceAddress",
        "8": "protocol",
        "13": "action"
    },
    "Contribution": {
        "Keys": [
            "interfaceID",
            "sourceAddress"
        ],
        "Filters": [{
            "Match": "protocol",
            "EqualTo": 6
        }],
        "AggregateOn": "Sum"
    }
}
```

建立規則後，您便可以在 CloudWatch 主控台中選取 **Metrics** (指標) 索引標籤，您可以在其中使用以下指標數學表達式範例來繪製 Contributor Insights 報告的資料圖表：

**範例：指標數學表達式**

```
e1 INSIGHT_RULE_METRIC("RejectedConnectionsRule", "Sum")
e2 INSIGHT_RULE_METRIC("TotalConnectionsRule", "Sum")
e3 (e1/e2)*100
```

在該範例中，指標數學表達式 `e3` 會傳回所有遭拒絕的 TCP 連線。如果您想要在 20% 的 TCP 連線遭到拒絕時收到通知，您可以透過將閾值從 `100` 變更為 `20` 來修改表達式。

**注意**  
您可以在 **Metrics** (指標) 區段中，對您監控的指標設定警示。在 **Graphed metrics** (圖表化指標) 索引標籤上，您可以選取 **Actions** (動作) 資料欄下的 **Create alarm** (建立警示) 圖示。**Create alarm** (建立警示) 圖示看起來像個鈴鐺。

如需有關繪製指標圖表和使用指標數學函數的詳細資訊，請參閱以下區段：[將數學運算式新增至 CloudWatch 圖形](using-metric-math.md#adding-metrics-expression-console)。

# 在 CloudWatch 中使用 Contributor Insights 內建規則
<a name="ContributorInsights-BuiltInRules"></a>

您可以使用 Contributor Insights 內建規則來分析來自其他服務的指標 AWS 。下列服務支援內建規則：
+ 《Amazon DynamoDB 開發人員指南》中的 [Contributor Insights for Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/contributorinsights.html)。
+ 《AWS PrivateLink 指南》中的[使用 Contributor Insights 內建規則](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-cloudwatch-metrics.html#privatelink-contributor-insights)。