Состояние системы
Система мониторинга и сборка метрик публикует показатели работоспособности Avanpost FAM и готовности Avanpost FAM к приёму запросов на отдельном URI /health.
Система предоставляет следующие показатели:
- Работоспособность системы (liveness probe).
- Готовность системы (readiness probe).
Настройка интерфейса показателей состояния Avanpost FAM
Для настройки параметров публикации интерфейса публикации метрик следует настроить параметры секции server в конфигурационном файле config.toml Avanpost FAM Server. Данные показатели размещаются на том же интерфейсе, на котором публикуется основной интерфейс аутентификации Системы.
После внесения изменений в параметры сессии в config.toml следует перезапустить службу Avanpost FAM Server при помощи команды:
sudo systemctl restart idp
Проверка доступности показателей состояния Avanpost FAM
Любым подходящим инструментом отправьте HTTP-запрос на URI (вместо значения host следует поставить фактический адрес base_url FAM Server):
- Для получения liveness probe -
http://host/health/live. - Для получения readiness probe -
http://host/health/ready.
Метрики системы
Система публикует мгновенные показатели работы Системы на отдельном URI /metrics. Этот URI доступен по отдельному сетевому порту и может быть размещён на отдельном сетевом интерфейсе и на отдельном хосте, изолированном от остальных веб-интерфейсов.
Примечание
В роли потребителя метрик в инфраструктуре может быть развёрнута система Prometheus, а для визуализации показателей - сформирован дашборд в Grafana.
Система предоставляет следующие показатели:
- Число фактов аутентификации с использованием определённого фактора аутентификации.
- Число фактов аутентификации в определённые приложения.
- Число активных сессий.
- Число создаваемых в момент времени новых сессий.
- Число завершаемых в момент времени сессий.
- Число создаваемых новых УЗ пользователей.
- Число блокируемых УЗ пользователей.
- Набор показателей производительности HTTP-запросов.
- Стандартный набор метрик языка Golang.
Настройка интерфейса публикации метрик Prometheus
Для настройки параметров публикации интерфейса публикации метрик настройте параметры секции metrics в конфигурационном файле config.toml Avanpost FAM.
| Параметр | Значение |
|---|---|
host | IP-адрес, на котором предполагается открыть сетевой порт |
port | Сетевой порт |
После внесения изменений в параметры сессии в config.toml перезапустите службу Сервера Системы
Проверка доступности интерфейса публикации метрик
Любым подходящим инструментом отправьте HTTP-запрос на указанный в конфигурации host и port.
В ответ Система вернёт заголовок HTTP/1.1 200 OK и в ответе текстовый набор показателей следующего вида:
Пример
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 1.58e-05
go_gc_duration_seconds{quantile="0.25"} 3.45e-05
go_gc_duration_seconds{quantile="0.5"} 4.24e-05
go_gc_duration_seconds{quantile="0.75"} 4.73e-05
...Подключение интерфейса публикации метрик к Prometheus
В конфигурационном файле /etc/prometheus/prometheus.yml в секцию scrape_configs добавьте задачу на сбор метрик с указанного хоста.
Приложение А. Справочник метрик Prometheus
Prometheus — это система мониторинга, собирающая и хранящая временные ряды данных (time series data) в виде метрик. Эти метрики представляют собой именованные значения с временной меткой и могут включать дополнительные метки. Ниже приведены метрики, используемые при анализе Avanpost FAM.
Легенда типов
counter— монотонно растущий счётчик (при перезапуске процесса может сбрасываться до 0).gauge— текущее значение, может увеличиваться и уменьшаться.histogram— гистограмма распределения, в которой экспортируются:*_bucket{le="..."}— накопительное количество значений ≤ указанного порога,*_sum— сумма всех наблюдённых значений,*_count— общее количество наблюдений.
summary— квантильная статистика, в которой экспортируются:*_quantile{quantile="..."}— значения квантилей,*_sumи*_count— аналогично гистограмме (метрики данного вида являются счётчиками (counter), а не отдельные типы. В документации они часто помечаются как "части" гистограмм или сводок).
Метрики их описания представлены в нижеприведенной таблице:
| Метрика | Тип | Ед. изм | Описание |
|---|---|---|---|
Go runtime: GC и память | |||
|
| секунды | Время пауз сборки мусора (GC). Используется для анализа задержек. |
|
| секунды | Суммарное время всех пауз GC за время работы процесса. |
|
| количество | Общее число пауз сборки мусора. |
|
| % | Значение параметра |
|
| байты | Лимит виртуальной памяти (в байтах), установленный через переменную окружения |
|
| количество | Текущее число активных Go-рутин. Важно для отслеживания утечек или перегрузки. |
|
| — | Информация о версии Go-рантайма. Постоянное значение |
|
| байты | Объём памяти, аллоцированной в куче (живые объекты). Аналогично |
|
| байты | Общее количество байт, аллоцированных в куче за всё время (включая освобождённые). |
|
| байты | Память, используемая хеш-таблицей профилирования памяти. |
|
| объекты | Общее число объектов,освобождённых из кучи. |
|
| байты | Память, используемая для хранения метаданных GC. |
|
| байты | То же, что |
|
| байты | Память в куче, не используемая под объекты (но может быть вновь использована). |
|
| байты | Память в куче, находящаяся в использовании (включает фрагментацию). |
|
| объекты | Количество объектов, аллоцированных в куче. |
|
| байты | Объём памяти кучи, возвращённый ОС (через |
|
| байты | Общий объём памяти, запрошенный у ОС для кучи. |
|
| Unix sec | Временная метка последней сборки мусора. |
|
| объекты | Общее числоаллокацийв куче (включая освобождённые). |
|
| байты | Память, используемая структурами |
|
| байты | Память |
|
| байты | Память под структуры |
|
| байты | Память |
|
| байты | Объём памяти в куче, при котором будет запущена следующая GC. |
|
| байты | Память, используемая для других системных нужд (не в куче, не в стеке). |
|
| байты | Память, используемая стеками Go-рутин. |
|
| байты | Память стеков,полученная от ОС. |
|
| байты | Общий объём памяти,запрошенный у ОСвсеми компонентами Go-рантайма. |
|
| количество | Значение |
|
| потоки ОС | Текущее число OS-потоков (M), созданных Go-рантаймом. |
HTTP метрики приложения | |||
|
| количество | Число HTTP-запросов, обрабатываемых в данный момент. |
|
| количество | Число неуспешных запросов, которые в данный момент обрабатываются. Полезно для выявления "зависших" ошибок. |
|
| секунды | Гистограмма времени обработки HTTP-запросов. Разбита по |
|
| секунды | Суммарное время обработки всех запросов (по комбинации меток). |
|
| количество | Общее число обработанных запросов (по комбинации меток). |
Identity Provider (IDP) метрики | |||
|
| аккаунты | Общее число отключённых учётных записей. |
|
| сессии | Текущее число активных сессий в IDP. |
|
| аутентификации | Количество успешных входов в системы (по приложениям). |
|
| проверки | Сколько раз проверялся каждый фактор аутентификации (например, SMS, TOTP). |
|
| сессии | Общее число созданных сессий за всё время. |
|
| блокировки | Сколько раз пользователи были заблокированы (например, из-за множества попыток входа). |
Метрики процесса (process_*) | |||
|
| CPU-секунды | Суммарное время CPU (пользовательское и системное), затраченное процессом. |
|
| дескрипторы | Максимально допустимое число открытых файловых дескрипторов. |
|
| дескрипторы | Текущее число открытых файловых дескрипторов. Контролируйте приближение к лимиту. |
|
| байты | Общее количество байт, полученных процессом по сети (TCP/UDP). |
|
| байты | Общее количество байт, отправленных процессом по сети. |
|
| байты | RSS – объём физической памяти, используемой процессом (не подкачивается). |
|
| Unix sec | Временная метка запуска процесса. Полезно для отслеживания рестартов. |
|
| байты | Общий виртуальный объём памяти процесса. |
|
| байты | Максимальный объём виртуальной памяти, разрешённый системой. |