메시징 템플릿 사용 - Amazon Managed Grafana

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

메시징 템플릿 사용

이 설명서 항목은 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 }}

다음 절차는 사용자 지정 메시지 템플릿을 만들고, 편집하고, 삭제하는 방법을 보여줍니다.

메시지 템플릿을 만들려면
  1. Grafana 콘솔의 Grafana 메뉴에서 알림 (벨) 아이콘을 선택하여 알림 페이지를 엽니다.

  2. 연락처를 선택합니다.

  3. Alertmanager 드롭다운에서 메시지 템플릿을 만들려는 Alertmanager 인스턴스를 선택합니다. 기본값은 Grafana 알림 관리자입니다.

  4. 템플릿 추가를 선택합니다.

  5. 설명이 포함된 이름을 추가합니다.

  6. 템플릿에 콘텐츠를 추가합니다. 예를 들면 다음과 같습니다.

    {{ define "mymessage" }} {{ range .Alerts }} [{{ .Status }}] {{ range .Labels }} {{ .Name }}={{.Value }}{{end}} {{ end }} {{ end }}

    콘텐츠 섹션의 define 태그는 템플릿 이름을 지정합니다. 이 태그는 선택 사항이며 생략할 경우 템플릿 이름은 이름 필드에서 파생됩니다. 둘 다 지정한 경우에는 동일하게 유지하는 것이 가장 좋습니다.

  7. 템플릿 저장을 선택합니다.

참고

알림 메시지 템플릿의 HTML은 제어 문자가 이스케이프된 텍스트로 렌더링됩니다. Grafana는 결과 알림의 HTML 렌더링을 지원하지 않습니다.

메시지 템플릿을 편집하려면 다음과 같이 하십시오.
  1. 알림 페이지에서 연락처를 선택하여 연락처 목록을 엽니다.

  2. 템플릿 테이블에서 편집하려는 템플릿을 찾은 다음 편집 아이콘 (펜) 을 선택합니다.

  3. 변경한 다음 템플릿 저장을 선택합니다.

메시지 템플릿을 삭제하려면 다음과 같이 하십시오.
  1. 알림 페이지에서 연락처를 선택하여 연락처 목록을 엽니다.

  2. 템플릿 테이블에서 제거하려는 템플릿을 찾은 다음 삭제 아이콘 (휴지통) 을 선택합니다.

  3. 예, 삭제를 선택하여 템플릿을 삭제합니다.

중첩 템플릿

템플릿을 다른 템플릿 내에 포함할 수 있습니다.

예를 들어, 다음 키워드를 사용하여 템플릿 프래그먼트를 정의할 수 있습니다. define

{{ define "mytemplate" }} {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved. {{ end }}

그런 다음 키워드를 사용하여 이 프래그먼트 내에 사용자 지정 템플릿을 포함할 수 있습니다. template 예:

Alert summary: {{ template "mytemplate" . }}

다음과 같은 기본 제공 템플릿 옵션을 사용하여 사용자 지정 템플릿을 삽입할 수 있습니다.

명칭 참고

default.title

높은 수준의 상태 정보를 표시합니다.

default.message

발생 및 해결된 경고에 대한 형식화된 요약을 제공합니다.

사용자 지정 템플릿 예제

사용자 지정 템플릿을 사용하는 방법의 예는 다음과 같습니다.

단일 알림을 렌더링하기 위한 템플릿:

{{ 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 }}

템플릿 데이터

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

명칭 유형 참고

Receiver

문자열

알림이 전송되는 연락처의 이름.

Status

문자열

하나 이상의 경고가 발생하면 실행되며, 그렇지 않으면 해결됩니다.

Alerts

Alert

이 알림에 포함된 경고 개체 목록 (아래 참조).

GroupLabels

KeyValue

이러한 경고를 그룹화한 레이블입니다.

CommonLabels

KeyValue

이 알림에 포함된 모든 알림에 공통적인 레이블입니다.

CommonAnnotations

KeyValue

이 알림에 포함된 모든 경고에 공통적인 주석입니다.

ExternalURL

문자열

알림을 보낸 Grafana로 돌아가는 링크입니다. 외부 경보 관리자를 사용하는 경우 이 경보 관리자로 다시 연결하세요.

Alerts 유형은 반환된 경고를 필터링하는 두 가지 함수를 제공합니다.

  • Alerts.Firing— 발생 경고 목록을 반환합니다.

  • Alerts.Resolved— 해결된 알림 목록을 반환합니다.

알림 (유형)

경고 유형에는 다음 데이터가 포함됩니다.

명칭 유형 참고

상태 표시기

문자열

firing 또는 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

지정된 키가 없는 키/값 맵의 사본을 반환합니다.

이름

[] 문자열

라벨 이름 목록

[] 문자열

라벨 값 목록

템플릿 함수

템플릿 함수를 사용하면 라벨과 주석을 처리하여 동적 알림을 생성할 수 있습니다. 다음 기능을 사용할 수 있습니다.

명칭 인수 유형 반환 타입 설명

humanize

숫자 또는 문자열

문자열

지표 접두사를 사용하여 숫자를 더 읽기 쉬운 형식으로 변환합니다.

humanize1024

숫자 또는 문자열

문자열

휴머나이즈와 비슷하지만 1000이 아닌 1024를 기본으로 사용합니다.

humanizeDuration

숫자 또는 문자열

문자열

지속 시간 (초) 을 더 읽기 쉬운 형식으로 변환합니다.

humanizePercentage

숫자 또는 문자열

문자열

비율 값을 100의 몇 분의 1로 변환합니다.

humanizeTimestamp

숫자 또는 문자열

문자열

Unix 타임스탬프 (초) 를 더 읽기 쉬운 형식으로 변환합니다.

title

문자열

문자열

Strings.title은 각 단어의 첫 문자를 대문자로 표시합니다.

toUpper

문자열

문자열

문자열. ToUpper, 모든 문자를 대문자로 변환합니다.

toLower

문자열

문자열

문자열. ToLower, 모든 문자를 소문자로 변환합니다.

match

패턴, 텍스트

boolean

정규 표현식. MatchString 고정되지 않은 정규 표현식 일치를 테스트합니다.

reReplaceAll

패턴, 대체, 텍스트

문자열

정규 표현식. ReplaceAllString 정규 표현식 대체, 고정되지 않음.

graphLink

문자열 - 및 필드가 있는 JSON 객체 expr datasource

문자열

지정된 표현식과 데이터 원본에 대한 Explore의 그래픽 뷰 경로를 반환합니다.

tableLink

문자열 - exprdatasource 필드가 있는 JSON 개체

문자열

지정된 표현식과 데이터 원본에 대한 Explore의 표 형식 보기 경로를 반환합니다.

args

[] 인터페이스 {}

맵 [문자열] 인터페이스 {}

객체 목록을 키가 있는 맵으로 변환합니다 (예: arg0, arg1). 이 함수를 사용하여 템플릿에 여러 인수를 전달할 수 있습니다.

externalURL

아무것도 없어

문자열

외부 URL을 나타내는 문자열을 반환합니다.

pathPrefix

아무것도 없어

문자열

외부 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

경로 접두사

{경로 접두사}

/경로/접두사