Мониторинг функционирования приложений#
Стандартный сервис мониторинга#
Для мониторинга доступности приложений Blitz Identity Provider предусмотрен сервис /blitz/metrics
, вызываемый с помощью HTTP GET
. Рекомендуется, чтобы сервис был доступен на каждом сервере приложения по HTTP
при вызове из внутренней сети с серверов мониторинга и вместе с тем, чтобы сервис был недоступен при вызове из внешних сетей и с рабочих мест пользователей.
В случае если приложение доступно, то сервис /blitz/metrics
вернет детальную информацию о метриках функционирования приложения в формате Prometheus.
Пример ответа сервиса
# HELP blitz_idp_uptime_seconds Uptime
# TYPE blitz_idp_uptime_seconds gauge
blitz_idp_uptime_seconds{blitz_host="papp01.loc",} 63859.0
# HELP blitz_idp_licence_exp_seconds Licence expiration
# TYPE blitz_idp_licence_exp_seconds gauge
blitz_idp_licence_exp_seconds{blitz_host="papp01.loc",} 9.223372036854776E18
# HELP blitz_idp_config_mtime Last time, a file was changed
# TYPE blitz_idp_config_mtime gauge
# HELP blitz_idp_datasource_latency Latency of an datasource operation
# TYPE blitz_idp_datasource_latency histogram
blitz_idp_datasource_latency_bucket{blitz_host="papp01.loc",ds_type="ldap",ds_name="389-ds",op_type="read",le="0.005",} 13.0
…
blitz_idp_datasource_latency_bucket{blitz_host="papp01.loc",ds_type="ldap",ds_name="389-ds",op_type="read",le="+Inf",} 29.0
blitz_idp_datasource_latency_count{blitz_host="papp01.loc",ds_type="ldap",ds_name="389-ds",op_type="read",} 29.0
blitz_idp_datasource_latency_sum{blitz_host="papp01.loc",ds_type="ldap",ds_name="389-ds",op_type="read",} 0.3112787189999999
# HELP blitz_idp_mq_connections Amount connections to datasource
# TYPE blitz_idp_mq_connections gauge
blitz_idp_mq_connections{blitz_host="papp01.loc",mq_type="rmq",mq_server="pmq01.loc_5672",} 1.0
# HELP blitz_idp_mq_latency Latency of an mq operation
# TYPE blitz_idp_mq_latency histogram
blitz_idp_mq_latency_bucket{blitz_host="papp01.loc",mq_type="rmq",mq_server="pmq01.loc_5672",broker="blitz.events.direct",op_type="write",le="0.005",} 1.0
…
blitz_idp_mq_latency_bucket{blitz_host="papp01.loc",mq_type="rmq",mq_server="pmq01.loc_5672",broker="blitz.events.direct",op_type="write",le="+Inf",} 3.0
blitz_idp_mq_latency_count{blitz_host="papp01.loc",mq_type="rmq",mq_server="pmq01.loc_5672",broker="blitz.events.direct",op_type="write",} 3.0
blitz_idp_mq_latency_sum{blitz_host="papp01.loc",mq_type="rmq",mq_server="pmq01.loc_5672",broker="blitz.events.direct",op_type="write",} 0.028808135999999998
# HELP blitz_idp_authn_method_app_total Amount of method authentications by app id
# TYPE blitz_idp_authn_method_app_total counter
blitz_idp_authn_method_app_total{blitz_host="papp01.loc",app_id="_blitz_profile",method="sms",status="success",} 2.0
blitz_idp_authn_method_app_total{blitz_host="papp01.loc",app_id="_blitz_profile",method="cls",status="other_error",} 7.0
blitz_idp_authn_method_app_total{blitz_host="papp01.loc",app_id="_blitz_profile",method="password",status="success",} 4.0
blitz_idp_authn_method_app_total{blitz_host="papp01.loc",app_id="_blitz_profile",method="knownDevice",status="other_error",} 3.0
# HELP blitz_idp_authn_method_total Amount of authentications by a method
# TYPE blitz_idp_authn_method_total counter
blitz_idp_authn_method_total{blitz_host="papp01.loc",method="password",status="success",} 4.0
blitz_idp_authn_method_total{blitz_host="papp01.loc",method="knownDevice",status="other_error",} 3.0
blitz_idp_authn_method_total{blitz_host="papp01.loc",method="cls",status="other_error",} 7.0
blitz_idp_authn_method_total{blitz_host="papp01.loc",method="sms",status="success",} 2.0
# HELP blitz_idp_authn_method_latency Latency of an authentication method
# TYPE blitz_idp_authn_method_latency histogram
blitz_idp_authn_method_latency_bucket{blitz_host="papp01.loc",method="sms",le="1.0",} 0.0
…
blitz_idp_authn_method_latency_bucket{blitz_host="papp01.loc",method="sms",le="+Inf",} 2.0
blitz_idp_authn_method_latency_count{blitz_host="papp01.loc",method="sms",} 2.0
blitz_idp_authn_method_latency_sum{blitz_host="papp01.loc",method="sms",} 28.686999999999998
blitz_idp_authn_method_latency_bucket{blitz_host="papp01.loc",method="password",le="1.0",} 0.0
…
blitz_idp_authn_method_latency_bucket{blitz_host="papp01.loc",method="password",le="+Inf",} 4.0
blitz_idp_authn_method_latency_count{blitz_host="papp01.loc",method="password",} 4.0
blitz_idp_authn_method_latency_sum{blitz_host="papp01.loc",method="password",} 1835.901
# HELP blitz_idp_datasource_connections Amount connections to datasource
# TYPE blitz_idp_datasource_connections gauge
blitz_idp_datasource_connections{blitz_host="papp01.loc",ds_type="ldap",ds_name="389-ds",} 10.0
# HELP blitz_idp_version Application version
# TYPE blitz_idp_version gauge
blitz_idp_version{blitz_host="papp01.loc",part="major",} 5.0
blitz_idp_version{blitz_host="papp01.loc",part="minor",} 16.0
blitz_idp_version{blitz_host="papp01.loc",part="patch",} 1.0
# HELP blitz_idp_notify_user_total Amount of user notifications by channel
# TYPE blitz_idp_notify_user_total counter
blitz_idp_notify_user_total{blitz_host="papp01.loc",channel="email",} 3.0
blitz_idp_notify_user_total{blitz_host="papp01.loc",channel="sms",} 4.0
blitz_idp_notify_user_total{blitz_host="papp01.loc",channel="push",} 2.0
Имя каждой метрики начинается с имени приложения (дефис в имени заменен на подчеркивание): blitz_idp_%%%
, blitz_registration_%%%
, blitz_recovery_%%%
, blitz_console_%%%
. Список доступных метрик приведен в таблице.
Метрики функционирования Blitz Identity Provider
Право доступа |
Тип |
Пояснение |
---|---|---|
uptime_seconds |
gauge |
Время с момента запуска приложения (в секундах) |
licence_exp_seconds |
gauge |
Время до истечения срока действия лицензии (в секундах) |
config_mtime |
gauge |
Время последнего изменения файла конфигурации |
datasource_latency |
histogram |
Задержки ответа от хранилища УЗ по
операциям чтения и записи (могут
быть типы |
mq_connections |
gauge |
Количество коннектов к MQ ( |
mq_latency |
histogram |
Задержки ответа от MQ ( |
authn_method_app_total |
counter |
Количество успешных и неуспешных аутентификаций каждым методом входа в различные приложения |
authn_method_total |
counter |
Общее кол-во успешных и нет аутентификаций разными методами |
authn_method_latency |
histogram |
Длительность аутентификации по разным методам входа |
datasource_connections |
gauge |
Кол-во коннектов к хранилищам |
version |
gauge |
Версия приложения |
notify_user_total |
counter |
Кол-во направленных сообщений по разным каналам |
authn_method_app_created |
служебные |
Эти метрики (с суффиксом
|
authn_method_created |
||
authn_method_latency_created |
||
datasource_latency_created |
||
mq_latency_created |
||
notify_user_created |
Использование Grafana и Prometheus#
Для быстрой настройки мониторинга и визуализации процессов Blitz Identity Provider удобно использовать job-задание Prometheus и шаблон дашборда Grafana, входящие в поставку (resources.zip
).
Совет
Визуальное представление данных имеет широкий спектр применения. Оно может быть использовано менеджерами для анализа рабочих процессов, инженерами для отслеживания ситуаций, когда количество аутентификаций превышает пороговое значение (настраиваются оповещения), для контроля за сроком действия лицензии и др. При обновлении удобно отслеживать версии сервисов на большом количестве хостов и время их запуска.
Для настройки визуализации выполните следующие действия:
Модифицируйте job-задание
prometheus.yaml
в соответствии с конфигурацией своей системы и добавьте его в Prometheus.Модифицируйте шаблон дашборда
blitz-dashboard.json
. Настройте Grafana и добавьте дашборд.
Примеры визуализации данных в Grafana: