

# ダッシュボード本体の構造と構文
<a name="CloudWatch-Dashboard-Body-Structure"></a>

**Topics**
+ [全体的な構造](#Dashboard-Body-Overall-Structure)
+ [ウィジェット配列構造](#CloudWatch-Dashboard-Properties-Widgets-Structure)
+ [変数配列構造](#CloudWatch-Dashboard-Properties-Variables-Structure)
+ [ログウィジェットオブジェクトのプロパティ](#CloudWatch-Dashboard-Properties-Log-Widget-Object)
+ [メトリクスウィジェットオブジェクトのプロパティ](#CloudWatch-Dashboard-Properties-Metric-Widget-Object)
+ [メトリクスウィジェット: 配列内の各メトリクスの形式](#CloudWatch-Dashboard-Properties-Metrics-Array-Format)
+ [メトリクスエクスプローラーウィジェットオブジェクトのプロパティ](#CloudWatch-Dashboard-Properties-Metric-Explorer-Object)
+ [アラームステータスウィジェットオブジェクトのプロパティ](#CloudWatch-Dashboard-Properties-Alarm-Widget-Object)

## 全体的な構造
<a name="Dashboard-Body-Overall-Structure"></a>

`DashboardBody` は JSON 形式の文字列です。これには、0～500 個のウィジェットオブジェクトの配列と、他のいくつかのパラメータを含めることができます。ダッシュボードには `widgets` 配列を含める必要がありますが、その配列は空にすることができます。

以下はこの構造の例であり、1 つのメトリクスウィジェットと 1 つのテキストウィジェット、現在の時刻の 6 時間前から始まる時間範囲、各グラフの期間設定が常に準拠しています。

```
{
   "start": "-PT6H",
   "periodOverride": "inherit",
   "widgets": [
      {
         "type":"metric",
         "x":0,
         "y":0,
         "width":12,
         "height":6,
         "properties":{
            "metrics":[
               [
                  "AWS/EC2",
                  "CPUUtilization",
                  "InstanceId",
                  "i-012345"
               ]
            ],
            "period":300,
            "stat":"Average",
            "region":"us-east-1",
            "title":"EC2 Instance CPU",
            "liveData": false,
            "legend": {
                "position": "right"
              }
         }
      },
      {
         "type":"text",
         "x":0,
         "y":7,
         "width":3,
         "height":3,
         "properties":{
            "markdown":"Hello world"
         }
      }
   ]
}
```

次の例では、関数ごとの 3 つの Lambda メトリクスを表示し、ダッシュボード変数を使用して、ダッシュボードユーザーが異なる Lambda 関数名を切り替えて各関数の 3 つのメトリクスをすべて表示できるようにしています。これにより、さまざまなリソースの主要なメトリクスを表示できる単一の柔軟なダッシュボードを作成できます。この例では、関数はメトリクス検索クエリによって検出されるため、ダッシュボードは作成時に新しい Lambda 関数を自動的に検出します。

```
{
    "widgets": [{
            "height": 6,
            "width": 6,
            "y": 0,
            "x": 0,
            "type": "metric",
            "properties": {
                "view": "timeSeries",
                "stacked": false,
                "metrics": ["AWS/Lambda", "Invocations", "FunctionName", "my-function-name"],

                "region": "us-east-1",
                "liveData": true
            }
        },
        {
            "height": 12,
            "width": 12,
            "y": 0,
            "x": 6,
            "type": "metric",
            "properties": {
                "view": "timeSeries",
                "stacked": false,
                "metrics": ["AWS/Lambda", "Errors", "FunctionName", "my-function-name"],

                "region": "us-east-1",
                "liveData": true
            }
        },

        {
            "height": 3,
            "width": 6,
            "y": 0,
            "x": 18,
            "type": "metric",
            "properties": {
                "view": "timeSeries",
                "stacked": false,
                "metrics": ["AWS/Lambda", "Duration", "FunctionName", "my-function-name"],

                "region": "us-east-1",
                "liveData": true
            }
        }
    ],
    "variables": [{
        "type": "property",
        "property": "FunctionName",
        "inputType": "select",
        "id": "LambdaFunction_Variable",
        "label": "Function",
        "visible": true,
        "search": "{AWS/Lambda,FunctionName} MetricName=\"Duration\"",
        "populateFrom": "FunctionName"
    }]
}
```

次の例には 2 つのウィジェットがあります。最初のウィジェットには、2 つのメトリクスと、合計を計算する数式が含まれています。2 番目のウィジェットは、リージョン内のすべての EC2 インスタンスの `CPUUtilization` を表示する検索式です。

```
{
   "start": "-PT9H",
   "periodOverride": "inherit",
   "widgets": [
      {
         "type":"metric",
         "x":0,
         "y":0,
         "width":12,
         "height":6,
         "properties":{
            "metrics":[
               [ "AWS/EC2", "DiskReadBytes", "InstanceId", "i-123",{ "id": "m1" } ],
               [ ".", ".", ".", "i-abc", { "id": "m2" } ],
               [ { "expression": "SUM(METRICS())", "label": "Sum of DiskReadbytes", "id": "e3" } ]
            ],
            "view": "timeSeries",
            "stacked": false,
            "period":300,
            "stat":"Average",
            "region":"us-east-1",
            "title":"EC2 Instance CPU"
         }
      },
      {
         "type":"metric",
         "x":0,
         "y":0,
         "width":18,
         "height":9,
         "properties":{
            "metrics":[
               [ { "expression": "SEARCH('{AWS/EC2,InstanceId} MetricName=\"CPUUtilization\"', 'Average', 300)", "id": "e1" } ]
            ],
            "view": "timeSeries",
            "stacked": false,
            "region":"us-east-1",
            "title":"EC2 Instance CPU"
         }
      }
   ]
}
```

このセクションの残りの部分には、`DashboardBody` 構文の各部分を示す例が含まれています。コマンド構文全体を示すその他の例については、Amazon CloudWatch API リファレンス」の「[PutDashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutDashboard.html)」を参照してください。

JSON オブジェクトの最上位レベルには、次のプロパティを含めることができます。

**ウィジェット**  
ダッシュボード内のウィジェットのリスト。詳細については、「[ウィジェット配列構造](#CloudWatch-Dashboard-Properties-Widgets-Structure)」を参照してください。  
必須: はい

**variables**  
ダッシュボードで使用されるダッシュボード変数オブジェクトの配列。各ダッシュボード変数オブジェクトで使用できるフィールドの詳細については、「[変数配列構造](#CloudWatch-Dashboard-Properties-Variables-Structure)」を参照してください。  
ダッシュボード変数の詳細については、「[ダッシュボード変数を使用して柔軟なダッシュボードを作成する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_dashboard_variables.html)」を参照してください。  
`variables` 配列を含めると、0～25 個の変数オブジェクトを含めることができます。  
必須: いいえ

**end**  
ダッシュボードが読み込まれるときにダッシュボードの各ウィジェットに使用する時間範囲の終了。`end` に値を指定する場合、`start` の値も指定する必要があります。この値のそれぞれに、ISO 8601 形式で絶対時間を指定します。例えば、`2018-12-17T06:00:00.000Z` です。  
型: 文字列  
必須: いいえ

**開始**  
ダッシュボードの各ウィジェットに使用する時間範囲の開始。  
`end` を指定せずに `start` を指定して、現在の時刻で終わる相対時間範囲を指定できます。このケースにおいて、`start` の値は分または時間で時間範囲を指定する場合は `-PT` で、日、週、月で時間範囲を指定する場合は `-P` で開始する必要があります。その後、M、H、D、W、M を分、時間、日、週、月の略語として使用できます。たとえば、`-PT5M` は過去 5 分、`-PT8H` は過去 8 時間、`-P3M` は過去 3 か月を示しています。  
`start` を `end` フィールドとともに使用して、絶対時間範囲を指定することもできます。絶対時間範囲を指定する場合は、ISO 8601 形式を使用します。例えば、`2018-12-17T06:00:00.000Z`。  
`start` を省略すると、ダッシュボードにはロード時のデフォルトの時間範囲が表示されます。  
タイプ: 文字列  
必須: いいえ

**periodOverride**  
このフィールドを使用して、ダッシュボードがロードされる場合のグラフの期間を指定します。`auto` を指定すると、ダッシュボード上のすべてのグラフの期間が自動的にダッシュボードの時間範囲に適応します。`inherit` を指定すると、各グラフに設定された期間に常に準拠します。  
有効な値: auto \| inherit  
タイプ: 文字列  
必須: いいえ

## ウィジェット配列構造
<a name="CloudWatch-Dashboard-Properties-Widgets-Structure"></a>

どのタイプのウィジェットでも、それぞれに以下のプロパティを含めることができます。

**型**  
ウィジェットのタイプ。  
有効な値: `metric` \| `text` \| `log` \| `alarm` \| `explorer`  
タイプ: 文字列  
必須: はい

**x**  
24 列のダッシュボードグリッド上のウィジェットの水平位置。デフォルトは次に使用可能な位置です。  
有効な値: 0～23  
タイプ: 整数  
必須: はい (`y` が指定されている場合) それ以外の場合は必須ではありません。

**y**  
24 列のダッシュボードグリッド上のウィジェットの垂直位置。デフォルトは次に使用可能な位置です。  
有効な値: 任意の整数、0 以上。  
タイプ: 整数  
必須: はい (`x` が指定されている場合) それ以外の場合は必須ではありません。

**width**  
グリッド単位のウィジェットの幅 (24 列グリッド)。デフォルトは 6 です。  
有効な値: 1～24  
タイプ: 整数  
必須: いいえ

**height**  
グリッド単位のウィジェットの高さ。デフォルトは 6 です。  
有効な値: 1～1000  
タイプ: 整数  
必須: いいえ

**プロパティ**  
ウィジェットの詳細なプロパティ。ウィジェットのタイプによって異なります。`properties` の形式の詳細については、「[メトリクスウィジェットオブジェクトのプロパティ](#CloudWatch-Dashboard-Properties-Metric-Widget-Object)」または「[テキストウィジェットオブジェクトのプロパティ](#CloudWatch-Dashboard-Properties-Text-Widget-Object)」を参照してください。  
型: オブジェクト  
必須: はい

## 変数配列構造
<a name="CloudWatch-Dashboard-Properties-Variables-Structure"></a>

配列内の各ダッシュボード変数には、次のプロパティを含めることができます。

**型**  
ダッシュボード変数のタイプ CloudWatch は、*プロパティ変数*と*パターン変数*の 2 つのタイプをサポートしています。  
プロパティ変数は、ダッシュボードにおけるすべてのウィジェット内のプロパティのすべてのインスタンスの値を変更します。プロパティは、次のいずれかになります。  
+ `region` など、ウィジェット定義の任意の JSON プロパティ。
+ `InstanceId` または `FunctionName` などのメトリクスのディメンション名。
パターン変数は、ダッシュボード JSON 全体で正規表現パターンを変更します。JSON プロパティ値の一部のみ、または JSON プロパティを変更する必要がある場合に使用します。  
プロパティ変数はほとんどのユースケースに適用され、設定はそれほど複雑ではありません。  
有効な値: `property` \| `pattern`  
タイプ: 文字列  
必須: はい

**inputType**  
ダッシュボードユーザーが変数の値を入力する方法を決定します。  
+ ユーザーが値を入力できるテキストボックスを使用するには、`input` を指定します。
+ 定義した値のドロップダウンセット、またはメトリクス検索クエリで見つかった値のドロップダウンリストを使用するには、`select` を指定します。
+ 定義した値またはメトリクス検索クエリで見つかった値を含む一連のラジオボタンを使用するには、`radio` を指定します。
有効な値: `input` \| `select` \| `radio`  
タイプ: 文字列  
必須: はい

**値**  
`inputType` が `select` または `radio` で、メトリクスクエリ検索を使用する代わりに可能な変数値を定義する場合は、ここでそれらの値を指定します。  
`values` は、配列内の各オブジェクトに必要な*値*とオプションの*ラベル*を含む配列です。各*値*は文字列、数値、ブール値にすることができ、各ラベルは文字列である必要があります。これらの値とラベルはそれぞれ最大 255 文字です。  
`values` 配列を指定する場合は、少なくとも 1 つの項目を含める必要があり、最大 500 個を含めることができます。  
たとえば、次の場合、変数の値として使用する 3 つのリージョンのリストを作成します。  

```
"values": [
    { "label": "US East (IAD)", "value": "us-east-1" },
    { "label": "US West (SFO)", "value": "us-west-1" },
    { "label": "EU (DUB)", "value": "eu-west-1" }
]
```
型: 配列  
必須: `inputType` が `select` または `radio` で、メトリクス検索クエリを使用して値を入力していない場合は、はい。

**id**  
この変数の ID。最大 32 文字で、有効な文字は `0-9A-Za-z-_` です。  
タイプ: 文字列  
必須: はい

**ラベル**  
入力フィールドに表示するラベル。最大 30 文字を使用できます。  
プロパティ変数のこのフィールドを省略すると、プロパティ名がラベルとして表示されます。パターン変数のこのフィールドを省略すると、`{{pattern_1}}, {{pattern_2}}, ...` がラベルとして使用されます。  
タイプ: 文字列  
必須: いいえ

**defaultValue**  
ダッシュボードを最初に開いたときの、この変数のデフォルト値。  
+ `inputType` が `input` の場合、ここで `defaultValue` を手動で指定し、最大 255 文字を使用します。
+ `inputType` が `select` または `radio` の場合、`values` 配列で指定した有効な値、またはメトリクスクエリ検索で取得した有効な値を指定する必要があります。
有効な値: この変数の有効な値  
タイプ: この変数のタイプ値に応じて、文字列、数値、ブール値  
必須: いいえ

**検索**  
このフィールドを指定し、メトリクス検索式を使用して `select` または `radio` の入力フィールドに入力します。このフィールドの値には、名前空間、ディメンション名、メトリクス名を指定します。指定するディメンションは、そのメトリクスに対して有効である必要があります。CloudWatch は、そのメトリクスとディメンションを公開するすべてのリソースを検索し、リストにそれらを入力します。  
たとえば、`"search": "{AWS/EC2,InstanceId} MetricName=\"CPUUtilization\""` を指定してアカウント内の Amazon EC2 インスタンスを検索するか、`"search": "{AWS/Lambda,FunctionName} MetricName=\"Duration\"",` を指定してアカウント内の Lambda 関数を返します。  
指定する `search` 文字列は最大 2048 文字です。  
検索式を使用していて、デフォルト値も指定する場合は、デフォルトが 1 つであるか、検索によって取得されたリソースである限り、`defaultValue` で指定したデフォルトが使用されます。検索式を使用して入力フィールドに入力する場合、`defaultValue` の特殊な値 `__FIRST` を指定して、デフォルト値を検索から返される最初の値にすることもできます。(特殊な値には 2 つのアンダースコアと FIRST が含まれます) 検索によって返される値は常にアルファベット順にソートされます。
タイプ: 文字列  
必須: `inputType` が `select` または `radio` で、`values` を指定していない場合は、はい。

**populateFrom**  
`search` フィールドを使用し、検索式を使用して入力フィールドに入力する場合は、このフィールドに検索が取得するディメンションの名前を指定します。  
たとえば、`search` 値が `"search": "{AWS/EC2,InstanceId} MetricName=\"CPUUtilization\""` の場合、`populateFrom` に `InstanceId` を指定できます。  
タイプ: 文字列  
必須: `inputType` が `select` または `radio` で、`values` を指定していない場合は、はい。

**visible**  
入力ラベルとフィールドをダッシュボードに表示するかどうかを指定します。これを省略した場合、デフォルトの `true` が使用されます。  
`false` を使用するとダッシュボードに若干余裕ができますが、ユーザーはダッシュボード URL を変更して変数値を変更する必要があります。  
タイプ: ブール値  
必須: いいえ

### 変数の例
<a name="Dashboard-Body-Variable-Examples"></a>

次の例では、プロパティ変数を使用し、テキスト入力フィールドを使用してすべてのウィジェットのリージョンを変更します。ダッシュボードを最初に開くと、変数に `us-east-1` のデフォルト値が使用されます。

```
"variables": [
     {
        "type": "property", 
        "property": "region",
        "inputType": "input",
        "id": "region",
        "label": "Region",
        "defaultValue": "us-east-1",
        "visible": true
    } 
],
```

次の例では、ARN などの文字列の途中でリージョンが設定されている場合に備え、パターン変数を使用してすべてのウィジェットのリージョンを変更します。

```
"variables": [
    {
        "type": "pattern",
        "pattern": "us-east-1",
        "inputType": "input",
        "id": "region",
        "label": "Region",
        "defaultValue": "us-east-1",
        "visible": true
    }
],
```

次の例では、関数ごとにラジオボタンが付いた Lambda 関数変数を生成します。関数は、メトリクスクエリ検索によって検出されます。

```
"variables": [
    {
        "type": "pattern",
        "pattern": "originalFuncNameInDashboard",
        "inputType": "radio",
        "id": "functionName",
        "label": "Function",
        "visible": true,
        "search": "{AWS/Lambda,FunctionName} MetricName=\"Duration\"",
        "populateFrom": "FunctionName",
        "defaultValue": "__FIRST"
    }
],
```

次のサンプルは、ダッシュボードで複数の変数を指定する方法と、いくつかのタイプの変数を示しています。

```
"variables": [{
        "type": "property",
        "property": "region",
        "inputType": "select",
        "id": "unique_id_1",
        "label": "Region",
        "defaultValue": "us-east-1",
        "visible": true,
        "values": [{
                "label": "IAD",
                "value": "us-east-1"
            },
            {
                "label": "CMH",
                "value": "us-east-2"
            },
            {
                "label": "NRT",
                "value": "ap-northeast-1"
            }
        ]
    },
    {
        "type": "property",
        "property": "FunctionName",
        "inputType": "select",
        "id": "unique_id_2",
        "label": "Function",
        "visible": true,
        "values": [{
                "value": "my-FunctionName-1"
            },
            {
                "value": "my-FunctionName-2"
            },
            {
                "value": "my-FunctionName-3"
            }
        ]
    },
    {
        "type": "property",
        "property": "accountId",
        "inputType": "radio",
        "id": "unique_id_3",
        "defaultValue": "111122223333",
        "visible": true,
        "values": [{
                "label": "IAD Account",
                "value": "111122223333"
            },
            {
                "label": "CMH Account",
                "value": "123456789012"
            },
            {
                "label": "NRT Account",
                "value": "000000000000"
            }
        ]
    }
]
```

### テキストウィジェットオブジェクトのプロパティ
<a name="CloudWatch-Dashboard-Properties-Text-Widget-Object"></a>

タイプ `text` のウィジェットには、`properties` セクションに 1 つまたは 2 つのパラメータを含めることができます。`markdown` フィールドは必須であり、`transparent` フィールドはオプションです。

CloudWatch テキストウィジェットでサポートされているマークダウンのスタイルの詳細については、「[コンソールでのマークダウンの使用](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html)」を参照してください。

**markdown**  
ウィジェットに表示されるテキスト。このパラメータは、テキストウィジェットにのみ使用します。  
タイプ: 文字列  
必須: はい (ウィジェット `type` が `text` の場合)。

**background**  
テキストウィジェットの背景が中実か透明かを指定します。値 `transparent` はウィジェットを透明にします。値 `solid` はデフォルトです。  
タイプ: 文字列  
必須: いいえ

```
{
   "widgets":[
      {
         "type":"text",
         "x":0,
         "y":7,
         "width":3,
         "height":3,
         "properties":{
            "markdown":"Hello world",
            "background": "transparent"
         }
      }
   ]
}
```

## ログウィジェットオブジェクトのプロパティ
<a name="CloudWatch-Dashboard-Properties-Log-Widget-Object"></a>

タイプ `log` のウィジェットは、CloudWatch Logs Insights クエリの結果を表します。詳細については、[Analyzing Log Data with CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) を参照してください。

`log` ウィジェットの `properties` フィールドには、次のフィールドを含めることができます。

**accountId**  
クロスアカウントクエリの場合、ログを含む AWS アカウントのアカウント ID。  
タイプ: 文字列  
必須: いいえ

**リージョン**  
ログクエリのリージョン。  
タイプ: 文字列  
必須: はい

**title**  
ウィジェットに表示されるタイトルテキスト。  
タイプ: 文字列  
必須: いいえ

**query**  
CloudWatch Logs Insights クエリ関数が含まれます。  
タイプ: 文字列  
必須: はい (ウィジェット `type` が `log` の場合)。  
`query` 文字列は、クエリするロググループの名前で始まります。各ロググループ名には `SOURCE` を事前に追加する必要があります。複数のロググループをパイプ文字 (\|) で区切ります。  
ロググループのリストの後に別のパイプ文字を追加し、クエリ構文を指定します。クエリ構文の各行を `\n|` で区切る  
たとえば、次の行は `service_log1` と `service_log2` の 2 つのロググループのクエリを表します。クエリには、障害のある Canary が表示されます。  

```
"query": "SOURCE 'service_log1' | SOURCE 'service_log2' |filter Fault > 0\n| fields Fault.Message\n| stats count(*) by Canary.Name, Fault.Message"
```

**表示**  
クエリ結果の表示方法を指定します。結果をテーブルとして表示するには、`table` を指定します。このメトリクスを折れ線グラフとして表示するには、`timeSeries` を指定します。このメトリクスを棒グラフとして表示するには、`bar` を指定します。このメトリクスを円グラフとして表示するには、`pie` を指定します。  
このパラメータを省略すると、結果はテーブルとして表示されます。  
タイプ: 文字列  
必須: いいえ (ウィジェット `type` が `log` の場合)。

```
{
    "widgets": [
        {
            "type": "log",
            "x": 12,
            "y": 24,
            "width": 12,
            "height": 6,
            "properties": {
                "region": "us-east-1",
                "title": "Errors (Application Log)",
                "query": "SOURCE 'application1.log' | SOURCE 'application2.log' | filter @message like \"[ERROR]\"\n| parse \"Error for [*] [*] due to: *\" canaryName1, canaryId1, cause1\n| parse \"Executor canary [*] *\" canaryName2, cause2\n| fields coalesce(cause1, cause2) as cause\n| fields coalesce(canaryName1, canaryName2) as canaryName\n| fields ispresent(cause) as isP\n| filter isP\n| stats count() as errCount by canaryName, substr(cause, 0, 130)\n| sort errCount DESC",
                "view": "table"
            }
        }
    ]
}
```

## メトリクスウィジェットオブジェクトのプロパティ
<a name="CloudWatch-Dashboard-Properties-Metric-Widget-Object"></a>

タイプ `metric` のウィジェットには、`properties` 内に次のフィールドを含めることができます。

**accountId**  
このウィジェットのすべてのメトリクスの送信元の AWS アカウント ID を指定します。これは、複数のアカウントのウィジェットを含むクロスアカウントダッシュボードに役立ちます。詳細については、「[クロスアカウントクロスリージョン CloudWatch コンソール](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html)」を参照してください。  
これを省略すると、現在のアカウントがデフォルトとして使用されます。このパラメータは、メトリクスウィジェットにのみ使用します。  
`metrics` の配列の各メトリクス内の `accountId` フィールドを使用して、複数のアカウントのメトリクスを含む単一のウィジェットを作成することもできます。  
タイプ: 文字列  
必須: いいえ

**annotations**  
ウィジェットにアラームまたは注釈を含めるには、`annotations` 配列を指定します。この形式の詳細については、[ダッシュボードウィジェットオブジェクト: 注釈プロパティ](#CloudWatch-Dashboard-Properties-Annotation-Format) を参照してください。このパラメータは、メトリクスウィジェットにのみ使用します。  
型: オブジェクト  
必須: アラーム注釈は、ウィジェット `type` が `metric` であって `metrics` が指定されていない場合にのみ必須です。水平注釈または垂直注釈は必須ではありません。

**liveData**  
ウィジェットに*ライブデータ*を表示するには、`true` を指定します。ライブデータとは、直近の 1 分以内に公開された、完全には集計されていないデータです。詳細については、「[ライブデータの使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-live-data.html)」を参照してください。  
タイプ: ブール値  
必須: いいえ

**legend**  
グラフ上の行の凡例が表示される場所を決定するには、`legend` を指定します。`legend` フィールドには、`position` という別のフィールドが含まれています。`position` の可能な値は `right`、`bottom`、`hidden` です。  
たとえば、次の例では、グラフの右側に凡例が表示されます。  

```
"legend": {
     "position": "right"
}
```
タイプ: オブジェクト  
必須: いいえ

**metrics**  
1 つ以上のメトリクス (アラームなし)、Metrics Insights クエリ、数式、検索式を含めるには、`metrics` 配列を指定します。1 つの `metrics` 配列には、0～500 個のメトリクスと式を含めることができます。このパラメータは、メトリクスウィジェットにのみ使用します。`metrics` の形式の詳細については、「[メトリクスウィジェット: 配列内の各メトリクスの形式](#CloudWatch-Dashboard-Properties-Metrics-Array-Format)」を参照してください。  
1 つのメトリクス配列には、複数の Metrics Insights クエリを含めることはできません。  
1 つの `expression` フィールドに Metrics Insights クエリと数式の両方を含めることはできませんが、1 つの式から返された Metrics Insights クエリの結果を配列内の別の式の数式の入力として使用できます。  
タイプ: 配列の配列  
必須: ウィジェット `type` が `metric` であって `annotations` が指定されていない場合は、はい。

**期間**  
このウィジェットのすべてのメトリクスのデフォルトの期間 (秒単位)。期間とは、グラフの 1 つのデータポイントで表される時間長です。このデフォルトは、各メトリクス定義内で上書きできます。このパラメータは、メトリクスウィジェットにのみ使用します。デフォルトは 300 です。  
有効な値: 60 の倍数。最小値は 60 です。  
タイプ: 整数  
必須: いいえ

**リージョン**  
メトリクスのリージョン。  
タイプ: 文字列  
必須: はい

**スパークライン**  
 数値ウィジェットの下にスパークライン機能を表示するには、`true` を指定します。数値ウィジェットを単独で表示するには、`false` を指定します。このパラメータは、ビューが `singleValue` ではない場合は無視されます。このパラメータは、メトリクスウィジェットにのみ使用します。  
 タイプ: ブール値   
 必須: いいえ 

**積み上げ**  
グラフを積み上げ線として表示するには `true` を指定し、別の線として表示するには `false` を指定します。このパラメータは、`view` が `singleValue` の場合は無視されます。このパラメータは、メトリクスウィジェットにのみ使用します。  
タイプ: ブール値  
必須: いいえ

**統計**  
配列内の各メトリクスに表示されるデフォルトの統計。このデフォルトは、`metrics` 配列内の個々のメトリクスの定義内で上書きできます。このパラメータは、メトリクスウィジェットにのみ使用します。  
有効な値: `SampleCount` \| `Average` \| `Sum` \| `Minimum` \| `Maximum` \| `p{{??}}`  
タイプ: 有効な CloudWatch 統計である文字列。  
必須: いいえ

**テーブル**  
データテーブル関連の変更をウィジェットに含めるには、`table` セクションを含めます。この形式の詳細については、[ダッシュボードウィジェットオブジェクト: テーブルプロパティ](#CloudWatch-Dashboard-Properties-Table) を参照してください。  
タイプ: オブジェクト  
必須: いいえ

**timezone**  
グラフに時間を表示するために使用するタイムゾーン。形式は \+ または - で、その後に 4 桁が続きます。最初の 2 桁は UTC の前後の時間数を示し、最後の 2 桁は分数です。たとえば、`+0130` は UTC の 1 時間 30 分前の時間を示します。デフォルトは `+0000` です。  
タイプ: 文字列  
必須: いいえ

**title**  
グラフまたは数値に表示されるタイトル。このパラメータは、メトリクスウィジェットにのみ使用します。  
タイプ: 文字列  
必須: いいえ

**表示**  
 このメトリクスを折れ線グラフまたは積み上げ面グラフとして表示するには、`timeSeries` を指定します。このメトリクスを数値グラフとして表示するには、`singleValue` を指定します。このメトリクスをゲージグラフとして表示するには、`gauge` を指定します。このメトリクスを棒グラフとして表示するには、`bar` を指定します。このメトリクスを円グラフとして表示するには、`pie` を指定します。  
 `gauge` を指定する場合は、`yAxis` の左側に `min` と `max` の値を設定する必要があります。
有効な値: `timeSeries` \| `singleValue` \| `gauge` \| `bar` \| `pie` \| `table`  
タイプ: 文字列  
必須: いいえ

**yAxis**  
 グラフの Y 軸の左右の最小値と最大値。このプロパティは、この設定を上書きする特定のメトリクスを除き、グラフ化されたすべてのメトリクスに適用されます。詳細については、「[ダッシュボードウィジェットオブジェクト: yAxis プロパティ形式](#CloudWatch-Dashboard-Properties-YAxis-Properties-Format)」を参照してください。  
タイプ: yAxis オブジェクト  
必須: いいえ

**例: 積み上げ領域ウィジェットとゲージウィジェット**

```
{
    "widgets": [
{
   "type":"metric",
   "x":0,
   "y":0,
   "width":12,
   "height":6,
   "properties":{
      "metrics":[
         [
            "AWS/EC2",
            "CPUUtilization",
            "InstanceId",
            "i-012345"
         ],
         [
            "AWS/EC2",
            "NetworkIn",
            "InstanceId",
            "i-012345",
            {
               "yAxis":"right",
               "label":"NetworkIn",
               "period":3600,
               "stat":"Maximum"
            }
         ]
      ],
      "period":300,
      "stat":"Average",
      "region":"us-east-1",
      "timezone":"+0300",
      "title":"EC2 Instance CPU",
      "stacked":true,
      "view":"timeSeries",
      "liveData":false,
      "yAxis":{
         "left":{
            "min":0,
            "max":100
         },
         "right":{
            "min":50
         }
      },
      "annotations":{
         "horizontal":[
            {
               "visible":true,
               "color":"#9467bd",
               "label":"Critical range",
               "value":20,
               "fill":"above",
               "yAxis":"right"
            }
         ]
      }
   },
{
   "type": metric, 
   "x": 18,
   "y"; 60,
   "width": 6, 
   "height": 6,
   "properties": {
      "metrics": [
         [ 
         "AWSLogsShrinkRay",
         "disk_inodes_used",
         "path", 
         "/dev/shm",
         "InstanceId",
         "i-012345",
         "AutoScalingGroupName",
         "ShrinkRayExecutorResourceStack-Gamma-us-east-1-ASGuseast1ac48xlargeASGB9B53974-VTYXJUZGUAHV",
         "InstanceType",
         "c4.8xlarge",
         "device",
         "tmpfs",
         "fstype",
         "tmpfs" 
         ]
         ],
      "view": "gauge", 
      "title": "Disk Inodes Used"
      "region": "us-east-1",
      "yAxis": {
         "left": {
            "min": 0, 
            "max": 100,
         }        
       }
     }
   }
```

## メトリクスウィジェット: 配列内の各メトリクスの形式
<a name="CloudWatch-Dashboard-Properties-Metrics-Array-Format"></a>

`metrics` 配列内の各項目は、単一のメトリクス、数式、検索式のいずれかです。`metrics` 配列内のメトリクスのそれぞれの形式は以下のとおりです。

```
[ {{Namespace}}, {{MetricName}}, [{{{DimensionName}},{{DimensionValue}}}...] {{{Rendering Properties Object}}} ]
```

`metrics` 配列の各式の形式は以下のとおりです。

```
[ {"expression" : "{{expression}}", ["label" : "{{label}}"] , ["id" : "{{id}}"] } ]
```

**accountId**  
このメトリクスの送信元の AWS アカウント ID を指定します。これにより、クロスアカウントダッシュボードの複数のアカウントのメトリクスを含むウィジェットを作成できます。詳細については、「[クロスアカウントクロスリージョン CloudWatch コンソール](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html)」を参照してください。  
これを省略すると、現在のアカウントがデフォルトとして使用されます。このパラメータは、メトリクスウィジェットにのみ使用します。  
タイプ: 文字列  
必須: いいえ

**Namespace**  
メトリクスを含む AWS 名前空間。`metrics` 配列に複数のエントリがある場合、最初のエントリの後のエントリのそれぞれに `"."` のみを指定し、配列内の前のメトリクスと同じ名前空間を使用するように設定できます。  
タイプ: 文字列  
必須: はい

**MetricName**  
CloudWatch メトリクスの名前。`metrics` 配列に複数のエントリがある場合、最初のエントリの後のエントリのそれぞれに `"."` のみを指定し、配列内の前のメトリクスと同じメトリクス名を使用するように設定できます。  
タイプ: 文字列  
必須: 単一のメトリクスの場合は、はい

**expression**  
単一のメトリクスではなく式である場合、Metrics Insights クエリ、数式、検索式。  
完全一致に二重引用符を使用する検索式の場合、それぞれの二重引用符はバックスラッシュでエスケープする必要があります。  
Metrics Insights クエリ構文の詳細については、「[Metrics Insights のクエリコンポーネントと構文](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-metrics-insights-querylanguage.html)」を参照してください。  
数式または検索式の詳細については、「Amazon CloudWatch ユーザーガイド」の「[Metric Math を使用する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)」または「[グラフで検索式を使用する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-search-expressions.html)」を参照してください。  
タイプ: 文字列  
必須: 式の場合は、はい  
Metrics Insights クエリの式の例:  

```
[ { "expression": "SELECT MAX(CPUUtilization) FROM SCHEMA(\"AWS/EC2\", InstanceId) GROUP BY InstanceId LIMIT 10", "label": "View the 10 max CPU Utilization", "id": "q1" } ]
```

**DimensionName**  
表示されるデータをさらに絞り込むディメンションの名前。`metrics` 配列に複数のエントリがある場合、最初のエントリの後のエントリのそれぞれに `"."` のみを指定し、配列の前のメトリクスで指定された対応するディメンションと同じディメンション名を使用するように設定できます。メトリクスに 0 のディメンションを指定することも、メトリクスがサポートする最大数のディメンションを指定することもできます。  
タイプ: 文字列  
必須: いいえ

**DimensionValue**  
メトリクスディメンションで使用する値。対応するディメンション名がある場合に必須です。  
タイプ: 文字列  
必須: いいえ

**id**  
この時系列の ID。この ID は数式の一部として使用できます。ID の最初は小文字でなければなりません。  
タイプ: 文字列  
必須: いいえ

**ラベル**  
この時系列を表すグラフに表示するラベル。  
タイプ: 文字列  
必須: いいえ

**リージョン**  
メトリクスのリージョン。このパラメータは、メトリクスウィジェットにのみ使用します。これを省略すると、現在のリージョンがデフォルトとして使用されます。  
タイプ: 文字列  
必須: いいえ

**レンダリングプロパティオブジェクト**  
この特定のメトリクスに使用するレンダリングプロパティを指定し、ウィジェット全体に指定された値を上書きします。この形式の詳細については、[ダッシュボードウィジェットオブジェクト: レンダリングプロパティオブジェクト形式](#CloudWatch-Dashboard-Properties-Rendering-Object-Format) を参照してください。  
タイプ: メトリックレンダリングプロパティオブジェクト  
必須: いいえ

```
// The simplest example, a metric with no dimensions
        [ "AWS/EC2", "CPUUtilization" ]
        
 // A metric with a single dimension
        [ "AWS/EC2", "CPUUtilization", "InstanceId", "i-012345" ]
        
 // A metric with a single dimension and rendering properties
        [ "AWS/EC2", "DiskReadBytes", "InstanceId", "i-xyz", { "yAxis": "right"} ]
       
 // The following example graphs the DiskReadBytes metric for three instances.
        [ "AWS/EC2", "DiskReadBytes", "InstanceId", "i-xyz" ],
        [ ".", ".", ".", "i-abc" ],
        [ ".", ".", ".", "i-123" ]
       
 // The following example includes two metrics and a math expression to sum them.
        [ "AWS/EC2", "DiskReadBytes", "InstanceId", "i-123",{ "id": "m1" } ],
        [ ".", ".", ".", "i-abc", { "id": "m2" } ],
        [ { "expression": "SUM(METRICS())", "label": "Sum of DiskReadbytes", "id": "e3" } ]
       
  // The following example is a search expression showing the EC2 CPUUtilization for each instance in the Region.
        [ { "expression": "SEARCH('{AWS/EC2,InstanceId} MetricName=\"CPUUtilization\"', 'Average', 300)", "id": "e1" } ],
```

**Topics**
+ [ダッシュボードウィジェットオブジェクト: レンダリングプロパティオブジェクト形式](#CloudWatch-Dashboard-Properties-Rendering-Object-Format)
+ [ダッシュボードウィジェットオブジェクト: 注釈プロパティ](#CloudWatch-Dashboard-Properties-Annotation-Format)
+ [ダッシュボードウィジェットオブジェクト: yAxis プロパティ形式](#CloudWatch-Dashboard-Properties-YAxis-Properties-Format)
+ [ダッシュボードウィジェットオブジェクト: テーブルプロパティ](#CloudWatch-Dashboard-Properties-Table)

### ダッシュボードウィジェットオブジェクト: レンダリングプロパティオブジェクト形式
<a name="CloudWatch-Dashboard-Properties-Rendering-Object-Format"></a>

`metrics` 配列内の各メトリクスは、オプションで、`widget` オブジェクトの `yAxis` パラメータで指定されたデフォルトのレンダリングプロパティを上書きするカスタムレンダリングプロパティを持つことができます。このセクションでは、メトリクスごとのカスタムレンダリングプロパティの形式について説明します。

**color**  
このメトリクスに使用する 6 桁の HTML 16 進数カラーコード。  
タイプ: 文字列  
必須: いいえ

**ラベル**  
グラフの凡例でこのメトリクスに表示するラベル。これを指定しない場合、メトリクスには、ウィジェット内の他のメトリクスと区別する自動生成されたラベルが付けられます。  
タイプ: 文字列  
必須: いいえ

**期間**  
このメトリクスの期間 (秒単位)。期間とは、グラフの 1 つのデータポイントで表される時間長です。  
有効な値: 60 の倍数。最小値は 60 です。  
タイプ: 整数  
必須: いいえ

**統計**  
配列内の他のメトリクスに使用される統計と異なる場合の、このメトリクスの統計。デフォルトでは、配列またはメトリクスレベルで統計を指定しない場合、CloudWatch は *平均* を使用します。  
有効な値: `SampleCount` \| `Average` \| `Sum` \| `Minimum` \| `Maximum` \| `p{{??}}`  
タイプ: 有効な CloudWatch 統計である文字列。  
必須: いいえ

**visible**  
これを `true` に設定するとメトリクスがグラフに表示され、`false` に設定するとグラフが非表示になります。デフォルトは `true` です。  
タイプ: ブール値  
必須: いいえ

**yAxis**  
このメトリクスの y 軸を表示するグラフ上の場所。デフォルトは `left` です。  
有効な値: `left` \| `right`  
タイプ: 文字列  
必須: いいえ

```
       
 // The third metric has its own rendering properties, overriding those of the rest of the widget.
        [ "AWS/EC2", "DiskReadBytes", "InstanceId", "i-xyz" ],
        [ ".", ".", ".", "i-abc" ],
        [ ".", ".", ".", "i-123", { "label":"Instance i-123", "yAxis": "right"}  ]
```

### ダッシュボードウィジェットオブジェクト: 注釈プロパティ
<a name="CloudWatch-Dashboard-Properties-Annotation-Format"></a>

注釈には、アラーム、水平注釈、垂直注釈が含まれます。1 つのメトリクスウィジェットに最大 1 つのアラームを含めることも、1 つ以上の水平注釈または垂直注釈を含めることもできます。1 つのウィジェットにアラームと水平注釈または垂直注釈の両方を含めることはできません。

#### アラーム注釈
<a name="Alarm-Annotations"></a>

アラーム注釈を指定した場合、同じウィジェットで `metrics` 配列を指定することもできません。

**アラーム**  
アラームの Amazon リソースネーム (ARN)。  
タイプ: 文字列の配列。配列には 0～1 個の文字列を含めることができます。  
必須: メトリクスがリストされていない場合のみ。

```
                
"annotations": {
   "alarms": [ "{{arn1}}" ]
}
```

#### 水平注釈
<a name="Horizontal-Annotations"></a>

**水平**  
水平注釈の配列。水平注釈には、注釈行の上のシェーディング、注釈行の下のシェーディング、1 つのバンド注釈の一部として 2 つのリンクされた注釈行の間に表示される「バンド」シェーディングなど、フィルシェーディングのオプションがいくつかあります。バンド注釈ではなく 1 つの注釈である配列内の各水平注釈は次の形式になります。  

```
{{{value}}, {{label}}, {{color}}, {{fill}}, {{yAxis}}, {{visible}}}
```
バンド注釈である各水平注釈の形式は次のとおりです。  

```
[ {{{value}}, {{label}}, {{color}}, {{yAxis}}, {{visible}}}, {{{value}}, {{label}}} ]
```

**値**  
水平注釈行が表示されるグラフのメトリクス値。バンドシェーディング注釈では、Value の 2 つの値がバンドの上下のエッジを定義します。  
水平注釈付きのグラフでは、表示されるすべての水平注釈がグラフに表示されるようにスケールされます。  
タイプ: 浮動小数点  
必須: はい

**ラベル**  
注釈の横にあるグラフに表示される文字列。  
タイプ: 文字列  
必須: いいえ

**color**  
注釈に使用する 6 桁の HTML 16 進数カラーコード。この色は、注釈行とフィルシェーディングの両方に使用されます。  
タイプ: 文字列  
必須: いいえ

**FILL**  
注釈でフィルシェーディングを使用する方法。有効な値は、注釈の上のシェーディングの場合は `above`、注釈の下のシェーディングの場合は `below`、シェーディングなしの場合は `none` です。`fill` を省略した場合、シェーディングはありません。  
例外は、バンドシェーディングを使用した注釈です。これらの注釈は常に 2 つの値の間にシェーディングがあり、`fill` の任意の値は無視されます。  
タイプ: 文字列  
必須: いいえ

**visible**  
これを `true` に設定すると注釈がグラフに表示され、`false` に設定するとグラフが非表示になります。デフォルトは `true` です。  
タイプ: ブール値  
必須: いいえ

**yAxis**  
グラフに複数のメトリクスが含まれる場合、`Value` の数値が左の Y 軸または右の Y 軸のどちらに関連するメトリクスを指すかを指定します。有効な値は、`right` および `left` です。  
タイプ: 文字列  
必須: いいえ

```
// A single horizontal annotation with fill shading above the annotation line, based on the metric associated with the right Y-axis
                
"annotations": {
     "horizontal": [
         {
              "visible":true,
              "color":"#9467bd",
              "label":"Critical range",
              "value":20,
              "fill":"above",
              "yAxis":"right"
         }
    ]
}

// A band annotation. Each value has a label, but other parameters for the band are specified only with the first number

"annotations": {
    "horizontal": [
        [
            {
                "label": "Band top",
                "value": 200,
                "color": "#9467bd",
                "visible": true,
                "yAxis": "right"
            },
            {
                "value": 95.5,
                "label": "Band bottom"
            }
        ]
    ]
}

// Three annotations on a graph. The first one is a band annotation. The final one is hidden.

"annotations": {
    "horizontal": [
        [
            {
                "label": "Band top",
                "value": 200,
                "color": "#9467bd",
                "visible": true,
                "yAxis": "right"
            },
            {
                "value": 95.5,
                "label": "Band bottom"
            }
        ],
        {
            "visible": true,
            "color": "#9467bd",
            "label": "Label for this annotation",
            "value": 20,
            "fill": "below",
            "yAxis": "right"
        },
        {
            "visible": false,
            "color": "#aaa",
            "label": "Hidden annotation",
            "value": 150
        }
    ]
}
```

#### 垂直注釈
<a name="Vertical-Annotations"></a>

**垂直**  
垂直注釈の配列。垂直注釈ごとに、注釈の前にフィルシェーディングを使用するか、注釈の後にフィルシェーディングを使用するか、1 つのバンド注釈としてリンクされている 2 つの垂直行の間にフィルシェーディングを使用するかを選択できます。バンド注釈ではなく 1 つの注釈である配列内の各垂直注釈は次の形式になります。  

```
{{{value}}, {{label}}, {{color}}, {{fill}}, {{visible}}}
```
バンド注釈である各垂直注釈の形式は次のとおりです。  

```
[ {{{value}}, {{label}}, {{color}}, {{visible}}}, {{{value}}, {{label}}} ]
```

**値**  
垂直注釈行が表示されるグラフの日時。バンドシェーディング注釈では、Value の 2 つの値がバンドの開始エッジと終了エッジを定義します。  
垂直注釈付きのグラフでは、表示されるすべての垂直注釈がグラフに表示されるようにスケールされます。  
これは ISO 8601 形式の文字列として定義されます。詳細については、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) を参照してください。  
タイプ: 文字列  
必須: はい

**ラベル**  
注釈の横にあるグラフに表示される文字列。  
タイプ: 文字列  
必須: いいえ

**color**  
注釈に使用する 6 桁の HTML 16 進数カラーコード。この色は、注釈行とフィルシェーディングの両方に使用されます。  
タイプ: 文字列  
必須: いいえ

**FILL**  
注釈でフィルシェーディングを使用する方法。有効な値は、注釈の前のシェーディングの場合は `before`、注釈の後のシェーディングの場合は `after`、シェーディングなしの場合は `none` です。`fill` を省略した場合、シェーディングはありません。  
例外は、バンドシェーディングを使用した注釈です。これらの注釈は常に 2 つの値の間にシェーディングがあり、`fill` の任意の値は無視されます。  
タイプ: 文字列  
必須: いいえ

**visible**  
これを `true` に設定すると注釈がグラフに表示され、`false` に設定するとグラフが非表示になります。デフォルトは `true` です。  
タイプ: ブール値  
必須: いいえ

```
// A single vertical annotation with fill shading after the annotation line
                    
"annotations": {
    "vertical": [
        {
            "visible": true,
            "color": "#9467bd",
            "label": "Bug fix deployed",
            "value": "2018-08-28T15:25:26Z",
            "fill": "after"
        }
    ]
}	


// A band vertical annotation. Each annotation line has a label, but other parameters for the band are specified only with the first value

"annotations": {
    "vertical": [
        [
            {
                "label": "Band start",
                "value": "2018-08-27T15:25:26Z",
                "color": "#9467bd",
                "visible": true
            },
            {
                "value": "2018-08-28T15:25:26Z",
                "label": "Band end"
            }
        ]
    ]
}
```

### ダッシュボードウィジェットオブジェクト: yAxis プロパティ形式
<a name="CloudWatch-Dashboard-Properties-YAxis-Properties-Format"></a>

グラフの Y 軸の設定を定義します。設定には、最大値と最小値、軸のラベル、軸に単位を表示するかどうかが含まれます。`widget` オブジェクト内でこれを設定すると、ウィジェット内のすべてのメトリクスに影響します。特定のメトリクスのウィジェット設定を上書きするには、`metrics` 配列内のメトリクスに設定します。

```
{
  left: {
    min: 0,
    max: 100
  },
  right: {
    min: 0
  }
}
```

**側の**  
左の Y 軸のオプション設定。  
タイプ: YAxis オブジェクト  
必須: いいえ

**右**  
右の Y 軸のオプション設定。  
タイプ: YAxis オブジェクト  
必須: いいえ

`left` および `right` オブジェクトのそれぞれに次のパラメータを含めることができます。

**ラベル**  
この Y 軸のラベル  
タイプ: 文字列  
必須: いいえ

**min**  
この Y 軸の最小値  
タイプ: 浮動小数点  
必須: いいえ

**max**  
この Y 軸の最大値  
タイプ: 浮動小数点  
必須: いいえ

**showUnits**  
この軸に関連付けられたメトリクスの単位を表示するかどうかを決定します。デフォルトは true です。  
タイプ: ブール値  
必須: いいえ

### ダッシュボードウィジェットオブジェクト: テーブルプロパティ
<a name="CloudWatch-Dashboard-Properties-Table"></a>

メトリクスウィジェットに `table` を指定した場合、集計列、データポイント列、テーブルレイアウトの可視性に関連する視覚化を含めることができます。これらのプロパティは、ウィジェットビュータイプが `table` の場合にのみ有効になり、含まれている場合は他のビュータイプを変更しません。テーブルウィジェットを使用する場合、`table` プロパティは必須ではありません。

**layout**  
このフィールドを使用して、データポイントが垂直または水平に拡張されるようにテーブルを変換します。デフォルトは `horizontal` です。  
有効な値: `vertical` \| `horizontal`  
タイプ: 文字列  
必須: いいえ

**stickySummary**  
これを `true` に設定すると、テーブルに含める集計列がスティッキーになり、ビューポートに常に集計列がある状態でデータ列を調べることができます。デフォルトは `false` です。  
このフィールドで選択した場合でも、ウィジェットラベルは常にスティッキーです。  
有効な値: `true` \| `false`  
タイプ: ブール値  
必須: いいえ

**showTimeSeriesData**  
ラベル列と集計列のみを表示し、データの他の列を非表示にする場合は、これを `false` に設定します。  
デフォルトは `true` です。  
有効な値: `true` \| `false`  
タイプ: ブール値  
必須: いいえ

**summaryColumns**  
集計列は、テーブルウィジェットに導入された新しいプロパティです。現在のテーブルのうち、ある特定の部分を集計したものです。たとえば、`Sum` 集計は、それぞれの行にレンダリングされたすべてのデータポイントの合計です。集計列は、CloudWatch メトリクス統計と同じ概念ではありません。  
デフォルトは `[“MIN“, "MAX","SUM", "AVG"]` です。  
有効な値: `"MIN"` \| `"MAX"`\| `"SUM"`\| `"AVG"`  
型: 配列  
必須: いいえ

たとえば、次の JSON は、テーブル内の各メトリクスの最小値と最大値を表示するテーブルを作成します。

```
"table": {
    "summaryColumns": ["MIN", "MAX"],
    "layout": "vertical",
    "stickySummary": true,
    "showTimeSeriesData": false,
    },
```

## メトリクスエクスプローラーウィジェットオブジェクトのプロパティ
<a name="CloudWatch-Dashboard-Properties-Metric-Explorer-Object"></a>

タイプ `explorer` のウィジェットは、メトリクスエクスプローラーウィジェットを表します。詳細については、「[メトリクスエクスプローラーを使用して、タグとプロパティ別にリソースをモニタリングする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metrics-Explorer.html)」を参照してください。

CloudFormation を使用してダッシュボードにメトリクスエクスプローラーウィジェットを追加することもできます。詳細については、「[AWS::CloudWatch::Dashboard](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html)」を参照してください。

このウィジェットタイプには、ウィジェット `properties` 内に次のフィールドを含めることができます。

**aggregateBy**  
複数のリソースからメトリクスを集約する方法を指定するオブジェクト。このオブジェクトの `key` フィールドの有効な値は、タグおよびリソースプロパティのキーです。このオブジェクトには以下のフィールドが含まれています。  
+ **key** – メトリクスの集約に使用するタグまたはリソースプロパティキー。
+ **func** – 使用する集計関数。有効な値: `AVG` \| `MIN` \| `MAX` \| `STDDEV` \| `SUM`
タイプ: オブジェクト  
必須: いいえ

**ラベル**  
ウィジェットに表示されるメトリクスを決定するために使用されるタグまたはリソースプロパティの配列。  
異なるキーを指定すると、すべてのキーと値のペアに一致するリソースのみが表示されます。1 つのキーに複数の値を指定すると、そのキーの値のいずれかに一致するリソースが表示されます。  
+ **key** – フィルタリングするタグまたはリソースプロパティ。

  `key` の場合、すべてのタグキーを指定できます。次の EC2 および Lambda リソースプロパティは `key` にも有効です。
  + EC2:

    `Architecture`, `Hypervisor`, `CoreCount`, `ImageId`, `InstanceId`, `InstanceLifecycle`, `InstanceType`, `InstanceFamily`, `InstanceSize`, `Affinity`, `AvailabilityZone`, `Tenancy`, `Platform`, `RootDeviceType SecurityGroups, State, SubnetId, VirtualizationType, and VpcId `
  + Lambda:

     `FunctionName`、`Runtime`、`Language`、`MemorySize`、`Version`、`SecurityGroupIds`、`SubnetIds`、`SubnetIdCount`、`VpcId`、および `Timeout`
+ **value** – (オプション) フィルタリングするタグまたはリソースプロパティの値。これを省略すると、そのタグまたはリソースプロパティのすべての値に対応するメトリクスが表示されます。
型: オブジェクト  
必須: はい

**metrics**  
1 つ以上のメトリクスを含める `metrics` 配列を指定します。1 つの `metrics` 配列に 1～100 個のメトリクスを含めることができます。その配列の各オブジェクトには次のフィールドを含める必要があります。  
+ **metricName** – メトリクスの名前。
+ **resourceType** – メトリクスを公開するリソースのタイプ。AWS CloudFormation で使用される形式で記述されます。例えば、`AWS::EC2::Instance`、`AWS::Lambda::Function` です。

  ウィジェット内のすべてのメトリクスにおいて、`resourceType` の場合と同じ値を使用する必要があります。

  有効な値の一覧については、「[メトリクスエクスプローラーウィジェットオブジェクトの有効な resourceType 値](#CloudWatch-Dashboard-Properties-Metric-Explorer-resourceType)」を参照してください。
+ **stat** – 配列内の他のメトリクスに使用される統計と異なる場合の、このメトリクスの統計。デフォルトでは、配列またはメトリクスレベルで統計を指定しない場合、CloudWatch は *平均* を使用します。

  有効な値: `SampleCount` \| `Average` \| `Sum` \| `Minimum` \| `Maximum` \| `p{{??}}`
タイプ: オブジェクトの配列  
必須: はい

**期間**  
このウィジェットのすべてのメトリクスのデフォルトの期間 (秒単位)。期間とは、グラフの 1 つのデータポイントで表される時間長です。デフォルトは 300 です。  
有効な値: 60 の倍数。最小値は 60 です。  
タイプ: 整数  
必須: いいえ

**splitBy**  
メトリクスを複数のリソースからグラフ上の異なる行に分割する方法、または異なるグラフに分割する方法を指定します。有効な値は、タグのキーとリソースプロパティのキーです。  
タイプ: 文字列  
必須: いいえ

**title**  
ウィジェットに表示されるタイトル。デフォルトは `Explorer` です。  
タイプ: 文字列  
必須: いいえ

**widgetOptions**  
ダッシュボードでのウィジェットの表示方法を指定するオブジェクト。次のフィールドを含めることができます。  
+ **legend** –

  各グラフの凡例を表示する場所を決定します。`legend` フィールドには、`position` という別のフィールドが含まれています。`position` の可能な値は `right`、`bottom`、`hidden` です。

  たとえば、次の例では、グラフの右側に凡例が表示されます。

  ```
  "legend": {
       "position": "right"
  }
  ```
+ **rowsPerPage** –

  ウィジェットのページごとに表示されるグラフの行数を指定します。
+ **stacked** –

  グラフを積み上げ領域として表示するには `true` を指定し、別の行として表示するには `false` を指定します。
+ **view** –

  各グラフの表示方法を指定します。このメトリクスを折れ線グラフとして表示するには、`timeSeries` を指定します。このメトリクスを棒グラフとして表示するには、`bar` を指定します。このメトリクスを円グラフとして表示するには、`pie` を指定します。デフォルトは `timeSeries` です。
+ **widgetsPerRow** –

  メトリクスエクスプローラーウィジェットの各行に表示されるグラフの数を指定します。
タイプ: オブジェクト  
必須: いいえ

**例**

次の例では、アカウントの実行中の EC2 インスタンスごとに 3 つのメトリクスを表示し、ウィジェット内のグラフをアベイラビリティーゾーンで分割します。各グラフ内では、メトリクスはインスタンスタイプ別に集計されます。

```
{
    "widgets": [
        {
            "type": "explorer",
            "width": 24,
            "height": 15,
            "x": 0,
            "y": 0,
            "properties": {
                "metrics": [
                    {
                        "metricName": "CPUUtilization",
                        "resourceType": "AWS::EC2::Instance",
                        "stat": "Average"
                    },
                    {
                        "metricName": "NetworkIn",
                        "resourceType": "AWS::EC2::Instance",
                        "stat": "Average"
                    },
                    {
                        "metricName": "NetworkOut",
                        "resourceType": "AWS::EC2::Instance",
                        "stat": "Average"
                    }
                ],
                "aggregateBy": {
                    "key": "InstanceType",
                    "func": "MAX"
                },
                "labels": [
                    {
                        "key": "State",
                        "value": "running"
                    }
                ],
                "widgetOptions": {
                    "legend": {
                        "position": "bottom"
                    },
                    "view": "timeSeries",
                    "rowsPerPage": 8,
                    "widgetsPerRow": 2
                },
                "period": 300,
                "splitBy": "AvailabilityZone",
                "title": "Running EC2 Instances by AZ"
            }
        }
    ]
}
```

### メトリクスエクスプローラーウィジェットオブジェクトの有効な resourceType 値
<a name="CloudWatch-Dashboard-Properties-Metric-Explorer-resourceType"></a>

メトリクスエクスプローラーウィジェットの `metrics` セクションの `resourceType` フィールドの有効な値は次のとおりです。
+ `AWS::AmazonMQ::Broker`
+ `AWS::ApiGateway::RestApi`
+ `AWS::AppStream::Fleet`
+ `AWS::AppSync::GraphQLApi`
+ `AWS::CloudFront::Distribution`
+ `AWS::CodeBuild::Project`
+ `AWS::Datasync::Agent`
+ `AWS::Datasync::Task`
+ `AWS::DMS::ReplicationInstance`
+ `AWS::DynamoDB::Table`
+ `AWS::EC2::CapacityReservation`
+ `AWS::EC2::Instance`
+ `AWS::EC2::NatGateway`
+ `AWS::EC2::TransitGateway`
+ `AWS::EC2::Volume`
+ `AWS::EC2::VPNConnection`
+ `AWS::ECS::Cluster`
+ `AWS::EFS::FileSystem`
+ `AWS::ElastiCache::CacheCluster`
+ `AWS::ElastiCache::ReplicationGroup`
+ `AWS::ElasticBeanstalk::Environment`
+ `AWS::ElasticLoadBalancing::LoadBalancer`
+ `AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB`
+ `AWS::ElasticLoadBalancingV2::LoadBalancer/GatewayELB`
+ `AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB`
+ `AWS::ElasticLoadBalancingV2::TargetGroup`
+ `AWS::EMR::Cluster`
+ `AWS::Events::Rule`
+ `AWS::FSx::FileSystem`
+ `AWS::GameLift::Fleet`
+ `AWS::GlobalAccelerator::Accelerator`
+ `AWS::IoT::TopicRule`
+ `AWS::IoT1Click::Device`
+ `AWS::IoTAnalytics::Channel`
+ `AWS::IoTAnalytics::Dataset`
+ `AWS::IoTAnalytics::Datastore`
+ `AWS::IoTAnalytics::Pipeline`
+ `AWS::Kafka::Cluster`
+ `AWS::Kinesis::Stream`
+ `AWS::KinesisAnalytics::Application`
+ `AWS::KinesisFirehose::DeliveryStream`
+ `AWS::KinesisVideo::Stream`
+ `AWS::KMS::Key`
+ `AWS::Lambda::Function`
+ `AWS::Logs::LogGroup`
+ `AWS::MediaPackage::Channel`
+ `AWS::MediaStore::Container`
+ `AWS::OpsWorks::Instance`
+ `AWS::OpsWorks::Layer`
+ `AWS::OpsWorks::Stack`
+ `AWS::QLDB::Ledger`
+ `AWS::RDS::DBInstance`
+ `AWS::Redshift::Cluster`
+ `AWS::RoboMaker::SimulationJob`
+ `AWS::Route53::HealthCheck`
+ `AWS::Route53Resolver::ResolverEndpoint`
+ `AWS::S3::Bucket`
+ `AWS::SageMaker::Endpoint`
+ `AWS::ServiceCatalog::CloudFormationProduct`
+ `AWS::SES::ConfigurationSet`
+ `AWS::SNS::Topic`
+ `AWS::SQS::Queue`
+ `AWS::StepFunctions::Activity`
+ `AWS::StepFunctions::StateMachine`
+ `AWS::StorageGateway::Gateway`
+ `AWS::Synthetics::Canary`
+ `AWS::Transfer::Server`
+ `AWS::WorkMail::Organization`
+ `AWS::WorkSpaces::Workspace`

## アラームステータスウィジェットオブジェクトのプロパティ
<a name="CloudWatch-Dashboard-Properties-Alarm-Widget-Object"></a>

タイプ `alarm` のウィジェットには、`properties` 内に次のフィールドを含めることができます。

**アラーム**  
ウィジェットに含めるアラーム ARN の配列。配列には 1～100 ARN を含めることができます。  
型: 文字列の配列  
必須: はい (ウィジェット `type` が `alarm` の場合)。

**sortBy**  
ウィジェットでアラームをソートする方法を指定します。  
アラーム名でアルファベット順にソートするには、`default` を選択します。  
最初にアラーム状態別にソートするには `stateUpdatedTimestamp` を選択します。ALARM 状態のアラーム、INSUFFICIENT\_DATA アラーム、OK アラームの順に設定します。各グループ内では、アラームは最後に状態が変更された日時でソートされ、より最新の状態の変更が最初に一覧表示されます。  
現在のアラーム状態に関係なく、アラーム状態が最後に変更された時刻でソートするには `timestamp` を選択します。状態が最後に変更されたアラームが最初に一覧表示されます。  
このフィールドを省略すると、アラームはアルファベット順にソートされます。  
タイプ: 文字列  
有効な値: default \| stateUpdatedTimestamp \| timestamp  
必須: いいえ

**states**  
このフィールドを使用して、ウィジェットに表示されるアラームのリストを、指定された現在の状態のアラームのみにフィルタリングします。このフィールドの値には、1 つ以上のアラーム状態を指定できます。指定できるアラームの状態は、`ALARM`、`INSUFFICIENT_DATA`、`OK` です。  
このフィールドを省略するか、空の配列を指定すると、`alarms` で指定されたすべてのアラームが表示されます。  
型: 文字列の配列  
必須: いいえ

**title**  
ウィジェットに表示されるタイトルテキスト。  
タイプ: 文字列  
必須: いいえ

次の例は、現在の状態に関係なく、名前で指定された 4 つのアラームを表示するアラームステータスウィジェットです。

```
{
    "type": "alarm",
    "x": 0,
    "y": 0,
    "width": 12,
    "height": 6,
    "properties": {
        "alarms": [
            "arn:aws:cloudwatch:us-east-1:012345678901:alarm:EC2FrontendCPU",
            "arn:aws:cloudwatch:us-east-1:012345678901:alarm:EC2BackendCPU",
            "arn:aws:cloudwatch:eu-west-1:987654321098:alarm:EC2FrontendCPU",
            "arn:aws:cloudwatch:eu-west-1:987654321098:alarm:EC2BackendCPU"
        ],
        "sortBy": "stateUpdatedTimestamp",
        "title": "All EC2 CPU alarms"
    }
}
```

次のウィジェットの例では、同じ 4 つのアラームを指定しますが、ウィジェットには、現在 ALARM または INSUFFICIENT\_DATA 状態にあるアラームのみが表示されます。

```
{
    "type": "alarm",
    "x": 0,
    "y": 0,
    "width": 12,
    "height": 6,
    "properties": {
        "alarms": [
            "arn:aws:cloudwatch:us-east-1:012345678901:alarm:EC2FrontendCPU",
            "arn:aws:cloudwatch:us-east-1:012345678901:alarm:EC2BackendCPU",
            "arn:aws:cloudwatch:eu-west-1:987654321098:alarm:EC2FrontendCPU",
            "arn:aws:cloudwatch:eu-west-1:987654321098:alarm:EC2BackendCPU"
        ],
        "sortBy": "stateUpdatedTimestamp",
        "states": [
            "ALARM",
            "INSUFFICIENT_DATA"
        ],
        "title": "EC2 alarms that are not currently OK"
    }
}
```