Grafana 8.0이 2021년6월에 릴리즈 되었습니다. 알림 기능에 대해 큰 변화가 있었으며 하나하나 알아보도록 하겠습니다.
Grafana 8.0는 많은 부분이 개선되었습니다. 오픈소스(=OSS), 엔터프라이즈 기능으로 나누어서 개선된 기능을 나열해봤습니다. 알림 기능에 대해 자세히 알아볼 예정이며, 그외 기능은 아래 공식사이트 페이지 정보를 참고 부탁드립니다.
Grafana 8.0는 Grafana OSS, Grafana Cloud 또는 Grafana Enterprise를 사용하든 제품 간에 동일한 알림 기능을 제공합니다. 그리고 8.0의 새로운 알림은 UI와 백엔드 기능을 중앙 집중화할수 있는 옵트인 기능을 제공합니다. UI의 경우 알림 설정 및 뷰 기능을 하나의 페이지에서 볼수 있게 되어 편리했습니다. 벡엔드 기능을 API 등으로 중앙집중화 하는 노력은 이후 알림 기능 개선에 도움이 되는 시발점으로 생각됩니다. (Fighting!, Open Source)
What’s new in Grafana v8.0 : https://grafana.com/docs/grafana/latest/whatsnew/whats-new-in-v8-0/#grafana-oss-features
Grafana 8.0의 새로운 알림 기능을 사용하기 위해서는 "ngalert"를 활성화 해야 합니다.
Enable Grafana 8 Alerts : Setting the ngalert feature toggle enables the new Grafana 8 alerting system.
docker를 사용하시는 경우 예를 들어 환경변수에 "GF_FEATURE_TOGGLES_ENABLE" 설정이 필요합니다.
docker run -p 3000:3000 --name=grafana -e "GF_FEATURE_TOGGLES_ENABLE=ngalert" grafana/grafana:8.0.4
Grafana : Grafana 8.0.4
Prometheus : prom/prometheus-linux-amd64
Mysql : Mysql 8.0.23
MySQL Questions 메트릭에 알림을 설정해보겠습니다.
Alert를 선택합니다.
"Create alert rule from this panel"를 선택하면 이전과는 다르게 하나의 페이지에서 알림 설정을 할수 있도록 되어있습니다. 아래 4가지 설정을 진행하는군요. 하나하나 알아보겠습니다.
알림 이름과 타입 그리고 폴더를 선택할수 있습니다.
"Grafana managed alert", "Conrtex/Loki managed alert"를 선택할수 있습니다. 사용자 설정을 추가하면 "Alertmanager managed alert"도 설정할수 있습니다.
메트릭의 Query를 기반으로 알림 설정에 필요한 표현식 및 임계값을 설정할수 있습니다. Grafana의 장점중 하나인 "Multi-dimensional alerting"을 통해 다양한 데이터소스의 메트릭을 하나의 패널에 시각화할수 있으며 알림설정도 할수 있습니다. 복잡한 상관관계가 있는 경우 유용하겠네요.
Expression 기능은 아직 베터 기능이네요. (Expression Beta feature: queries could stop working in next version)
위에서 설정한 값을 기반으로 알림 빈도를 설정합니다. 아래는 "1분 단위로 측정하고 5분 동안 B의 상태가 지속되면 알림을 보낸다" 라는 규칙을 적용했습니다.
알림 관리에 도움을 줄수 있는 라벨 및 상세 정보들을 정의합니다.
Alert rules 메뉴에서 다양한 알림 현황을 한눈에 알수 있습니다. 위 4번에서 설정한 라벨 등으로 쉽게 조회할수 있는 기능도 제공하고 있네요.
Grafana 8.0에서 UI를 중앙집중화 했다는 설명이 이해되었습니다. API로 백엔드 기능을 중앙화 했다는 부분은 앞으로의 릴리즈에 개선되는 점들을 살펴보면 좋겠네요. 기대됩니다. 예를 들어 아래와 같은 기능들이 개선되어 제공되었으면 합니다.
Silences 기능은 Alerting 메뉴에 포함되어있어 ALERTMANAGER에서 제공하는 기능을 모두 포함하고 있는지 살펴봐야겠네요.
Grafana Demo : https://play.grafana.org/d/000000012/grafana-play-home?orgId=1