개요
Ops Manager FreeMarker 템플릿 구문을 사용하여 웹훅 템플릿을 지원합니다. 웹훅 엔드포인트로 전송되는 HTTP headers 와 요청 본문 콘텐츠를 모두 사용자 지정할 수 있습니다. 두 템플릿 모두 유효한 JSON 출력을 생성해야 합니다.
템플릿 변수
헤더와 본문 템플릿 모두에서 다양한 변수를 사용할 수 있습니다. 자세한 내용은 경고 모델 문서를 확인하거나, post test message 버튼을 클릭(임의 데이터)하거나, 경고를 저장하고 웹훅 페이로드를 검사합니다(변수 이름이 JSON 키와 일치).
참고
모든 웹훅 호출에 모든 변수가 포함되는 것은 아닙니다. 사용 가능한 필드는 경고 유형 및 상태에 따라 다릅니다. 렌더링 오류를 방지하려면 템플릿이 null 값을 처리하다 확인하세요.
웹훅 템플릿에서 사용할 수 있는 변수는 다음과 같습니다.
변수 | 설명 |
|---|---|
| 경고 승인될 때까지의 ISO 8601 날짜 및 시간 형식(UTC)의 타임스탬프입니다. |
| 경고를 승인한 사용자가 남긴 댓글입니다. |
| 경고를 승인한 사용자의 사용자 이름입니다. |
| 이 경고를 트리거한 경고 구성의 고유 식별자입니다. |
| 이 경고가 적용되는 cluster의 고유 식별자입니다. |
| 이 경고가 적용되는 cluster의 이름입니다. |
| 경고 열렸을 때 ISO 8601 날짜 및 시간 형식(UTC)의 타임스탬프입니다. |
| (객체) 경고 를 트리거한 메트릭의 현재 값입니다. |
| 지표의 값입니다. |
| 값의 단위입니다. 값은 지표 유형에 따라 달라집니다. |
| 이 경고 알림에 대한 조치 또는 상태 변경입니다(기본 |
| 경고를 트리거한 이벤트의 이름입니다. |
| 이 경고 열린 그룹 (프로젝트 )의 고유 식별자입니다. |
| 메트릭이 속한 호스팅하다 의 고유 식별자입니다. |
| 경고 적용되는 각 호스팅하다 의 호스트 이름 및 포트입니다. 이는 호스트 이름, FQDN, IPv4 주소 또는 IPv6 주소 일 수 있습니다. |
| 사람이 읽을 수 있는 경고 에 대한 설명입니다. |
| 경고의 고유 식별자입니다. |
| 이 경고 에 대해 마지막으로 알림이 전송된 시점의 ISO 8601 날짜 및 시간 형식(UTC)의 타임스탬프입니다. |
| (객체 배열) 하위 리소스 및/또는 관련 리소스에 대한 하나 이상의 링크입니다. |
| 연결된 리소스 의 관계 유형을 설명합니다(예: 현재 리소스 의 경우 |
| 리소스 링크 . |
| 값이 임계값을 벗어난 측정값의 이름입니다. |
| 이 경고 열린 조직 의 고유 식별자입니다. |
| 이 경고 열린 조직 의 이름입니다. |
| 이 경고 열린 프로젝트 (그룹 )의 이름입니다. |
| 복제본 세트의 이름입니다. |
| 요청 의 고유 식별자입니다. (기본 |
| 경고 종료되었을 때 ISO 8601 날짜 및 시간 형식(UTC)의 타임스탬프입니다. |
| 헤더 템플릿에서만 사용할 수 있는 요청 서명입니다. (기본 |
| 경고 의 현재 상태 ( |
|
|
| 이 경고에 설정된 식별 라벨입니다. |
| 경고 마지막으로 업데이트된 시점의 ISO 8601 날짜 및 시간 형식(UTC)의 타임스탬프입니다. |
정규식 도우미
또한 정규 표현식을 사용하여 템플릿 내의 텍스트에서 데이터를 추출할 수 있는 사용자 지정 헬퍼인 re 헬퍼가 있습니다.
re.group(input, regex, group)첫 번째 일치 항목에서 지정된 캡처 그룹 반환합니다. 일치하는 항목이 없으면 빈 문자열을 반환합니다.
예시:
${re.group("abc-123", "([a-z]+)-(\\d+)", 2)}→123re.findAllGroup(input, regex, group)모든 그룹 일치 항목의 목록을 반환합니다.
예시:
<#list re.findAllGroup("error1:12;error2:98;error3:33", "error\\d+:(\\d+)", 1) as val>${val} </#list> 출력:
12 98 33
참고
그룹 인덱스 는 1기반입니다. 일치하는 항목이 없으면 빈 문자열 또는 빈 목록을 반환합니다.
템플릿 예시
사용자 지정 헤더 템플릿
{ "X-Static": "static-value", "X-Secret": "${signature}", "X-Request-Id": "${requestId}", "X-Event": "${event}", "X-Org-Name": "${orgName!''}", "X-Test-Regex-Helper": "${re.group(\"abc-123\", \"([a-z]+)-(\\d+)\", 2)}" }
사용자 지정 본문 템플릿
{ "staticValue": "This value is static", "testRegexHelper": [ <#list re.findAllGroup("error1:12;error2:98;error3:33", "error\\d+:(\\d+)", 1) as val> "${val}"<#if val_has_next>,</#if></#list> ], "replicaSetName": "${replicaSetName!''}", "metricName": "${metricName!''}", "orgName": "${orgName!''}", "created": "${created!''}", "groupId": "${groupId!''}", "hostId": "${hostId!''}", "hostnameAndPort": "${hostnameAndPort!''}", "humanReadable": "${humanReadable?js_string}", "orgId": "${orgId!''}", "alertConfigId": "${alertConfigId!''}", "eventTypeName": "${eventTypeName!''}", "links": [ <#list links![] as link> { "rel": "${link.rel!''}", "href": "${link.href!''}" }<#if link_has_next>,</#if> </#list> ], "id": "${id!''}", "projectName": "${projectName!''}", "updated": "${updated!''}", "currentValue": { "number": ${(currentValue.number)!0}, "units": "${(currentValue.units)!''}" }, "status": "${status!''}" }
웹훅 템플릿 테스트
웹훅 템플릿을 구성한 후 경고 구성 인터페이스의 Test Alert 버튼을 사용하여 테스트할 수 있습니다. 그러면 템플릿이 올바르게 렌더링되는지 확인하기 위해 샘플 데이터가 포함된 테스트 알림이 전송됩니다.