Метрики 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 и обновления метрик можно разделить на следующие шаги:
Приложение обнаруживает изменение файла с секретами на файловой системе пода;
Приложение считывает новые секреты из файла и валидирует их (проверяет, что заданы непустые значения). Если этот этап успешен, метрика
mail_secret_hotreload_update_statusбудет иметь успешное значение, в противном случае у метрики будет неуспешное значение, Hot Reload отменится;Приложение тестирует новые секреты перед их глобальным применение ко всему контексту приложения. Например, если секретами являются логин/пароль от БД, то приложение попытается установить тестовое соединение с новыми логинами/паролями, при этом все текущие соединения продолжат использовать старые логины/пароли. Если тестовое соединение неуспешно, то метрика
mail_secret_hotreload_apply_statusпринимает неуспешное значение, приложение продолжает использовать старые секреты;Если тест новых секретов успешен, то приложение применяет их ко всему контексту. Например, для логина/пароля от БД приложение плавно (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:
