Уведомления из Grafana в Линк Чаты

Пошаговое описание настройки уведомлений из Grafana

Описание настройки универсальных вебхуков чат-бота


Для отправки уведомлений от Grafana в МТС Линк чат нужно:

1. Создать чат-бота

2. Создать новый вебхук для входящих уведомлений

3. Настроить отправку уведомления в Grafana

4. Отправить тестовое уведомление


Детальное описание настройки уведомлений в Grafana

В нашем примере будет описана отправка уведомлений об ошибках вебсервера с кодом 500. Но также можно настроить любые другие уведомления, которые поддерживает Grafana.


 Настройка источника данных (Data Source)

1. Войдите в Grafana с учетной записью администратора
2. Перейдите в раздел "Connections" -> "Data sources"

3. Убедитесь, что у вас настроен источник данных, который содержит метрики HTTP-запросов (например, Prometheus). При необходимости добавьте новый источник данных, нажав кнопка "Add new data source". Инструкция по настройке источника данных https://grafana.com/docs/grafana/latest/datasources/

2 Создание дашборда и панели


1. Создайте новый дашборд в разделе "Dashboards", нажав кнопку "New" и выбрав опцию "New dashboard".


2. Добавьте новую панель, нажав кнопку "+ Add visualization" и укажите настроенный ранее источник данных


3. Настройте запрос для отслеживания ошибок 500:

Для Prometheus, запрос может выглядеть примерно так: `rate(http_requests_total{status="500"}[5m]) > 0`
Предполагается, что Ваше приложение настроено на экспорт в Prometheus метрики `http_requests_total` с тегами `status` и `instance`.

4. Сохраните панель и дашборд: нажмите кнопку "Save dashboard", задайте название новому дашборду и нажмите кнопку "Save"


Создание канала уведомлений (Contact Point) для вебхука


1. Перейдите в раздел "Alerting" -> "Contact points"

2. Нажмите кнопку "+ Create contact point"
3. Заполните форму на открывшейся странице:


- Name: "MTS Link Webhook"

- Integration: "Webhook"

- URL: https://prod-chat.mts-link.ru/application/webhook/11111111/22222222 (подставить свой адрес вебхука, [как получить адрес вебхука Линк Чатов](https://help.mts-link.ru/article/22541))

- В разворачивающейся группе настроек "Optional Webhook settings":

- в списке "HTTP Method" выберите "POST"

- в разделе "Custom Payload" нажмите кнопку "+ Add" и далее - кнопку "Edit Payload Template"

- в появившемся диалоговом окне установите переключатель в положение "Enter custom payload template", чтобы задать пользовательский шаблон тела вебхука

- в текстовом поле укажите следующий шаблон: `{"text": "Ошибка 500 на сервере 1"}` и нажмите кнопку "Save". Если нужны более динамические сообщения, можно использовать переменные Grafana: `{"text": "Ошибка 500 на сервере: {{ (index .Alerts 0).Labels.instance }}. Значение: {{ (index .Alerts 0).Values.A }}"}`, где `A` - это имя запроса по умолчанию для правила оповещения

- В разворачивающейся группе настроек "Notification settings" установите флажок "Disable resolved message", чтобы не отправлять уведомление о восстановлении




4. Нажмите кнопку "Test" для проверки работы канала уведомлений


5. Нажмите кнопку "Save contact point" для сохранения настроек канала уведомлений


 Настройка правила оповещения (Alert Rule)


1. Откройте созданный ранее дашборд и нажмите "Edit" в контекстном меню

2. Перейдите на вкладку "Alert"

3. Нажмите "New alert rule"

4. Настройте правило оповещения:

- В разделе "1. Enter alert rule name" укажите название, например "HTTP 500 Error Alert"
- В разделе "2. Define query and alert condition" укажите условие срабатывания "Alert condition" следующим образом: "WHEN QUERY IS ABOVE 0"



- В разделе "3. Add folder and labels" выберите или создайте папку для хранения правила

- В разделе "4. Set evaluation behavior" создайте группу для интервала обработки, нажав кнопку "+ New evaluation group", и в появившемся диалоговом окне укажите интервал обработки, например "1m" (или другой подходящий интервал). Далее задайте интервал срабатывания "Pending period", например "None". Укажите время, в течение которого должно сохраняться условие срабатывания "Keep firing for", например "None". В разворачивающейся группе настроек "Configure no data and error handling" для поля "Alert state if no data or all values are null" установите значение "Normal", а для поля "Alert state if execution error or timeout" - значение "Error".


- В разделе "5. Configure notifications" привяжите ранее созданный канал уведомления "MTS Link Webhook" к настраиваемому правилу оповещения


5. Нажмите "Save rule and exit" для сохранения правила оповещения


 Проверка работы оповещений

1. Вызовите принудительно ошибку 500 на вашем сервере или симулируйте ее

2. Убедитесь, что графики на панели Grafana отображают эту ошибку



3. Подождите время, указанное в настройках правила оповещения

4. Проверьте, что вебхук был вызван и сообщение было отправлено в МТС Линк





👆 На этом пока всё