

# 대시보드 본문 구조 및 구문
<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)
+ [Metrics Explorer 위젯 객체의 속성](#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"
         }
      }
   ]
}
```

다음 예제에서는 Lambda 함수별 지표를 3개 표시하며, 대시보드 변수를 사용하여 대시보드 사용자가 서로 다른 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개의 지표와 그 합계를 계산하는 수학 표현식이 포함됩니다. 두 번째 위젯은 리전의 모든 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`의 값을 지정하면 `start`에 대한 값도 함께 지정해야 합니다. 이러한 각 값에 대해 ISO 8601 형식으로 절대 시간을 지정하세요. 예를 들어 `2018-12-17T06:00:00.000Z`입니다.  
유형: String  
필수 여부: 아니요

**시작**  
대시보드의 각 위젯에 사용할 시간 범위의 시작입니다.  
`end`를 지정하지 않고 `start`를 지정하여 현재 시간으로 끝나는 상대 시간 범위를 지정할 수 있습니다. 이 경우 시간 범위를 분이나 시간 단위로 지정할 때는 `start` 값이 `-PT`로 시작해야 하고, 일, 주 또는 월 단위로 지정할 때는 `-P`로 시작해야 합니다. 그런 다음 M, H, D, W, M을 분, 시간, 일, 주, 월의 약어로 사용할 수 있습니다. 예를 들어, `-PT5M`은 최근 5분을 표시하고, `-PT8H`는 최근 8시간을 표시하고, `-P3M`은 최근 3개월을 표시합니다.  
`end` 필드와 함께 `start`를 사용하여 절대 시간 범위를 지정할 수도 있습니다. 절대 시간 범위를 지정할 때는 ISO 8601 형식을 사용합니다. 예를 들어 `2018-12-17T06:00:00.000Z`입니다.  
`start`를 생략하면 대시보드가 ​​로드될 때 기본 시간 범위가 표시됩니다.  
유형: 문자열  
필수 여부: 아니요

**periodOverride**  
이 필드를 사용하여 대시보드가 로드될 때 그래프의 기간을 지정합니다. `auto`를 지정하면 대시보드의 모든 그래프 기간이 대시보드의 시간 범위에 맞게 자동으로 조정됩니다. `inherit`을 지정하면 각 그래프에 설정된 기간이 항상 준수됩니다.  
유효한 값: auto \| inherit  
유형: 문자열  
필수 여부: 아니요

## 위젯 배열 구조
<a name="CloudWatch-Dashboard-Properties-Widgets-Structure"></a>

모든 유형의 위젯은 다음 속성을 가질 수 있습니다.

**type**  
위젯의 유형입니다.  
유효한 값: `metric` \| `text` \| `log` \| `alarm` \| `explorer`  
유형: 문자열  
필수 항목 여부: 예

**x**  
24열 대시보드 그리드에서 위젯의 가로 위치입니다. 기본값은 사용 가능한 다음 위치입니다.  
유효한 값: 0\~23  
유형: 정수  
필수: 예(`y`가 지정된 경우). 그렇지 않은 경우 필수가 아닙니다.

**y**  
24열 대시보드 그리드에서 위젯의 세로 위치입니다. 기본값은 사용 가능한 다음 위치입니다.  
유효한 값: 0 이상의 정수  
유형: 정수  
필수: 예(`x`가 지정된 경우). 그렇지 않은 경우 필수가 아닙니다.

**width**  
그리드 단위(24열 그리드 기준)의 위젯 너비입니다. 기본값은 6입니다.  
유효한 값: 1\~24  
유형: 정수  
필수 여부: 아니요

**height**  
그리드 단위의 위젯 높이입니다. 기본값은 6입니다.  
유효한 값: 1\~1,000  
유형: 정수  
필수 여부: 아니요

**속성**  
위젯의 세부 속성으로, 위젯 유형에 따라 다릅니다. `properties`의 형식에 대한 자세한 내용은 [지표 위젯 객체의 속성](#CloudWatch-Dashboard-Properties-Metric-Widget-Object) 또는 [텍스트 위젯 객체의 속성](#CloudWatch-Dashboard-Properties-Text-Widget-Object) 섹션을 참조하세요.  
유형: 객체  
필수 여부: 예

## 변수 배열 구조
<a name="CloudWatch-Dashboard-Properties-Variables-Structure"></a>

배열의 각 대시보드 변수에는 다음과 같은 속성이 있을 수 있습니다.

**type**  
대시보드 변수의 유형입니다. CloudWatch는 *속성 변수*와 *패턴 변수*라는 두 가지 유형을 지원합니다.  
속성 변수는 대시보드의 모든 위젯에서 속성의 모든 인스턴스 값을 변경합니다. 속성은 다음 중 하나일 수 있습니다.  
+ `region`과 같은 위젯 정의의 모든 JSON 속성입니다.
+ `InstanceId` 또는 `FunctionName`과 같은 지표의 차원 이름입니다.
패턴 변수는 대시보드 JSON에서 정규식 패턴을 변경합니다. JSON 속성 값의 일부만 변경하거나 JSON 속성 자체를 변경해야 하는 경우 사용합니다.  
속성 변수는 대부분의 사용 사례에 적용되며 설정하기가 덜 복잡합니다.  
유효한 값: `property` \| `pattern`  
유형: 문자열  
필수 항목 여부: 예

**inputType**  
대시보드 사용자가 변수 값을 입력하는 방법을 결정합니다.  
+ 사용자가 값을 입력할 수 있는 텍스트 상자를 사용하려면 `input`을 지정합니다.
+ 정의하는 값의 드롭다운 세트를 사용하거나, 지표 검색 쿼리로 찾은 값의 드롭다운 목록을 사용하려면 `select`를 지정합니다.
+ 정의하는 값이나 지표 검색 쿼리로 찾은 값과 함께 라디오 버튼 세트를 사용하려면 `radio`를 지정합니다.
유효한 값: `input` \| `select` \| `radio`  
유형: 문자열  
필수 항목 여부: 예

**values**  
`inputType`이 `select` 또는 `radio`이고 지표 쿼리 검색을 사용하는 대신 가능한 변수 값을 정의하려는 경우 여기에 해당 값을 지정합니다.  
`values`는 배열의 각 객체에 필수 *값*과 선택적 *레이블*이 포함된 배열입니다. 각 *값*은 문자열, 숫자 또는 부울일 수 있으며 각 레이블은 문자열이어야 합니다. 이러한 각 값과 레이블은 최대 255자일 수 있습니다.  
`values` 배열을 지정하는 경우 하나 이상의 항목을 포함해야 하며 최대 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는 해당 지표와 차원을 게시하는 모든 리소스를 찾아 목록에 추가합니다.  
예를 들어, 계정에서 Amazon EC2 인스턴스를 검색하려면 `"search": "{AWS/EC2,InstanceId} MetricName=\"CPUUtilization\""`를 지정하고, 계정에서 Lambda 함수를 반환하려면 `"search": "{AWS/Lambda,FunctionName} MetricName=\"Duration\"",`를 지정합니다.  
지정하는 `search` 문자열은 최대 2,048자일 수 있습니다.  
검색 표현식을 사용하면서 기본값을 지정하려는 경우 `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 쿼리의 결과를 나타냅니다. 자세한 내용은 [CloudWatch Logs Insights를 사용한 로그 데이터 분석](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)을 참조하세요.

`log` 위젯의 `properties` 필드에 다음 필드가 포함될 수 있습니다.

**accountId**  
교차 계정 쿼리인 경우 로그가 포함된 AWS 계정의 계정 ID입니다.  
유형: 문자열  
필수 여부: 아니요

**리전**  
로그 쿼리의 리전입니다.  
유형: 문자열  
필수 항목 여부: 예

**제목**  
위젯에서 표시할 제목 텍스트입니다.  
유형: 문자열  
필수 여부: 아니요

**쿼리**  
CloudWatch Logs Insights 쿼리 함수를 포함합니다.  
유형: 문자열  
필수: 예(위젯 `type`이 `log`인 경우)  
`query` 문자열은 쿼리할 로그 그룹의 이름으로 시작합니다. 각 로그 그룹 이름 앞에 `SOURCE`를 붙여야 합니다. 여러 로그 그룹을 파이프 문자(\|)로 구분합니다.  
로그 그룹 목록 뒤에 다른 파이프 문자를 추가한 다음 쿼리 구문을 지정합니다. 쿼리 구문의 각 줄을 `\n|`로 구분합니다.  
예를 들어, 다음 줄은 `service_log1`과 `service_log2`라는 2개의 로그 그룹에 대한 쿼리를 나타냅니다. 이 쿼리는 오류가 발생한 카나리를 표시합니다.  

```
"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` 배열을 지정합니다. 형식에 대한 자세한 내용은 [대시보드 위젯 객체: 주석 속성](#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 Insights 쿼리, 수학 표현식 또는 검색 표현식을 포함하도록 `metrics` 배열을 지정합니다. 하나의 `metrics` 배열에는 0\~500개의 지표와 표현식이 포함될 수 있습니다. 지표 위젯에만 이 파라미터를 사용합니다. `metrics`의 형식에 대한 자세한 내용은 [지표 위젯: 배열의 각 지표에 대한 형식](#CloudWatch-Dashboard-Properties-Metrics-Array-Format) 섹션을 참조하세요.  
하나의 지표 배열에는 Metrics Insights 쿼리가 하나만 포함될 수 있습니다.  
단일 `expression` 필드에 Metrics Insights 쿼리와 수학 표현식이 모두 포함될 수 없지만 한 표현식의 반환된 Metrics Insights 쿼리 결과를 배열의 다른 표현식에 수학 표현식의 입력으로 사용할 수 있습니다.  
유형: 배열의 배열  
필수: 예(위젯 `type`이 `metric`이고 `annotations`가 지정되지 않은 경우)

**기간**  
이 위젯의 모든 지표에 대한 기본 기간(초)입니다. 기간은 그래프에서 하나의 데이터 포인트로 표시되는 시간의 길이입니다. 이 기본값은 각 지표 정의 내에서 재정의할 수 있습니다. 지표 위젯에만 이 파라미터를 사용합니다. 기본값은 300입니다.  
유효한 값: 60의 배수. 최솟값은 60입니다.  
유형: 정수  
필수 여부: 아니요

**리전**  
지표의 리전입니다.  
유형: 문자열  
필수 항목 여부: 예

**스파크라인**  
 숫자 위젯 아래에 스파크라인 기능을 표시하려면 `true`를 지정합니다. 숫자 위젯을 자체적으로 표시하려면 `false`를 지정합니다. view가 `singleValue`가 아닌 경우 이 파라미터는 무시됩니다. 지표 위젯에만 이 파라미터를 사용합니다.  
 유형: 부울   
 필수 여부: 아니요 

**누적**  
그래프를 누적 선으로 표시하려면 `true`를 지정하고, 별도의 선으로 표시하려면 `false`를 지정합니다. `view`가 `singleValue`인 경우 이 파라미터는 무시됩니다. 지표 위젯에만 이 파라미터를 사용합니다.  
유형: 부울  
필수 여부: 아니요

**stat**  
배열의 각 지표에 표시할 기본 통계입니다. 이 기본값은 `metrics` 배열의 각 개별 지표 정의 내에서 재정의할 수 있습니다. 지표 위젯에만 이 파라미터를 사용합니다.  
유효한 값: `SampleCount` \| `Average` \| `Sum` \| `Minimum` \| `Maximum` \| `p{{??}}`  
유형: 유효한 CloudWatch 통계인 문자열  
필수 여부: 아니요

**테이블**  
위젯에 데이터 테이블 관련 변경 사항을 포함하려면 `table` 섹션을 포함합니다. 형식에 대한 자세한 내용은 [대시보드 위젯 객체: 테이블 속성](#CloudWatch-Dashboard-Properties-Table) 섹션을 참조하세요.  
유형: 객체  
필수 여부: 아니요

**timezone**  
그래프에 시간을 표시하는 데 사용할 시간대입니다. 형식은 \+ 또는 - 뒤에 4자리 숫자가 오는 형태입니다. 처음 두 자리는 UTC보다 몇 시간 앞선지 또는 뒤처지는지를 나타내고, 마지막 두 자리는 분입니다. 예를 들어, `+0130`은 UTC보다 1시간 30분 앞선 시간을 나타냅니다. 기본값은 `+0000`입니다.  
유형: 문자열  
필수 여부: 아니요

**제목**  
그래프 또는 숫자에 표시할 제목입니다. 지표 위젯에만 이 파라미터를 사용합니다.  
유형: 문자열  
필수 여부: 아니요

**보기**  
 이 지표를 선형 그래프나 누적 영역 그래프로 표시하려면 `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)을 참조하세요.  
이를 생략하면 현재 계정이 기본값으로 사용됩니다. 지표 위젯에만 이 파라미터를 사용합니다.  
유형: 문자열  
필수 여부: 아니요

**네임스페이스**  
지표가 포함된 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 사용 설명서의 [지표 수학 사용](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` 배열에 항목이 여러 개 있는 경우 첫 번째 항목 이후의 각 항목에 대해 `"."`만 지정하여 배열의 이전 지표에 지정된 해당 차원에서와 동일한 차원 이름을 사용할 수 있습니다. 지표에 대해 차원을 전혀 지정하지 않거나, 해당 지표가 지원하는 만큼 차원을 지정할 수 있습니다.  
유형: 문자열  
필수 여부: 아니요

**DimensionValue**  
지표의 해당 차원에 사용할 값입니다. 해당 차원 이름이 있는 경우 필수입니다.  
유형: 문자열  
필수 여부: 아니요

**id**  
이 시계열의 Id입니다. 수학 표현식의 일부로 이 Id를 사용할 수 있습니다. Id는 소문자로 시작해야 합니다.  
유형: 문자열  
필수 여부: 아니요

**레이블**  
이 시계열을 나타내기 위해 그래프에 표시할 레이블입니다.  
유형: 문자열  
필수 여부: 아니요

**리전**  
지표의 리전입니다. 지표 위젯에만 이 파라미터를 사용합니다. 이를 생략하면 현재 리전이 기본값으로 사용됩니다.  
유형: 문자열  
필수 여부: 아니요

**렌더링 속성 객체**  
이 특정 지표에 사용할 렌더링 속성을 지정하며 전체 위젯에 지정된 값을 재정의합니다. 형식에 대한 자세한 내용은 [대시보드 위젯 객체: 렌더링 속성 객체 형식](#CloudWatch-Dashboard-Properties-Rendering-Object-Format) 섹션을 참조하세요.  
유형: Metric Render Properties 객체  
필수 여부: 아니요

```
// 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진수 색상 코드입니다.  
유형: 문자열  
필수 여부: 아니요

**레이블**  
그래프 범례에서 이 지표에 표시할 레이블입니다. 지정하지 않으면 위젯의 다른 지표와 구분하기 위해 자동으로 생성된 레이블이 지표에 부여됩니다.  
유형: 문자열  
필수 여부: 아니요

**기간**  
이 지표의 기간(초)입니다. 기간은 그래프에서 하나의 데이터 포인트로 표시되는 시간의 길이입니다.  
유효한 값: 60의 배수. 최솟값은 60입니다.  
유형: 정수  
필수 여부: 아니요

**stat**  
배열의 다른 지표에 사용되는 통계와 다를 경우 이 지표의 통계입니다. 배열 또는 지표 수준에서 통계를 지정하지 않으면 기본적으로 CloudWatch는 *Average*를 사용합니다.  
유효한 값: `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>

주석에는 경보, 가로 주석 및 세로 주석이 포함됩니다. 단일 지표 위젯에는 최대 하나의 경보가 있거나 하나 이상의 가로 또는 세로 주석이 있을 수 있습니다. 단일 위젯에 경보와 가로 또는 세로 주석이 모두 있을 수는 없습니다.

#### 경보 주석
<a name="Alarm-Annotations"></a>

경보 주석을 지정하는 경우 동일한 위젯에 `metrics` 배열을 지정할 수도 없습니다.

**경보**  
경보의 Amazon 리소스 이름(ARN)입니다.  
유형: 문자열 배열. 배열에 0\~1개의 문자열이 있을 수 있습니다.  
필수: 지표가 나열되지 않은 경우에만 필수입니다.

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

#### 가로 주석
<a name="Horizontal-Annotations"></a>

**horizontal**  
가로 주석의 배열입니다. 가로 주석에는 채우기 셰이딩에 대한 여러 옵션이 있습니다. 주석 라인 위의 셰이딩, 주석 라인 아래의 셰이딩, 단일 밴드 주석의 일부로 연결된 두 주석 라인 사이에 나타나는 ‘밴드’ 셰이딩 등이 여기에 해당합니다. 밴드 주석이 아닌 단일 주석인 배열의 각 가로 주석은 다음과 같은 형식을 갖습니다.  

```
{{{value}}, {{label}}, {{color}}, {{fill}}, {{yAxis}}, {{visible}}}
```
밴드 주석인 각 가로 주석은 다음과 같은 형식을 갖습니다.  

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

**값**  
그래프에서 가로 주석 라인이 나타날 지표 값입니다. 밴드 셰이딩 주석에서 Value의 두 값은 밴드의 위쪽 가장자리와 아래쪽 가장자리를 정의합니다.  
가로 주석이 있는 그래프에서는 표시되는 모든 가로 주석이 그래프에 나타나도록 그래프가 조정됩니다.  
유형: Float  
필수 여부: 예

**레이블**  
주석 옆의 그래프에 나타나는 문자열입니다.  
유형: 문자열  
필수 여부: 아니요

**color**  
주석에 사용할 6자리 HTML 16진수 색상 코드입니다. 이 색상은 주석 라인과 채우기 셰이딩 모두에 사용됩니다.  
유형: 문자열  
필수 여부: 아니요

**fill**  
주석과 함께 채우기 셰이딩을 사용하는 방법입니다. 유효한 값은 주석 위에 셰이딩을 적용하려는 경우 `above`, 주석 아래에 셰이딩을 적용하려는 경우 `below`, 셰이딩을 적용하지 않으려는 경우 `none`입니다. `fill`을 생략하면 셰이딩이 없습니다.  
밴드 셰이딩이 적용된 주석은 예외입니다. 이러한 주석은 항상 두 값 사이에 셰이딩이 있으며 `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>

**vertical**  
세로 주석의 배열입니다. 각 세로 주석에 대해 주석 앞, 뒤 또는 단일 밴드 주석으로 연결된 두 세로 라인 사이에 채우기 셰이딩을 적용하도록 선택할 수 있습니다. 밴드 주석이 아닌 단일 주석인 배열의 각 세로 주석은 다음과 같은 형식을 갖습니다.  

```
{{{value}}, {{label}}, {{color}}, {{fill}}, {{visible}}}
```
밴드 주석인 각 세로 주석은 다음과 같은 형식을 갖습니다.  

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

**값**  
세로 주석 라인이 나타날 그래프의 날짜 및 시간입니다. 밴드 셰이딩 주석에서 Value의 두 값은 밴드의 시작 가장자리와 끝 가장자리를 정의합니다.  
세로 주석이 있는 그래프에서는 표시되는 모든 세로 주석이 그래프에 나타나도록 그래프가 조정됩니다.  
이는 ISO 8601 형식의 문자열로 정의됩니다. 자세한 정보는 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)를 참조하세요.  
유형: 문자열  
필수 항목 여부: 예

**레이블**  
주석 옆의 그래프에 나타나는 문자열입니다.  
유형: 문자열  
필수 여부: 아니요

**color**  
주석에 사용할 6자리 HTML 16진수 색상 코드입니다. 이 색상은 주석 라인과 채우기 셰이딩 모두에 사용됩니다.  
유형: 문자열  
필수 여부: 아니요

**fill**  
주석과 함께 채우기 셰이딩을 사용하는 방법입니다. 유효한 값은 주석 앞에 셰이딩을 적용하려는 경우 `before`, 주석 뒤에 셰이딩을 적용하려는 경우 `after`, 셰이딩을 적용하지 않으려는 경우 `none`입니다. `fill`을 생략하면 셰이딩이 없습니다.  
밴드 셰이딩이 적용된 주석은 예외입니다. 이러한 주석은 항상 두 값 사이에 셰이딩이 있으며 `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축의 최솟값  
유형: Float  
필수 여부: 아니요

**최대**  
이 Y축의 최댓값  
유형: Float  
필수 여부: 아니요

**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,
    },
```

## Metrics Explorer 위젯 객체의 속성
<a name="CloudWatch-Dashboard-Properties-Metric-Explorer-Object"></a>

`explorer` 유형의 위젯은 Metric Explorer 위젯을 나타냅니다. 자세한 내용은 [Metric Explorer를 사용하여 태그 및 속성별 리소스 모니터링](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metrics-Explorer.html)을 참조하세요.

CloudFormation을 사용하여 대시보드에 Metric Explorer 위젯을 추가할 수도 있습니다. 자세한 내용은 [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`
유형: 객체  
필수 여부: 아니요

**labels**  
위젯에 표시되는 지표를 결정하는 데 사용되는 태그 또는 리소스 속성의 배열입니다.  
다른 키를 지정하면 모든 키/값 페어와 일치하는 리소스만 표시됩니다. 단일 키에 대해 여러 값을 지정하면 해당 키의 값과 일치하는 리소스가 표시됩니다.  
+ **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` 배열을 지정합니다. 하나의 `metrics` 배열에는 1\~100개의 지표가 포함될 수 있습니다. 배열의 각 객체에는 다음과 같은 필드가 포함되어야 합니다.  
+ **metricName** – 지표의 이름입니다.
+ **resourceType** - AWS CloudFormation에서 사용하는 형식으로 설명된 지표를 게시하는 리소스 유형입니다. 예: `AWS::EC2::Instance` 또는 `AWS::Lambda::Function`.

  위젯의 모든 지표에 대해 `resourceType`에 동일한 값을 사용해야 합니다.

  유효한 값의 전체 목록은 [Metric Explorer 위젯 객체에 대한 유효한 resourceType 값](#CloudWatch-Dashboard-Properties-Metric-Explorer-resourceType) 섹션을 참조하세요.
+ **stat** - 배열의 다른 지표에 사용되는 통계와 다를 경우 이 지표의 통계입니다. 배열 또는 지표 수준에서 통계를 지정하지 않으면 기본적으로 CloudWatch는 *Average*를 사용합니다.

  유효한 값: `SampleCount` \| `Average` \| `Sum` \| `Minimum` \| `Maximum` \| `p{{??}}`
타입: 객체 배열  
필수 여부: 예

**기간**  
이 위젯의 모든 지표에 대한 기본 기간(초)입니다. 기간은 그래프에서 하나의 데이터 포인트로 표시되는 시간의 길이입니다. 기본값은 300입니다.  
유효한 값: 60의 배수. 최솟값은 60입니다.  
유형: 정수  
필수 여부: 아니요

**splitBy**  
여러 리소스의 지표를 그래프의 다른 선으로 분할하거나 다른 그래프로 분할하는 방법을 지정합니다. 유효한 값은 태그의 키와 리소스 속성의 키입니다.  
유형: 문자열  
필수 여부: 아니요

**제목**  
위젯에 표시할 제목입니다. 기본값은 `Explorer`입니다.  
유형: 문자열  
필수 여부: 아니요

**widgetOptions**  
대시보드에 위젯이 나타나는 방식을 지정하는 객체입니다. 여기에는 다음 필드가 포함될 수 있습니다.  
+ **legend** –

  각 그래프의 범례가 표시되는 위치를 결정합니다. `legend` 필드에 `position`이라는 다른 필드가 포함되어 있습니다. `position`에 가능한 값은 `right`, `bottom` 및 `hidden`입니다.

  예를 들어, 다음은 범례가 그래프의 오른쪽에 나타나게 합니다.

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

  위젯의 페이지당 표시되는 그래프 행 수를 지정합니다.
+ **stacked** –

  그래프를 누적 영역 차트로 표시하려면 `true`를 지정하고, 별도의 선으로 표시하려면 `false`를 지정합니다.
+ **view** –

  각 그래프가 표시되는 방식을 지정합니다. 이 지표를 선형 그래프로 표시하려면 `timeSeries`를 지정합니다. 지표를 막대 그래프로 표시하려면 `bar`를 지정합니다. 지표를 원형 그래프로 표시하려면 `pie`를 지정합니다. 기본값은 `timeSeries`입니다.
+ **widgetsPerRow** –

  Metric Explorer 위젯의 각 행에 표시되는 그래프 수를 지정합니다.
유형: 객체  
필수 여부: 아니요

**예제**

다음 예제에서는 계정의 실행 중인 각 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"
            }
        }
    ]
}
```

### Metric Explorer 위젯 객체에 대한 유효한 resourceType 값
<a name="CloudWatch-Dashboard-Properties-Metric-Explorer-resourceType"></a>

Metric Explorer 위젯의 `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`를 선택합니다.  
ALARM 상태의 경보를 가장 먼저, INSUFFICIENT\_DATA 상태의 경보를 그 다음으로, OK 상태의 경보를 마지막에 배치하도록 먼저 경보 상태를 기준으로 경보를 정렬하려면 `stateUpdatedTimestamp`를 선택합니다. 각 그룹 내에서 경보는 마지막 상태 변경 시간을 기준으로 정렬되며, 가장 최근에 상태가 변경된 경보가 먼저 표시됩니다.  
현재 경보 상태에 관계없이 가장 최근에 경보 상태가 변경된 시간을 기준으로 경보를 정렬하려면 `timestamp`를 선택합니다. 가장 최근에 상태가 변경된 경보가 먼저 나열됩니다.  
이 필드를 생략하면 경보가 알파벳순으로 정렬됩니다.  
유형: 문자열  
유효한 값: default \| stateUpdatedTimestamp \| timestamp  
필수 여부: 아니요

**states**  
위젯에 표시된 경보 목록을 현재 지정된 상태의 경보로만 필터링하려면 이 필드를 사용합니다. 이 필드의 값에 하나 이상의 경보 상태를 지정할 수 있습니다. 지정할 수 있는 경보 상태는 `ALARM`, `INSUFFICIENT_DATA` 및 `OK`입니다.  
이 필드를 생략하거나 빈 배열을 지정하면 `alarms`에 지정된 모든 경보가 표시됩니다.  
유형: 문자열 배열  
필수 여부: 아니요

**제목**  
위젯에서 표시할 제목 텍스트입니다.  
유형: 문자열  
필수 여부: 아니요

다음 예제는 현재 상태에 관계없이 이름으로 지정된 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"
    }
}
```