

# 绘制 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 连接。如果您想要在已被拒绝的 TCP 连接达到 20% 时收到通知，则可以修改表达式，将阈值从 `100` 更改为 `20`。

**注意**  
在 **Metrics**（指标）部分中，您可以对您监控的指标设置告警。在 **Graphed metrics**（绘制的指标）选项卡中，您可以选择 **Actions**（操作）列下的 **Create alarm**（创建告警）。**Create alarm**（创建告警）图标看起来像个铃铛。

有关绘制指标的图表和使用指标数学函数的更多信息，请参阅以下部分: [向 CloudWatch 图表中添加数学表达式](using-metric-math.md#adding-metrics-expression-console)。