

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

# 템플릿 참조
<a name="v9-alerting-template-reference"></a>

****  
이 설명서 주제는 **Grafana 버전 9.x**를 지원하는 Grafana 워크스페이스를 위해 설계되었습니다.  
Grafana 버전 12.x를 지원하는 Grafana 워크스페이스는 섹션을 참조하세요[Grafana 버전 12에서 작업](using-grafana-v12.md).  
Grafana 버전 10.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 10에서 작업](using-grafana-v10.md) 섹션을 참조하세요.  
Grafana 버전 8.x를 지원하는 Grafana 워크스페이스의 경우 [Grafana 버전 8에서 작업](using-grafana-v8.md) 섹션을 참조하세요.

이 섹션에서는 템플릿을 생성하기 위한 참조 정보를 제공합니다.

## 템플릿 데이터
<a name="v9-alerting-template-data"></a>

다음 데이터가 메시지 템플릿에 전달됩니다.


| 이름 | 유형 | 참고 | 
| --- | --- | --- | 
| `Receiver` | 문자열 | 알림이 전송되는 연락 지점 이름. | 
| `Status` | 문자열 | 하나 이상의 알림이 실행 중인 경우 실행이고, 그렇지 않으면 해결됨 상태입니다. | 
| `Alerts` | Alert | 이 알림에 포함된 알림 객체 목록(아래 참조). | 
| `GroupLabels` | KeyValue | 이러한 알림이 그룹화된 레이블. | 
| `CommonLabels` | KeyValue | 이 알림에 포함된 모든 알림에 공통된 레이블. | 
| `CommonAnnotations` | KeyValue | 이 알림에 포함된 모든 알림에 공통된 주석. | 
| `ExternalURL` | 문자열 | 알림을 전송한 Grafana로 돌아가는 링크. 외부 Alertmanager를 사용하는 경우 이 Alertmanager로 돌아가는 링크. | 

`Alerts` 유형은 반환된 알림을 필터링하기 위한 두 가지 함수를 노출합니다.
+ `Alerts.Firing` - 실행 알림 목록을 반환합니다.
+ `Alerts.Resolved` - 해결된 알림 목록을 반환합니다.

**알림(유형)**

알림 유형에는 다음 데이터가 포함됩니다.


| 이름 | 유형 | 참고 | 
| --- | --- | --- | 
| Status | 문자열 | `firing` 또는 `resolved` | 
| 레이블 | KeyValue | 알림에 연결된 레이블 세트. | 
| Annotations | KeyValue | 알림에 연결된 주석 세트. | 
| 값 | KeyValue | 클래식 조건을 포함한 모든 표현식의 값 | 
| StartsAt | time.Time | 알림 실행이 시작되는 시간. | 
| EndsAt | time.Time | 알림의 종료 시간을 알고 있는 경우에만 설정합니다. 그렇지 않으면 마지막 알림이 수신된 이후부터 구성 가능한 제한 시간으로 설정됩니다. | 
| GeneratorURL | 문자열 | Grafana 또는 외부 Alertmanager에 대한 백 링크. | 
| SilenceURL | 문자열 | 알림을 음소거하는 링크(이 알림에 대한 레이블이 미리 채워짐). Grafana 관리형 알림에만 적용됩니다. | 
| DashboardURL | 문자열 | 알림 규칙이 하나에 속하는 경우 Grafana 대시보드에 대한 링크. Grafana 관리형 알림에만 적용됩니다. | 
| PanelURL | 문자열 | 알림 규칙이 하나에 속하는 경우 Grafana 대시보드 패널에 대한 링크. Grafana 관리형 알림에만 적용됩니다. | 
| 지문 | 문자열 | 알림을 식별하는 데 사용할 수 있는 지문. | 
| ValueString | 문자열 | 알림에서 축소된 각 표현식의 레이블과 값을 포함하는 문자열. | 

 **ExtendedData**

ExtendedData 객체는 다음 속성을 포함합니다.


| 이름 | 종류 | 설명 | 예제 | 
| --- | --- | --- | --- | 
| 수신기 | `string` | 알림을 보내는 연락 지점의 이름. | `{{ .Receiver }}` | 
| Status | `string` | 상태가 `firing if at least one alert is firing, otherwise resolved.`입니다. | `{{ .Status }}` | 
| 알림 | `[]Alert` | 이 알림에서 모든 실행 알림과 해결된 알림 목록. | `There are {{ len .Alerts }} alerts` | 
| 실행 알림 | `[]Alert` | 이 알림에서 모든 실행 알림 목록. | `There are {{ len .Alerts.Firing }} firing alerts` | 
| 해결된 알림 | `[]Alert` | 이 알림에서 모든 해결된 알림 목록. | `There are {{ len .Alerts.Resolved }} resolved alerts` | 
| GroupLabels | `KeyValue` | 이 알림에서 이러한 알림을 그룹화하는 레이블. | `{{ .GroupLabels }}` | 
| CommonLabels | `KeyValue` | 이 알림에서 모든 알림에 공통된 레이블. | `{{ .CommonLabels }}` | 
| CommonAnnotations | `KeyValue` | 이 알림에서 모든 알림에 공통된 주석. | `{{ .CommonAnnotations }}` | 
| ExternalURL | `string` | 이 알림을 보낸 Grafana 워크스페이스 또는 Alertmanager에 대한 링크. | `{{ .ExternalURL }}` | 

**KeyValue 유형**

`KeyValue` 유형은 레이블과 주석을 나타내는 키/값 문자열 페어 세트입니다.

`KeyValue`로 저장된 데이터에 대한 직접 액세스 외에도 데이터를 정렬, 제거 및 변환하는 방법도 있습니다.


| 이름 | 인수 | 반환 | 참고 | 예제 | 
| --- | --- | --- | --- | --- | 
| SortedPairs |  | 키 및 값 문자열 페어의 정렬된 목록 |  | `{{ .Annotations.SortedPairs }}` | 
| 제거 | []string | KeyValue | 지정된 키 없이 키/값 맵의 사본을 반환합니다. | `{{ .Annotations.Remove "summary" }}` | 
| 이름 |  | []string | 레이블 이름 목록 | `{{ .Names }}` | 
| 값 |  | []string | 레이블 값 목록 | `{{ .Values }}` | 

**Time**

시간은 Go [https://pkg.go.dev/time#Time](https://pkg.go.dev/time#Time) 패키지에서 가져옵니다. 여러 형식으로 시간을 인쇄할 수 있습니다. 예를 들어, `Monday, 1st January 2022 at 10:00AM` 형식으로 알림이 실행된 시간을 인쇄하려면 다음 템플릿을 작성합니다.

```
{{ .StartsAt.Format "Monday, 2 January 2006 at 3:04PM" }}
```

[여기](https://pkg.go.dev/time#pkg-constants)에서 Go의 시간 형식에 대한 참조를 찾을 수 있습니다.

## 템플릿 함수
<a name="v9-alerting-template-functions"></a>

템플릿 함수를 사용하여 레이블 및 주석을 처리해 동적 알림을 생성할 수 있습니다. 다음 함수를 사용할 수 있습니다.


| 이름 | 인수 유형 | 반환 타입 | 설명 | 
| --- | --- | --- | --- | 
| `humanize` | 숫자 또는 문자열 | 문자열 | 지표 접두사를 사용하여 숫자를 더 읽기 쉬운 형식으로 변환합니다. | 
| `humanize1024` | 숫자 또는 문자열 | 문자열 | humanize와 비슷하지만 1000이 아닌 1024를 밑으로 사용합니다. | 
| `humanizeDuration` | 숫자 또는 문자열 | 문자열 | 기간(초 단위)을 더 읽기 쉬운 형식으로 변환합니다. | 
| `humanizePercentage` | 숫자 또는 문자열 | 문자열 | 비율 값을 100의 분율로 변환합니다. | 
| `humanizeTimestamp` | 숫자 또는 문자열 | 문자열 | Unix 타임스탬프(초 단위)를 더 읽기 쉬운 형식으로 변환합니다. | 
| `title` | 문자열 | 문자열 | strings.Title, 각 단어의 첫 번째 문자를 대문자로 표시합니다. | 
| `toUpper` | 문자열 | 문자열 | strings.ToUpper, 모든 문자를 대문자로 변환합니다. | 
| `toLower` | 문자열 | 문자열 | strings.ToLower, 모든 문자를 소문자로 변환합니다. | 
| `match` | 패턴, 텍스트 | 부울 | regexp.MatchString 고정되지 않은 정규식 일치를 테스트합니다. | 
| `reReplaceAll` | 패턴, 교체, 텍스트 | 문자열 | Regexp.ReplaceAllString Regexp 대체(고정되지 않음). | 
| `graphLink` | 문자열 - `expr` 및 `datasource` 필드가 있는 JSON 객체 | 문자열 | 지정된 표현식 및 데이터 소스에 대한 탐색의 그래픽 보기 경로를 반환합니다. | 
| `tableLink` | 문자열 - `expr` 및 `datasource` 필드가 있는 JSON 객체 | 문자열 | 지정된 표현식 및 데이터 소스에 대한 탐색의 테이블 형식 보기 경로를 반환합니다. | 
| `args` | []interface{} | map[string]interface{} | 객체 목록을 arg0, arg1과 같은 키가 있는 맵으로 변환합니다. 이 함수를 사용하여 여러 인수를 템플릿에 전달합니다. | 
| `externalURL` | 없음 | 문자열 | 외부 URL을 나타내는 문자열을 반환합니다. | 
| `pathPrefix` | 없음 | 문자열 | 외부 URL의 경로를 반환합니다. | 

다음 표에는 각 함수 사용 예제가 나와 있습니다.


| 함수 | TemplateString | Input | 예상 | 
| --- | --- | --- | --- | 
| 인간화 | { humanize $value } | 1234567.0 | 1.235M | 
| humanize1024 | { humanize1024 $value } | 1048576.0 | 1Mi | 
| humanizeDuration | { humanizeDuration $value } | 899.99 | 14m 59s | 
| humanizePercentage | { humanizePercentage $value } | 0.1234567 | 12.35% | 
| humanizeTimestamp | { humanizeTimestamp $value } | 1435065584.128 | 2015-06-23 13:19:44.128 \+0000 UTC | 
| 제목 | { $value \| title } | aa bB CC | Aa Bb Cc | 
| toUpper | { $value \| toUpper } | aa bB CC | AA BB CC | 
| toLower | { $value \| toLower } | aa bB CC | aa bb cc | 
| match | { match "a\+" $labels.instance } | aa | true | 
| reReplaceAll | {{ reReplaceAll "localhost:(.\*)" "my.domain:$1" $labels.instance }} | localhost:3000 | my.domain:3000 | 
| graphLink | {{ graphLink "{\\"expr\\": \\"up\\", \\"datasource\\": \\"gdev-prometheus\\"}" }} |  | /explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true}] | 
| tableLink | {{ tableLink "{\\"expr\\":\\"up\\", \\"datasource\\":\\"gdev-prometheus\\"}" }} |  | /explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false}] | 
| args | {{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}} |  | 1 2 | 
| externalURL | { externalURL } |  | http://localhost/path/prefix | 
| pathPrefix | { pathPrefix } |  | /path/prefix | 