기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
메시징 템플릿 사용
이 설명서 항목은 Grafana 버전 8.x를 지원하는 Grafana 작업 영역을 위해 설계되었습니다.
Grafana 버전 10.x를 지원하는 Grafana 작업 영역에 대한 내용은 을 참조하십시오. Grafana 버전 10에서 작업하기
Grafana 버전 9.x를 지원하는 Grafana 작업 영역에 대해서는 을 참조하십시오. Grafana 버전 9에서 작업하기
를 통해 연락처 관련 작업 전송되는 알림은 메시징 템플릿을 사용하여 작성됩니다. Grafana의 기본 템플릿은 일부 필드는 텍스트로 평가되고 다른 필드는 HTML로 평가되는 Go 템플릿 시스템을
대부분의 연락처 필드를 템플릿으로 만들 수 있으므로 재사용 가능한 사용자 지정 템플릿을 만들어 여러 연락처에서 사용할 수 있습니다. 이 템플릿 데이터 항목에는 템플릿에 사용할 수 있는 변수가 나열되어 있습니다.
템플릿 사용
템플릿은 메시지를 만드는 데 사용됩니다. 예를 들어 Slack 알림 메시지의 경우 연락처에 제목과 본문을 설정할 수 있습니다. 다음 예제는 기본 템플릿을 사용하여 발생 및 해결된 알림 수와 알림 및 상태를 나열하는 본문이 포함된 제목을 만드는 방법을 보여줍니다.
-
제목:
{{ len .Alerts.Firing }} firing, {{ len .Alerts.Resolved }} resolved
-
텍스트 본문:
{{ range .Alerts }}{{ .Status }}: {{ .Labels.alertname }} {{end }}
다음 예와 같이 사용자 지정 템플릿을 직접 만들 수 있습니다.
-
제목:
{{ template "slack.default.title" .}}
-
텍스트 본문:
{{ template "mymessage" .}}
다음은 샘플 템플릿입니다.
{{ define "myalert" }} [{{.Status}}] {{ .Labels.alertname }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ if gt (len .Annotations) 0 }} Annotations: {{ range .Annotations.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ end }} {{ if gt (len .SilenceURL ) 0 }} Silence alert: {{ .SilenceURL }} {{ end }} {{ if gt (len .DashboardURL ) 0 }} Go to dashboard: {{ .DashboardURL }} {{ end }} {{ end }}
다음 절차는 사용자 지정 메시지 템플릿을 만들고, 편집하고, 삭제하는 방법을 보여줍니다.
메시지 템플릿을 만들려면
-
Grafana 콘솔의 Grafana 메뉴에서 알림 (벨) 아이콘을 선택하여 알림 페이지를 엽니다.
-
연락처를 선택합니다.
-
Alertmanager 드롭다운에서 메시지 템플릿을 만들려는 Alertmanager 인스턴스를 선택합니다. 기본값은 Grafana 알림 관리자입니다.
-
템플릿 추가를 선택합니다.
-
설명이 포함된 이름을 추가합니다.
-
템플릿에 콘텐츠를 추가합니다. 예를 들면 다음과 같습니다.
{{ define "mymessage" }} {{ range .Alerts }} [{{ .Status }}] {{ range .Labels }} {{ .Name }}={{.Value }}{{end}} {{ end }} {{ end }}
콘텐츠 섹션의
define
태그는 템플릿 이름을 지정합니다. 이 태그는 선택 사항이며 생략할 경우 템플릿 이름은 이름 필드에서 파생됩니다. 둘 다 지정한 경우에는 동일하게 유지하는 것이 가장 좋습니다. -
템플릿 저장을 선택합니다.
참고
알림 메시지 템플릿의 HTML은 제어 문자가 이스케이프된 텍스트로 렌더링됩니다. Grafana는 결과 알림의 HTML 렌더링을 지원하지 않습니다.
메시지 템플릿을 편집하려면 다음과 같이 하십시오.
-
알림 페이지에서 연락처를 선택하여 연락처 목록을 엽니다.
-
템플릿 테이블에서 편집하려는 템플릿을 찾은 다음 편집 아이콘 (펜) 을 선택합니다.
-
변경한 다음 템플릿 저장을 선택합니다.
메시지 템플릿을 삭제하려면 다음과 같이 하십시오.
-
알림 페이지에서 연락처를 선택하여 연락처 목록을 엽니다.
-
템플릿 테이블에서 제거하려는 템플릿을 찾은 다음 삭제 아이콘 (휴지통) 을 선택합니다.
-
예, 삭제를 선택하여 템플릿을 삭제합니다.
중첩 템플릿
템플릿을 다른 템플릿 내에 포함할 수 있습니다.
예를 들어, 다음 키워드를 사용하여 템플릿 프래그먼트를 정의할 수 있습니다. define
{{ define "mytemplate" }} {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved. {{ end }}
그런 다음 키워드를 사용하여 이 프래그먼트 내에 사용자 지정 템플릿을 포함할 수 있습니다. template
예:
Alert summary: {{ template "mytemplate" . }}
다음과 같은 기본 제공 템플릿 옵션을 사용하여 사용자 지정 템플릿을 삽입할 수 있습니다.
명칭 | 참고 |
---|---|
|
높은 수준의 상태 정보를 표시합니다. |
|
발생 및 해결된 경고에 대한 형식화된 요약을 제공합니다. |
사용자 지정 템플릿 예제
사용자 지정 템플릿을 사용하는 방법의 예는 다음과 같습니다.
단일 알림을 렌더링하기 위한 템플릿:
{{ define "myalert" }} [{{.Status}}] {{ .Labels.alertname }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ if gt (len .Annotations) 0 }} Annotations: {{ range .Annotations.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ end }} {{ if gt (len .SilenceURL ) 0 }} Silence alert: {{ .SilenceURL }} {{ end }} {{ if gt (len .DashboardURL ) 0 }} Go to dashboard: {{ .DashboardURL }} {{ end }} {{ end }}
전체 알림 메시지를 렌더링하기 위한 템플릿:
{{ define "mymessage" }} {{ if gt (len .Alerts.Firing) 0 }} {{ len .Alerts.Firing }} firing: {{ range .Alerts.Firing }} {{ template "myalert" .}} {{ end }} {{ end }} {{ if gt (len .Alerts.Resolved) 0 }} {{ len .Alerts.Resolved }} resolved: {{ range .Alerts.Resolved }} {{ template "myalert" .}} {{ end }} {{ end }} {{ end }}
템플릿 데이터
다음 데이터가 메시지 템플릿에 전달됩니다.
명칭 | 유형 | 참고 |
---|---|---|
|
문자열 |
알림이 전송되는 연락처의 이름. |
|
문자열 |
하나 이상의 경고가 발생하면 실행되며, 그렇지 않으면 해결됩니다. |
|
Alert |
이 알림에 포함된 경고 개체 목록 (아래 참조). |
|
KeyValue |
이러한 경고를 그룹화한 레이블입니다. |
|
KeyValue |
이 알림에 포함된 모든 알림에 공통적인 레이블입니다. |
|
KeyValue |
이 알림에 포함된 모든 경고에 공통적인 주석입니다. |
|
문자열 |
알림을 보낸 Grafana로 돌아가는 링크입니다. 외부 경보 관리자를 사용하는 경우 이 경보 관리자로 다시 연결하세요. |
이 Alerts
유형은 반환된 경고를 필터링하는 두 가지 함수를 제공합니다.
-
Alerts.Firing
— 발생 경고 목록을 반환합니다. -
Alerts.Resolved
— 해결된 알림 목록을 반환합니다.
알림 (유형)
경고 유형에는 다음 데이터가 포함됩니다.
명칭 | 유형 | 참고 |
---|---|---|
상태 표시기 |
문자열 |
|
레이블 |
KeyValue |
알림에 첨부된 레이블 세트. |
주석 |
KeyValue |
알림에 첨부된 주석 세트. |
StartsAt |
시간. 시간 |
알림이 시작되기 시작한 시간입니다. |
EndsAt |
시간. 시간 |
알림 종료 시간을 알고 있는 경우에만 설정합니다. 그렇지 않으면 마지막 알림을 받은 이후부터 구성 가능한 타임아웃 기간으로 설정하십시오. |
생성기 URL |
문자열 |
Grafana 또는 외부 경보 관리자로 연결되는 백 링크입니다. |
사일런스 URL |
문자열 |
이 알림의 레이블이 미리 채워진 grafana silence에 대한 링크. Grafana 관리형 알림에만 해당됩니다. |
대시보드 URL |
문자열 |
알림 규칙이 Grafana 대시보드에 속하는 경우 Grafana 대시보드에 연결합니다. Grafana 관리형 알림에만 해당됩니다. |
패널 URL |
문자열 |
경고 규칙이 패널에 속하는 경우 grafana 대시보드 패널에 연결합니다. Grafana 관리형 알림에만 해당됩니다. |
지문 |
문자열 |
알림을 식별하는 데 사용할 수 있는 지문. |
ValueString |
문자열 |
알림에서 축소된 각 표현식의 레이블과 값을 포함하는 문자열입니다. |
KeyValue 다음을 입력합니다.
KeyValue
유형은 레이블과 주석을 나타내는 키/값 문자열 쌍의 집합입니다.
a로 저장된 데이터에 직접 액세스할 수 있을 뿐만 아니라 데이터를 정렬KeyValue
, 제거 및 변환하는 방법도 있습니다.
명칭 | 인수 | 반환 값 | 참고 |
---|---|---|---|
SortedPairs |
키 및 값 문자열 쌍의 정렬된 목록 |
||
Remove |
[] 문자열 |
KeyValue |
지정된 키가 없는 키/값 맵의 사본을 반환합니다. |
이름 |
[] 문자열 |
라벨 이름 목록 |
|
값 |
[] 문자열 |
라벨 값 목록 |
템플릿 함수
템플릿 함수를 사용하면 라벨과 주석을 처리하여 동적 알림을 생성할 수 있습니다. 다음 기능을 사용할 수 있습니다.
명칭 | 인수 유형 | 반환 타입 | 설명 |
---|---|---|---|
|
숫자 또는 문자열 |
문자열 |
지표 접두사를 사용하여 숫자를 더 읽기 쉬운 형식으로 변환합니다. |
|
숫자 또는 문자열 |
문자열 |
휴머나이즈와 비슷하지만 1000이 아닌 1024를 기본으로 사용합니다. |
|
숫자 또는 문자열 |
문자열 |
지속 시간 (초) 을 더 읽기 쉬운 형식으로 변환합니다. |
|
숫자 또는 문자열 |
문자열 |
비율 값을 100의 몇 분의 1로 변환합니다. |
|
숫자 또는 문자열 |
문자열 |
Unix 타임스탬프 (초) 를 더 읽기 쉬운 형식으로 변환합니다. |
|
문자열 |
문자열 |
Strings.title은 각 단어의 첫 문자를 대문자로 표시합니다. |
|
문자열 |
문자열 |
문자열. ToUpper, 모든 문자를 대문자로 변환합니다. |
|
문자열 |
문자열 |
문자열. ToLower, 모든 문자를 소문자로 변환합니다. |
|
패턴, 텍스트 |
boolean |
정규 표현식. MatchString 고정되지 않은 정규 표현식 일치를 테스트합니다. |
|
패턴, 대체, 텍스트 |
문자열 |
정규 표현식. ReplaceAllString 정규 표현식 대체, 고정되지 않음. |
|
문자열 - 및 필드가 있는 JSON 객체 |
문자열 |
지정된 표현식과 데이터 원본에 대한 Explore의 그래픽 뷰 경로를 반환합니다. |
|
문자열 - |
문자열 |
지정된 표현식과 데이터 원본에 대한 Explore의 표 형식 보기 경로를 반환합니다. |
|
[] 인터페이스 {} |
맵 [문자열] 인터페이스 {} |
객체 목록을 키가 있는 맵으로 변환합니다 (예: arg0, arg1). 이 함수를 사용하여 템플릿에 여러 인수를 전달할 수 있습니다. |
|
아무것도 없어 |
문자열 |
외부 URL을 나타내는 문자열을 반환합니다. |
|
아무것도 없어 |
문자열 |
외부 URL의 경로를 반환합니다. |
다음 표는 각 함수를 사용하는 예를 보여줍니다.
함수 | TemplateString | Input | 예상 |
---|---|---|---|
인간화 |
{$value를 인간화하세요} |
1234567.0 |
1.235M |
휴머나이즈1024 |
{1024 달러 가치의 인간화} |
1048576.0 |
1Mi |
휴머나이즈 듀레이션 |
{휴머나이즈 듀레이션 $value} |
899.99 |
14분 59초 |
퍼센트를 인간화하세요 |
{퍼센트 $값 인간화} |
0.1234567 |
12.35% |
휴머나이즈 타임스탬프 |
{타임스탬프 $value 인간화} |
1435065584.128 |
2015-06-23 13:19:44.128 +0000 UTC |
title |
{$value | 제목} |
Aa Bb C |
Aa Bb Cc |
toUpper |
{$value | Toupper} |
Aa Bb C |
A B B C |
toLower |
{$value | Tolower} |
Aa Bb C |
a b b c |
일치 |
{매칭 “a+” $labels.instance} |
aa |
true |
reReplaceAll |
{{ reReplaceAll “localhost :( .*)” “my.domain: $1" $labels.instance}} |
로컬 호스트: 3000 |
내 도메인: 3000 |
그래프 링크 |
{{그래프링크 “{\" expr\”:\ "up\”,\ "data source\”:\ "gdev-prometheus\"}”} |
/익스플로어? 왼쪽= ["now-1h”, “now”, “gdev-prometheus”, {"data source”: “gdev-prometheus”, “expr”: “up”, “instant”: false, “range”: true}] |
|
테이블 링크 |
{{테이블링크 “{\" expr\”:\ "up\”,\ "data source\”:\ "gdev-prometheus\"}”} |
/익스플로어? 왼쪽= ["now-1h”, “now”, “gdev-prometheus”, {"data source”: “gdev-prometheus”, “expr”: “up”, “instant”: true, “range”: false}] |
|
args |
{{define “x”}} {{.arg0}} {{.arg1}} {{end}} {{템플릿 “x” (args 1 “2")}} |
1 2 2 |
|
외부 URL |
{외부 URL} |
http://localhost/path/prefix |
|
경로 접두사 |
{경로 접두사} |
/경로/접두사 |