기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
템플릿 라벨 및 주석
이 설명서 항목은 Grafana 버전 9.x를 지원하는 Grafana 작업 영역을 위해 설계되었습니다.
Grafana 버전 10.x를 지원하는 Grafana 작업 영역에 대한 내용은 을 참조하십시오. Grafana 버전 10에서 작업하기
Grafana 버전 8.x를 지원하는 Grafana 작업 영역에 대한 내용은 을 참조하십시오. Grafana 버전 8에서 작업하기
Grafana에서는 Prometheus에서처럼 레이블과 주석을 템플릿으로 만들 수 있습니다. 이전에 Prometheus를 사용해 본 적이 있다면 $labels
경고의 레이블과 값을 포함하는 $value
및 변수를 잘 알고 있을 것입니다. 알림에서 Prometheus 데이터 소스를 사용하지 않더라도 Grafana에서 동일한 변수를 사용할 수 있습니다. 이전에 Prometheus를 사용해 본 적이 없더라도 걱정하지 마세요. 각 변수와 템플릿 작성 방법은 이 페이지의 나머지 부분을 따라 진행하면서 설명될 것입니다.
Go의 템플릿 작성 언어
라벨 및 주석용 템플릿은 Go의 템플릿 언어인 텍스트/템플릿으로 작성됩니다.
태그 열기 및 닫기
텍스트/템플릿에서 템플릿은 템플릿이 변수를 인쇄하는지 또는 if {{
문과 같은 제어 구조를 실행하는지에 }}
관계없이 로 시작하고 끝납니다. 이는 변수를 인쇄할 때 and와 제어 구조에서 {{
및 }}
를 사용하는 Jinja와 같은 다른 템플릿 언어와는 다릅니다. {%
%}
인쇄
값을 출력하려면 및 를 사용하십시오. {{
}}
함수의 결과 또는 변수 값을 인쇄할 수 있습니다. 예를 들어 $labels
변수를 인쇄하려면 다음과 같이 작성하면 됩니다.
{{ $labels }}
레이블을 반복해서 살펴보세요.
에서 각 레이블을 반복하려면 $labels
a를 사용할 수 있습니다. range
여기서는 $k
현재 레이블의 이름과 값을 $v
나타냅니다. 예를 들어, 쿼리에서 레이블이 반환된 instance=test
경우 $k
레이블도 instance
반환되고 반환될 $v
것입니다test
.
{{ range $k, $v := $labels }} {{ $k }}={{ $v }} {{ end }}
레이블, 값 및 값 변수
라벨 변수
$labels
변수에는 쿼리의 레이블이 포함됩니다. 예를 들어 인스턴스가 다운되었는지 확인하는 쿼리는 다운된 인스턴스의 이름이 포함된 인스턴스 레이블을 반환할 수 있습니다. 예를 들어 인스턴스 중 하나가 5분 이상 중단되면 실행되는 알림 규칙이 있다고 가정해 보겠습니다. 어떤 인스턴스가 다운되었는지 알려주는 요약을 알림에 추가하려고 합니다. $labels
변수를 사용하여 요약에 인스턴스 레이블을 인쇄하는 요약을 만들 수 있습니다.
Instance {{ $labels.instance }} has been down for more than 5 minutes
점이 있는 레이블
템플릿에서 같은 점을 사용하여 인쇄하려는 라벨의 이름에 점 (마침표 또는 마침표) 이 포함된 경우 다음과 같이 할 수 없습니다.
Instance {{ $labels.instance.name }} has been down for more than 5 minutes
템플릿이 in이라는 name
존재하지 않는 필드를 사용하려고 하기 때문입니다. $labels.instance
대신 변수에 instance.name
레이블을 인쇄하는 index
함수를 사용해야 합니다. $labels
Instance {{ index $labels "instance.name" }} has been down for more than 5 minutes
값 변수
이 $value
변수는 Prometheus와 다르게 작동합니다. $value
Prometheus에서는 표현식의 값을 포함하는 부동 소수점 숫자이지만 Grafana에서는 이 경고 규칙의 모든 임계값, Reduce 및 Math 표현식과 클래식 조건의 레이블과 값을 포함하는 문자열입니다. 쿼리 결과는 10~10,000개의 행 또는 메트릭을 반환할 수 있으므로 쿼리 결과는 포함되지 않습니다.
알림 요약에 $value
변수를 사용하려는 경우:
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ $value }})
요약은 다음과 같을 수 있습니다.
api has an over 5% of responses with 5xx errors: [ var='B' labels={service=api} value=6.789 ]
다음은 ReFID B가 있는 표현식을 var='B'
참조합니다. Grafana에서 모든 쿼리와 표현식은 경고 규칙의 각 쿼리와 표현식을 식별하는 ReFID로 식별됩니다. 마찬가지로 레이블을 labels={service=api}
참조하며 value=6.789
값을 나타냅니다.
ReFID A가 없는 것을 보셨을 수도 있습니다. 이는 대부분의 경고 규칙에서 reFID A가 쿼리를 참조하고 쿼리는 해당 쿼리가 포함되지 않은 많은 행 또는 시계열을 반환할 수 있기 때문입니다. $value
값 변수
$value
변수에 필요한 것보다 많은 정보가 들어 있는 경우 대신 를 사용하여 개별 표현식의 레이블과 값을 인쇄할 수 $values
있습니다. 이와 달리 $value
$values
변수는 각 표현식의 레이블과 부동 소수점 값이 포함된 객체 테이블이며, 해당 reFID로 인덱싱됩니다.
알림 B
요약에서 reFID를 사용하여 표현식의 값을 인쇄하려는 경우:
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ $values.B }}%
요약에는 다음 값만 포함됩니다.
api has an over 5% of responses with 5xx errors: 6.789%
그러나 숫자 6.789를 {{ $values.B }}
인쇄하는 경우 실제로는 reFID B의 레이블과 값을 모두 포함하는 객체를 인쇄하는 문자열이며, ReFID B의 부동 소수점 값을 사용하려면 의 필드를 사용해야 합니다. Value
$values.B
알림 요약에서 부동 소수점 값을 인간화하려는 경우:
{{ $labels.service }} has over 5% of responses with 5xx errors: {{ humanize $values.B.Value }}%
데이터 없음, 런타임 오류 및 타임아웃
경고 규칙의 쿼리가 데이터를 반환하지 않거나 데이터 소스 오류 또는 시간 초과로 인해 실패하는 경우 해당 쿼리를 사용하는 Threshold, Reduce 또는 Math 표현식도 데이터를 반환하지 않거나 오류를 반환합니다. 이 경우 이러한 표현식은 없어집니다. $values
사용하기 전에 RefID가 있는지 확인하는 것이 좋습니다. 그렇지 않으면 쿼리에서 데이터가 반환되지 않거나 오류가 발생하면 템플릿이 손상됩니다. if 문을 사용하여 이 작업을 수행할 수 있습니다.
{{ if $values.B }}{{ $labels.service }} has over 5% of responses with 5xx errors: {{ humanizePercentage $values.B.Value }}{{ end }}
클래식 조건
규칙이 임계값, 감소 및 수학 표현식 대신 클래식 조건을 사용하는 경우 $values
변수는 참조 ID와 클래식 조건의 조건 위치를 기준으로 인덱싱됩니다. 예를 들어, ReFID B에 두 개의 조건이 포함된 클래식 조건이 있는 경우 두 개의 조건과 $values
이 포함됩니다. B0
B1
The first condition is {{ $values.B0 }}, and the second condition is {{ $values.B1 }}
함수
레이블과 주석을 확장할 때도 다음 함수를 사용할 수 있습니다.
args
이 args
함수는 arg0, arg1 등의 키를 사용하여 객체 목록을 맵으로 변환합니다. 이는 템플릿에 여러 인수를 전달할 수 있도록 하기 위한 것입니다.
예
{{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}}
1 2
외부 URL
이 externalURL
함수는 ini 파일에 구성된 Grafana 서버의 외부 URL을 반환합니다.
예
{{ externalURL }}
https://example.com/grafana
그래프링크
이 graphLink
함수는 지정된 표현식과 데이터 소스의 Grafana 버전 9에서 둘러보기 그래픽 뷰 경로를 반환합니다.
예
{{ graphLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true}]
인간화
이 humanize
함수는 십진수를 인간화합니다.
예
{{ humanize 1000.0 }}
1k
인간화:1024
1000과 비슷하게 humanize1024
humanize
작동하지만 1024를 기본으로 사용합니다.
예
{{ humanize1024 1024.0 }}
1ki
휴머나이즈 듀레이션
이 humanizeDuration
함수는 지속 시간을 초 단위로 인간화합니다.
예
{{ humanizeDuration 60.0 }}
1m 0s
퍼센트 인간화
이 humanizePercentage
함수는 비율 값을 백분율로 인간화합니다.
예
{{ humanizePercentage 0.2 }}
20%
타임스탬프 인간화
이 humanizeTimestamp
함수는 Unix 타임스탬프를 인간화합니다.
예
{{ humanizeTimestamp 1577836800.0 }}
2020-01-01 00:00:00 +0000 UTC
매칭
match
함수는 텍스트를 정규 표현식 패턴과 일치시킵니다.
예
{{ match "a.*" "abc" }}
true
경로 접두사
이 pathPrefix
함수는 ini 파일에 구성된 Grafana 서버의 경로를 반환합니다.
예
{{ pathPrefix }}
/grafana
테이블링크
이 tableLink
함수는 지정된 표현식과 데이터 소스에 Grafana 버전 9에서 둘러보기 대한 표 형식 뷰의 경로를 반환합니다.
예
{{ tableLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false}]
title
title
함수는 각 단어의 첫 글자를 대문자로 표시합니다.
예
{{ title "hello, world!" }}
Hello, World!
토로워
이 toLower
함수는 모든 텍스트를 소문자로 반환합니다.
예
{{ toLower "Hello, world!" }}
hello, world!
토우 어퍼
이 toUpper
함수는 모든 텍스트를 대문자로 반환합니다.
예
{{ toUpper "Hello, world!" }}
HELLO, WORLD!
reReplaceAll
reReplaceAll
함수는 정규 표현식과 일치하는 텍스트를 대체합니다.
예
{{ reReplaceAll "localhost:(.*)" "example.com:$1" "localhost:8080" }}
example.com:8080