Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки

Триггеры

Триггеры (alerting rules) определяют условия создания алертов при отклонении значений метрик от ожидаемых порогов.

Триггеры описываются в группах правил и задаются как элементы массива spec.rules. Если у правила указано поле alert, оно считается триггером и используется для создания алертов.

Виды групп правил с триггерами

Поддерживаются три типа групп правил, в которых могут быть определены триггеры:

Тип группы правил Область видимости У кого есть доступ
Системные группы правил (ClusterObservabilityMetricsRulesGroup) Уровень кластера Администраторы DKP
Проектные группы правил (ObservabilityMetricsRulesGroup) Уровень проекта (неймспейса) Пользователи соответствующего проекта
Общедоступные (propagated) группы правил (ClusterObservabilityPropagatedMetricsRulesGroup) Создаются на уровне кластера и автоматически доступны во всех проектах Пользователи всех проектов

Описание типов групп правил:

  • Системные группы правил (ClusterObservabilityMetricsRulesGroup) — используются для описания триггеров уровня платформы и компонентов кластера. Создаются и управляются администраторами DKP.

  • Проектные группы правил (ObservabilityMetricsRulesGroup) — используются для описания триггеров, относящихся к конкретному проекту (неймспейсу). Пользователи проекта могут создавать и редактировать их в рамках настроенных прав доступа.

  • Общедоступные (propagated) группы правил (ClusterObservabilityPropagatedMetricsRulesGroup) — создаются на уровне кластера и автоматически становятся доступны во всех проектах.

Группы триггеров

Группы триггеров используются для логической компоновки правил мониторинга и управления их параметрами на уровне набора правил.

Группы удобны для объединения триггеров, относящихся к одному компоненту, сервису или проекту, а также для применения единого интервала вычисления ко всем правилам группы.

Уведомления

Модуль observability предоставляет механизмы настройки доставки уведомлений об алертах и разграничения доступа к каналам уведомлений на уровне кластера и проектов.

Поддерживаются следующие каналы доставки:

  • Email;
  • Telegram;
  • Slack;
  • Webhook.

Параметры подключения зависят от вида канала и настраиваются через соответствующий Kubernetes-ресурс.

Виды каналов уведомлений

Поддерживаются три типа каналов уведомлений:

Тип каналов Область видимости Кто может создавать
Системные каналы (ClusterObservabilityNotificationChannel) Уровень кластера Администраторы DKP
Проектные каналы (ObservabilityNotificationChannel) Уровень проекта (неймспейса) Пользователи соответствующего проекта
Общедоступные (propagated) каналы (ClusterObservabilityPropagatedNotificationChannel) Создаются на уровне кластера и автоматически доступны во всех проектах Администраторы DKP

Описание видов каналов:

  • Системные каналы (ClusterObservabilityNotificationChannel) — используются для доставки уведомлений уровня кластера. Доступны в веб-интерфейсе Deckhouse в разделе «Система» → «Управление системой» → «Мониторинг» → «Настройка уведомлений» → «Каналы уведомлений».

  • Проектные каналы (ObservabilityNotificationChannel) — позволяют настраивать доставку уведомлений в рамках конкретного проекта. Доступны в веб-интерфейсе Deckhouse в соответствующем проекте → «Мониторинг» → «Настройка уведомлений» → «Каналы уведомлений».

  • Общедоступные (propagated) каналы (ClusterObservabilityPropagatedNotificationChannel) — создаются на уровне кластера и автоматически становятся доступными во всех проектах для доставки уведомлений. Для создания используется ресурс ClusterObservabilityPropagatedNotificationChannel или консольная утилита d8.

Правила уведомлений

Правила уведомлений позволяют определить, по какому каналу должны отправляться уведомления для алерта (или группы алертов).

Тип правил Описание Как настроить
Системные правила уведомлений Позволяют настроить правила для отправки системных алертов. Cистемные правила могут использовать только системные каналы уведомлений. Доступны в веб-интерфейсе Deckhouse в разделе «Система» → «Управление системой» → «Мониторинг» → «Настройки уведомлений» → «Правила уведомлений». Используйте ресурс ClusterObservabilityNotificationPolicy.
Проектные правила уведомлений Позволяют настроить правила для отправки проектных алертов. Проектные правила могут использовать проектные или стандартные кластерные каналы уведомлений, но не системные каналы уведомлений. Доступны в веб-интерфейсе Deckhouse в соответствующем проекте → «Мониторинг» → «Настройки уведомлений» → «Правила уведомлений». Используйте ресурс ObservabilityNotificationPolicy.

Отключение уведомлений

В ситуациях, когда уведомления ожидаются заранее (например, при плановых работах или тестировании), модуль observability позволяет отключить отправку уведомлений для алертов, соответствующих заданным условиям.

Тип отключений Описание Как настроить
Системные отключения уведомлений Позволяют настроить правила отключения отправки системных алертов. Доступны в веб-интерфейсе Deckhouse в разделе «Система» → «Управление системой» → «Мониторинг» → «Настройки уведомлений» → «Отключение уведомлений». Используйте ресурс ClusterObservabilityNotificationSilence.
Проектные отключения уведомлений Позволяют настроить правила отключения отправки проектных алертов. Доступны в веб-интерфейсе Deckhouse в соответствующем проекте → «Мониторинг» → «Настройки уведомлений» → «Отключение уведомлений». Используйте ресурс ObservabilityNotificationSilence.

Алерты

Модуль observability обеспечивает разграничение прав доступа к алертам уровня кластера и проектов, а также позволяет просматривать список активных и завершённых алертов.

Активные алерты разделяются по уровню критичности:

  • критические (critical, S1–S3);
  • предупреждающие (warning, S4–S6);
  • информационные (info, S7–S9).

При просмотре алерта пользователь может увидеть общую информацию, лейблы, аннотации и график.

Виды алертов

Поддерживаются два типа алертов:

Тип алертов Область видимости У кого есть доступ
Системные алерты (ClusterObservabilityAlerts) Уровень кластера Администраторы DKP
Проектные алерты (ObservabilityAlerts) Уровень проекта (неймспейса) Пользователи соответствующего проекта

Описание видов алертов:

  • Системные алерты (ClusterObservabilityAlerts) — относятся к компонентам кластера DKP. Полный список активных и завершенных системных алертов доступен в веб-интерфейсе Deckhouse в разделе «Система» → «Управление системой» → «Мониторинг» → «Активные алерты».

  • Проектные алерты (ObservabilityAlerts) — относятся к ресурсам конкретного проекта (неймспейса). Полный список активных и завершенных проектных алертов доступен в веб-интерфейсе Deckhouse в соответствующем проекте → «Мониторинг» → «Активные алерты».

Алерты DeadMansSwitch и PrometheusUnavailable

DeadMansSwitch

DeadMansSwitch — это служебный алерт, который срабатывает непрерывно, тем самым подтверждая нормальную работу Prometheus и всего пайплайна доставки алертов.

Если DeadMansSwitch перестает поступать, начинает срабатывать алерт PrometheusUnavailable.

По умолчанию алерт DeadMansSwitch отправляется во все настроенные каналы уведомлений, если для них не задана фильтрация по лейблам в политиках уведомлений.

Чтобы не засорять список алертов, DeadMansSwitch скрыт из вывода команды d8 k get clusterobservabilityalerts (list/watch). Чтобы получить его напрямую, используйте следующую команду:

d8 k get clusterobservabilityalert deadmansswitch

Отключение этого алерта не рекомендуется, но при необходимости это можно сделать вручную с помощью параметра deadMansSwitch.enabled в настройках модуля.

При ручном отключении алерт PrometheusUnavailable не создается.

PrometheusUnavailable

PrometheusUnavailable (ранее — MissingDeadMansSwitch) — это алерт, который срабатывает, если DeadMansSwitch не поступает более 2 минут.

Это указывает на проблему в пайплайне доставки алертов. Возможные причины:

  • недоступен Prometheus;
  • нарушено взаимодействие между Prometheus и Alertmanager;
  • иная проблема, препятствующая отправке алертов.

Алерт PrometheusUnavailable является системным и отображается как в веб-интерфейсе Deckhouse, так и в выводе команды d8 k get clusterobservabilityalerts.