땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • 이것이 리눅스다 with Rocky Linux9
  • E
  • I
  • ㅗ
  • D

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

DevOps

[Grafana] Customizing Grafana Alerting Notification Templates

2024. 3. 8. 11:06

Customize 하지않은 상태로 Test 알림을 보내게되면 다음과 같은 알림을 얻을 수 있는데 필요한 정보만 Alerting하게 하는것이 Customize 하는 목적입니다.

**Firing**
 
Value: [no value]
Labels:
 
- alertname = TestAlert
- instance = Grafana
Annotations:
- summary = Notification test
Silence: http://-----



1. Alerts & IRM -> Contact points 로 이동

2.Notification Templates에서 + Add notification template 버튼을 눌러 새로운 템플릿을 만듭니다. 



기본적으로 Nofification Templates은 Go 언어의 Template 문법을 사용하므로 사용방법과 관련 함수 Reference는 페이지 아래에 참조페이지에 링크 해놨습니다.

{{ define "telegram.print_alert" -}}
 
{{range $k, $v := .Values}} {{ $k }}={{ $v }} {{end}}
{{ if .Annotations -}
이벤트: {{ .Annotations.custom }} {{ .Values.B }}건 발생
서비스: npgweb
시간 : {{ .StartsAt.Format "2006-01-02 Mon 15:04:05"}}:
{{ end -}}
{{- end }}
 
{{ define "testTemplate" -}}
{{ if .Alerts.Firing -}}
[FIRING: {{ len .Alerts.Firing }}]
{{ range .Alerts.Firing }}
{{ template "telegram.print_alert" . }}
{{ end -}}
{{ end }}
{{ if .Alerts.Resolved -}}
[RESOLVED: {{ len .Alerts.Resolved }}]
{{ range .Alerts.Resolved }}
{{ template "telegram.print_alert" .}}
{{ end -}}
{{ end }}
{{- end }}



{{ define "testTemplate" -}} 을 통해 함수를 정할 수 있습니다. 위의 코드와 같이 "telegram.print_alert", "testTemplate" 2가지 함수를 만들었고 {{ template "Name" }} 으로 함수 사용이 가능합니다.

{{ if .Alerts.Firing -}} {{ end }} 를 이용하여 특정 조건이 갖춰줬을 때 해당 정보가 출력되게 합니다.

{{ range }} {{ end }} 를 이용해서 반복문을 수행할 수 있으며 KV(Key-Value)값은 각 변수에 할당해서 출력되게 할 수 있습니다.

위의 template을 이용해서 다음과 같은 알림을 얻을 수 있습니다.

[FIRING: 1]
 
B=1 C=2
이벤트: [Apache Status 304 Error 4건 발생]
서비스: npgweb
시간 : 2024-03-06 Wed 17:40:35:



참조페이지 : 

https://grafana.com/docs/grafana/latest/alerting/manage-notifications/template-notifications/create-notification-templates/
https://grafana.com/docs/grafana/latest/alerting/manage-notifications/template-notifications/reference/
https://pkg.go.dev/time#pkg-constants

'DevOps' 카테고리의 다른 글

Dockerfile을 이용한 코드에 의한 서버 구축  (0) 2024.10.21
[Vector] Logstash 대체안 Vector  (0) 2024.04.19
[SonarQube/Jenkins] SonarQube + Jenkins + GitLab 연동하기  (0) 2023.04.24
[Jenkins] Jenkins로 SpringBoot/Django/React 배포하기 (ver.2)  (1) 2023.03.22
[AWS] EC2 인스턴스(Ubuntu)에서 Docker 설치  (1) 2023.03.13
    'DevOps' 카테고리의 다른 글
    • Dockerfile을 이용한 코드에 의한 서버 구축
    • [Vector] Logstash 대체안 Vector
    • [SonarQube/Jenkins] SonarQube + Jenkins + GitLab 연동하기
    • [Jenkins] Jenkins로 SpringBoot/Django/React 배포하기 (ver.2)
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바