템플릿 변수 평가

모니터 알림 메시지에서 템플릿 변수를 eval 구문으로 수정할 수 있으며, 이를 통해 숫자 값이나 문자열 값을 가진 템플릿 변수에 여러 가지 수학 연산과 함수를 적용할 수 있습니다.

연산자

평가 연산자를 사용하면 숫자형 템플릿 변수에 대한 기본적인 산술 연산을 수행할 수 있습니다. 구문은 다음 형식을 사용합니다. 참고: 표현식은 따옴표(")로 묶어야 합니다.

{{eval "TEMPLATE_VARIABLE_NAME+1-2*3/4"}}

다음 연산자를 사용할 수 있습니다.

연산자설명
+덧셈
-뺄셈
*곱셈
/나눗셈
^거듭제곱
%나머지

예시

{{last_triggered_at_epoch}} 템플릿 변수는 모니터가 마지막으로 트리거된 UTC 시간을 밀리초 에포크 형식으로 반환합니다.

특정 시간으로 링크 범위 지정

평가 연산자를 사용하면 다음과 같이 15분(15 * 60 * 1000 밀리초)을 뺄 수 있습니다.

{{eval "last_triggered_at_epoch-15*60*1000"}}

이 기능으로 모니터 알림 메시지에 Datadog 또는 다른 워크플로 도구의 다른 페이지로 연결되는 특정 시간 링크를 생성할 수 있습니다. 예를 들어, {{last_triggered_at_epoch}}에서 평가 연산자를 사용하여 Datadog Log Explorer로 연결되는 특정 시간 링크를 생성할 수 있습니다.

https://app.datadoghq.com/logs?from_ts={{eval "last_triggered_at_epoch-15*60*1000"}}&to_ts={{last_triggered_at_epoch}}&live=false

시간대에 따라 다른 팀에 알림 라우팅

last_triggered_at_epoch 변수의 모듈로 % 평가를 {{#is_exact_match}}{{/is_exact_match}}와 결합하여 UTC(시간대)에 따라 알림 라우팅을 맞춤 설정할 수 있습니다.

{{#is_exact_match (eval "int(last_triggered_at_epoch / 3600000 % 24)") "8" "9" "10" "11" "12" "13"}}  
Handle that should receive notification if time is between 8AM and 2PM UTC
{{/is_exact_match}}

참고: 일정에 따라 모니터를 평가해야 하는 경우 Custom Schedules를 확인하세요.

함수

템플릿 변수 값은 평가 함수의 입력으로 사용되어 템플릿 변수의 형식을 변경하거나 값의 수학 연산(해당되는 경우)을 수행할 수 있습니다. 구문은 다음 형식을 사용합니다. 참고: 표현식은 따옴표(")로 묶어야 합니다.

{{eval "function(TEMPLATE_VARIABLE_NAME)"}}

다음 함수는 숫자형 템플릿 변수의 값의 표시 형식을 변경합니다.

함수설명
humanize_bytes(var)var 바이트(bytes)를 사람이 읽을 수 있는 형식으로 반환합니다.
humanize_bits(var)var 비트(bits)를 사람이 읽을 수 있는 형식으로 반환합니다.
abs(var)var의 절대값을 반환합니다.
int(var)var를 소수점 이하 자릿수를 내림한 정수로 반환합니다. 즉, 소수점 왼쪽의 숫자를 반환합니다. 예: var = 12.345이면 int(var)는 12를 반환합니다.
float(var)var를 실수(float) 형태로 반환합니다.
trunc(var)int 함수의 별칭인 정수로 var를 반환합니다.
dec(var)소수점 오른쪽의 숫자를 반환합니다. 예: var = 12.345이면 dec(var)는 0.345를 반환합니다.

다음 함수는 숫자형 템플릿 변수의 값을 수학 함수의 입력으로 사용합니다.

함수설명
round(var)가장 가까운 정수로 반올림된 var를 반환합니다.
round(var, n)지정된 자릿수(n)로 반올림된 var를 반환합니다.
예: round(12.376, 2) = 12.38
ceil(var)var의 상한값(var보다 크거나 같은 가장 작은 정수)을 반환합니다.
floor(var)var의 최소값(var보다 작거나 같은 가장 큰 정수)을 반환합니다.
sgn(var)var에서 평가된 sign 함수의 값을 반환합니다.
var > 0이면 sgn(var) = 1
var = 0이면 sgn(var) = 0
var < 0이면 sgn(var) = -1
to_bool(var)var = 1이면 true를 반환
var = 0이면 false를 반환
exp(var)var를 지수로 하여 자연로그의 밑 e를 거듭제곱한 값을 반환합니다.
log10(var)var의 10진수 로그를 반환합니다.
sin(var)var 라디안의 사인을 반환합니다.
sinh(var)var의 쌍곡선 사인을 반환합니다.
asin(var)var의 아크사인을 라디안으로 반환합니다.
asinh(var)var의 역 쌍곡선 사인을 반환합니다.
cos(var)var 라디안의 코사인을 반환합니다.
cosh(var)var의 쌍곡선 코사인을 반환합니다.
acos(var)var의 아크 코사인을 라디안으로 반환합니다.
acosh(var)var의 역 쌍곡선 코사인을 반환합니다.
tan(var)var 라디안의 탄젠트를 반환합니다.
tanh(var)var의 쌍곡선 탄젠트를 반환합니다.
atan(var)var의 아크 탄젠트를 라디안으로 반환합니다.
atan2(var1, var2)라디안으로 atan(var1 / var2)을 반환합니다.
atanh(var)var의 역 쌍곡선 탄젠트를 반환합니다.

예시

{{value}} 템플릿 변수의 소수점 자릿수가 필요하지 않다면 int 함수를 사용해 {{value}}를 정수로 평가하여 가독성을 높이고 소수점을 제거합니다.

{{eval "int(value)"}}

{{value}}가 많은 수의 바이트(byte)나 비트(bit)로 평가되면 humanize_bytes 또는 humanize_bits 함수를 사용해 숫자를 상위 메모리 단위(예: GB 또는 MB)로 변환하여 가독성을 높입니다.

{{eval "humanize_bytes(value)"}}

{{eval "humanize_bits(value)"}}

다음 함수를 사용하여 문자열 변수에 특정 연산을 적용할 수 있습니다.

함수설명
upper(var)대문자로 변환된 문자열을 반환합니다.
lower(var)소문자로 변환된 문자열을 반환합니다.
substring(var, start, end)문자열에서 지정된 두 인덱스(start, end) 사이의 문자를 추출합니다. 세 번째 파라미터는 선택 사항입니다.
예: substring(“host:D”, 5) = “D”
strip(var, characters)앞뒤 문자를 제거합니다. 두 번째 파라미터가 null이면 문자열의 시작과 끝에 있는 공백을 제거합니다. 예:
strip(" host:E “) = “host:E”
strip(“abchost:Eabc”, “abc”) = “host:E”