

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 주석 API
<a name="v12-Grafana-API-Annotations"></a>

주석 API를 사용하여 Amazon Managed Grafana 워크스페이스에서 주석을 생성, 업데이트, 삭제하고 관련 작업을 수행합니다.

주석은 워크스페이스의 Grafana 데이터베이스(sqlite, mysql 또는 postgres)에 저장됩니다. 주석은 주석 데이터 소스를 구성하여 모든 대시보드에 표시할 수 있는 전역 주석일 수 있습니다. 주석은 태그별로 필터링됩니다. 또는 대시보드의 패널에 연결하여 해당 패널에만 표시할 수 있습니다.

**참고**  
Amazon Managed Grafana 워크스페이스에서 Grafana API를 사용하려면 유효한 서비스 계정 토큰이 있어야 합니다. API 요청의 `Authorization` 필드에 이를 포함합니다.

## 주석 찾기
<a name="v12-Grafana-API-Annotations-Find"></a>

```
GET /api/annotations?from=1506676478816&to=1507281278816&tags=tag1&tags=tag2&limit=100
```

**요청 예제**

```
GET /api/annotations?from=1506676478816&to=1507281278816&tags=tag1&tags=tag2&limit=100 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

쿼리 파라미터:
+ **from** - (선택 사항) 밀리초 단위의 에포크 날짜 및 시간.
+ **to** - (선택 사항) 밀리초 단위의 에포크 날짜 및 시간.
+ **limit** - (선택 사항) 반환된 최대 결과 수. 기본값은 100입니다.
+ **alertid** - (선택 사항) 지정된 알림에 대한 주석을 찾습니다.
+ **dashboardId** - (선택 사항) 지정된 대시보드로 범위가 지정된 주석을 찾습니다.
+ **panelId** - (선택 사항) 지정된 패널로 범위가 지정된 주석을 찾습니다.
+ **userId** - (선택 사항) 지정된 사용자가 생성한 주석을 찾습니다.
+ **type** — (선택 사항) 알림 또는 사용자가 생성한 주석을 반환하도록 지정합니다. 유효한 값은 `alert` 및 `annotation`입니다.
+ **tags** - (선택 사항) 전역 주석을 필터링하는 데 사용합니다. 전역 주석은 대시보드 또는 패널에 특별히 연결되지 않은 주석 데이터 소스의 주석입니다. 여러 태그를 사용하여 'AND' 필터링을 수행하려면 태그 파라미터를 여러 번 지정합니다. 예를 들어 `tags=tag1&tags=tag2`입니다. 태그가 아닌 Grafana AWS 태그입니다.

**응답의 예**

```
HTTP/1.1 200
Content-Type: application/json
[
    {
        "id": 1124,
        "alertId": 0,
        "dashboardId": 468,
        "panelId": 2,
        "userId": 1,
        "userName": "",
        "newState": "",
        "prevState": "",
        "time": 1507266395000,
        "timeEnd": 1507266395000,
        "text": "test",
        "metric": "",
        "tags": [
            "tag1",
            "tag2"
        ],
        "data": {}
    },
    {
        "id": 1123,
        "alertId": 0,
        "dashboardId": 468,
        "panelId": 2,
        "userId": 1,
        "userName": "",
        "newState": "",
        "prevState": "",
        "time": 1507265111000,
        "text": "test",
        "metric": "",
        "tags": [
            "tag1",
            "tag2"
        ],
        "data": {}
    }
]
```

## 주석 생성
<a name="v12-Grafana-API-Annotations-create"></a>

```
POST /api/annotations
```

워크스페이스의 Grafana 데이터베이스에서 주석을 생성합니다. `dashboardId` 및 `panelId` 필드는 선택 사항입니다. 지정하지 않으면 전역 주석이 생성되고 Grafana 주석 데이터 소스를 추가하는 모든 대시보드에서 쿼리할 수 있습니다. 리전 주석을 생성할 때 `timeEnd` 속성을 포함해야 합니다.

`time` 및 `timeEnd`의 형식은 밀리초 단위의 에포크 숫자여야 합니다.

**요청 예제**

```
POST /api/annotations HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "dashboardId":468,
  "panelId":1,
  "time":1507037197339,
  "timeEnd":1507180805056,
  "tags":["tag1","tag2"],
  "text":"Annotation Description"
}
```

**응답의 예**

```
HTTP/1.1 200
Content-Type: application/json

{
    "message":"Annotation added",
    "id": 1,
}
```

## Graphite 형식으로 주석 생성
<a name="v12-Grafana-API-Annotations-create-graphite"></a>

```
POST /api/annotations/graphite
```

Graphite 호환 이벤트 형식을 사용하여 주석을 생성합니다. `when` 및 `data` 필드는 선택 사항입니다. `when`이 지정되지 않은 경우 현재 시간이 주석의 타임스탬프로 사용됩니다. 이 `tags` 필드는 Graphite 0.10.0 형식(여러 태그가 공백으로 구분된 문자열) 이전에 있을 수도 있습니다.

**요청 예제**

```
POST /api/annotations/graphite HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "what": "Event - deploy",
  "tags": ["deploy", "production"],
  "when": 1467844481,
  "data": "deploy of master branch happened at Wed Jul 6 22:34:41 UTC 2016"
}
```

**응답의 예**

```
HTTP/1.1 200
Content-Type: application/json

{
    "message":"Graphite annotation added",
    "id": 1
}
```

## 주석 업데이트
<a name="v12-Grafana-API-Annotations-update"></a>

```
PUT /api/annotations/:id
```

지정된 ID와 일치하는 주석의 모든 속성을 업데이트합니다. 특정 속성만 업데이트하려면 패치 주석 작업을 사용합니다.

**요청 예제**

```
PUT /api/annotations/1141 HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Content-Type: application/json

{
  "time":1507037197339,
  "timeEnd":1507180805056,
  "text":"Annotation Description",
  "tags":["tag3","tag4","tag5"]
}
```

**응답 예제:**

```
HTTP/1.1 200
Content-Type: application/json

{
    "message":"Annotation updated"
}
```

## 패치 주석
<a name="v12-Grafana-API-Annotations-patch"></a>

```
PATCH /api/annotations/:id
```

지정된 ID와 일치하는 주석의 속성을 하나 이상 업데이트합니다. 이 작업은 현재 `text`, `tags`, `time` 및 `timeEnd` 속성 업데이트를 지원합니다.

**요청 예제:**

```
PATCH /api/annotations/1145 HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Content-Type: application/json
       
{
   "text":"New Annotation Description",
   "tags":["tag6","tag7","tag8"]
}
```

**응답의 예**

```
HTTP/1.1 200
Content-Type: application/json

{
    "message":"Annotation patched"
}
```

## ID로 주석 삭제
<a name="v12-Grafana-API-Annotations-deteebyId"></a>

```
DELETE /api/annotations/:id
```

지정된 ID와 일치하는 주석을 삭제합니다.

**요청 예제**

```
DELETE /api/annotations/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**응답의 예**

```
HTTP/1.1 200
Content-Type: application/json

{
    "message":"Annotation deleted"
}
```