Метрики Hot Reload#

Программный компонент выполняет сбор и отображение метрик при Hot Reload секретов.

Список секретов, обновляющихся при Hot Reload, указан в разделе Hot Reload для сертификатов и конфигураций.

Описание метрик#

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

  • mail_secret_hotreload_update_status - метрика обновления секретов. Метрика может принимать одно из трёх значений:
    0 - если обновление секрета завершилось провалом;
    1 - если обновление секрета завершилось успехом;
    2 - если обновление секрета ещё выполняется.

  • mail_secret_hotreload_apply_status - метрика применения секретов. Метрика может принимать одно из трёх значений:
    0 - если применение секрета завершилось провалом;
    1 - если применение секрета завершилось успехом;
    2 - если применение секрета ещё выполняется.

Последовательность Hot Reload и обновления метрик можно разделить на следующие шаги:

  1. Приложение обнаруживает изменение файла с секретами на файловой системе пода;

  2. Приложение считывает новые секреты из файла и валидирует их (проверяет, что заданы непустые значения). Если этот этап успешен, метрика mail_secret_hotreload_update_status будет иметь успешное значение, в противном случае у метрики будет неуспешное значение, Hot Reload отменится;

  3. Приложение тестирует новые секреты перед их глобальным применение ко всему контексту приложения. Например, если секретами являются логин/пароль от БД, то приложение попытается установить тестовое соединение с новыми логинами/паролями, при этом все текущие соединения продолжат использовать старые логины/пароли. Если тестовое соединение неуспешно, то метрика mail_secret_hotreload_apply_status принимает неуспешное значение, приложение продолжает использовать старые секреты;

  4. Если тест новых секретов успешен, то приложение применяет их ко всему контексту. Например, для логина/пароля от БД приложение плавно (gracefully) закроет все старые соединения и установит новые соединения, используя новые логины/пароли. Если этот процесс успешный, то метрика mail_secret_hotreload_apply_status принимает успешное значение, в противном случае у метрики будет неуспешное значение.

У каждой из метрик есть следующие теги:

  • secret_path - путь в SecMan, по которому можно идентифицировать, какие секреты приложение обновляет (например, A/DEV_DZO/MAIL/KV/mail-secret/POSTGRES_*);

  • secret_type - тип секрета; system_account_credential для ТУЗов, other для всех остальных секретов;

  • secman_engine - SecMan-движок, в котором хранится секрет. Принимает значение kv;

  • namespace - название кластера, в котором работает приложение;

  • service_name - название сервиса (например, mail-back);

  • service_type - кто использует секрет. Принимает значение consumer;

  • login - Если секрет относится к ТУЗ, то метка содержит логин ТУЗ, иначе пустое значение;

Дашборд для отображения метрик#

Для отображения метрик можно воспользоваться одним из следующих дашбордов:

  • Дашборд Indicator - если в качестве системы мониторинга используется Indicator;

  • Дашборд Prometheus - если в качестве системы мониторинга используется Prometheus.

Пример отображения метрик на дашборде Prometheus: Пример отображения метрик на дашборде Prometheus