본문 바로가기

Data/Data Engineering

[Grafana] Slack Alert 메세지 커스텀마이징

반응형

우리는 지난 게시글에서 그라파나를 활용하여 슬랙 알람화를 진행했다. 하지만 아래 이미지와 같이 굳이 불필요한 메시지까지 포함되어 슬랙알람이 울리게된다.

굳이... 이정도 내용까진...

알람이 위와같이 울리게된다면 가시성도 떨어지고, 알람이 여러번 울리게된다면 채널이 매우 복잡해진다. 따라서, 이번 게시글에서는 어떻게 슬랙 메세지를 꾸밀지에 대해서 정리해본다.

 

이번 작업에 필요한건 Grafana Alerting에서 Contact Points탭을 활용할것이다.

위와 같이 보이며, 슬랙 메세지 커스텀을 위해서 새로운 메세지 template을 설정해줄것이다.

해당 template을 작성하기 위해서는 GoLang이 필요하다... 나도 한번도 써보지못한 언어라서 당황했지만... 일단 기본적으로 Grafana에서 예제를 제공해준다.

https://grafana.com/docs/grafana/latest/alerting/contact-points/message-templating/

 

Message templating | Grafana documentation

Message templating Notifications sent via contact points are built using messaging templates. Grafana’s default templates are based on the Go templating system where some fields are evaluated as text, while others are evaluated as HTML (which can affect

grafana.com

제일 간단한 예제를 사용해보자면 일단 template name은 mytemplate으로 설정하고, content에는 아래 내용을 써준다.

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

 

자 이제 "해당 template을 사용하겠다!" 라는 내용을 적어줘야하는데 이부분은 지난번에 우리가 설정한 contact points에서 해당 template을 사용하겠다 라는 내용을 쓸것이다.

 

지난번에 작성한 contact points의 setting화면에 들어가서 "Optional Slack Settings"를 클릭해서 펼쳐준이후 "text body"에 아래와같이 써준다.

 

자 이제 완료했다. 다시 슬랙 메세지가 발송이된다면 아래와같이 표시된다. (아마 Alert summary: 는 없을것이다)

 

이런식으로 이제 슬랙 메세지를 커스텀하면 되는데, 추가 예시로 만약에 우리가 알람이 발생했을때 특정 URL을 보내고 싶다면 먼저 아래와같이 지난번에 Alert rule을 설정해줬던 곳에 "Summary and annotations"부분에 추가로 설정해주면된다. DashboardURL은 임의로 설정한 annotation의 이름이며, 원하는 이름을 지어주면된다.

 

이제 해당 annotations을 slack message template에 넣어줘야하는데, 이부분은 확실하진않지만 아래와같이 설정하면 볼수가있다.

{{ define "mytemplate" }}
# 설정한 모든 annotations을 전부 전송
{{ range .CommonAnnotations.SortedPairs }}
{{ .Name }}: {{ .Value }}
{{ end }}
{{ end }}

 

다시 슬랙 메세지를 보내면...

우리가 원하는 내용만 발송하게된다. 필자같은 경우에는 DashboardURL뿐만이 아니고 ShutDownList라는 annotation을 추가해서 내용이 추가가 되었다.

 

이런식으로 우리가 원하는 내용만 담기게끔 Grafana-Slack메세지를 설정할수가있다.

반응형