

# 部分的なデータの処理方法
<a name="cloudwatch-metrics-insights-alarms-partial-data"></a>

## Metrics Insights クエリから部分的なデータを評価する方法
<a name="cloudwatch-metrics-insights-query-evaluation"></a>

アラームに使用された Metrics Insights クエリが 10,000 件を超えるメトリクスに一致する場合、アラームはクエリで見つかった最初の 10,000 件のメトリクスに基づいて評価されます。これは、アラームが部分的なデータに基づいて評価されていることを意味します。

次の方法を使用して、現在 Metrics Insights アラームが部分的なデータに基づいてアラームの状態を評価しているかどうかを確認できます。
+ コンソールでアラームを選択して **[Details]** (詳細) ページを表示すると、そのページに「**Evaluation warning: Not evaluating all data**」(評価警告: すべてのデータを評価していません) というメッセージが表示されます。
+ [describe-alarms](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/describe-alarms.html?highlight=describe%20alarms) AWS CLI コマンドまたは [DescribeAlarms](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html) API を使用すると、`EvaluationState` フィールドに `PARTIAL_DATA` という値が表示されます。

アラームは、部分的なデータの状態になったときにもイベントを Amazon EventBridge に公開するので、これらのイベントを監視する EventBridge ルールを作成できます。これらのイベントでは、`evaluationState` フィールドの値は `PARTIAL_DATA` です。以下に例を示します。

```
{
    "version": "0",
    "id": "12345678-3bf9-6a09-dc46-12345EXAMPLE",
    "detail-type": "CloudWatch Alarm State Change",
    "source": "aws.cloudwatch",
    "account": "123456789012",
    "time": "2022-11-08T11:26:05Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:cloudwatch:us-east-1:123456789012:alarm:my-alarm-name"
    ],
    "detail": {
        "alarmName": "my-alarm-name",
        "state": {
            "value": "ALARM",
            "reason": "Threshold Crossed: 3 out of the last 3 datapoints [20000.0 (08/11/22 11:25:00), 20000.0 (08/11/22 11:24:00), 20000.0 (08/11/22 11:23:00)] were greater than the threshold (0.0) (minimum 1 datapoint for OK -> ALARM transition).",
            "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2022-11-08T11:26:05.399+0000\",\"startDate\":\"2022-11-08T11:23:00.000+0000\",\"period\":60,\"recentDatapoints\":[20000.0,20000.0,20000.0],\"threshold\":0.0,\"evaluatedDatapoints\":[{\"timestamp\":\"2022-11-08T11:25:00.000+0000\",\"value\":20000.0}]}",
            "timestamp": "2022-11-08T11:26:05.401+0000",
            "evaluationState": "PARTIAL_DATA"
        },
        "previousState": {
            "value": "INSUFFICIENT_DATA",
            "reason": "Unchecked: Initial alarm creation",
            "timestamp": "2022-11-08T11:25:51.227+0000"
        },
        "configuration": {
            "metrics": [
                {
                    "id": "m2",
                    "expression": "SELECT SUM(PartialDataTestMetric) FROM partial_data_test",
                    "returnData": true,
                    "period": 60
                }
            ]
        }
    }
}
```

アラームのクエリに、最初に 500 を超える時系列を返す GROUP BY ステートメントが含まれている場合、アラームはクエリで検出された最初の 500 の時系列に基づいて評価されます。ただし、ORDER BY 句を使用すると、クエリで検出されたすべての時系列がソートされます。その中から ORDER BY 句に応じて値が大きい方から、または小さい方から 500 個がアラームの評価に使用されます。

## マルチデータソースアラームからの部分的なデータの評価方法
<a name="multi-data-source-partial-data"></a>

Lambda 関数が部分的なデータを返す場合:
+ アラームは、返されたデータポイントで引き続き評価されます。
+ 次の方法を使用して、Lambda 関数のアラームが部分的なデーに基づいてアラームの状態を評価しているかどうかを確認できます。
  + コンソールで、アラームを選択し、**[詳細]** ページを選択します。「**評価警告: すべてのデータを評価していません**」というメッセージが表示された場合は、部分的なデータについて評価されています。
  + `describe-alarms` AWS CLI コマンドまたは DescribeAlarms API を使用するときに `EvaluationState` フィールドに `PARTIAL_DATA` 値が表示される場合は、部分的なデータで評価されています。
+ アラームは、部分的なデータ状態になると Amazon EventBridge にもイベントを発行します。