Метрики
Модуль для сбора метрик приложения с использованием Micrometer.
Требует подключения HTTP сервера для предоставления метрик в формате prometheus.
Подключение¶
Зависимость build.gradle
:
Модуль:
Зависимость build.gradle.kts
:
Модуль:
Конфигурация¶
Пример конфигурации пути HTTP сервера для получения метрик, описанной в классе HttpServerConfig
(указаны значения по умолчанию):
- Путь для получения метрик в формате
prometheus
(если подключен модуль HTTP сервера):
- Путь для получения метрик в формате
prometheus
(если подключен модуль HTTP сервера):
Пример полной конфигурации, описанной в классе MetricsConfig
(указаны значения по умолчанию):
Параметры конфигурации сбора метрик описываются в модулях в которых присутствует сбор метрик, например HTTP сервер, HTTP клиент и т.д.
Использование¶
Мы следуем и вам рекомендуем использовать нотацию, описанную в спецификации.
После подключения модуля Metrics.globalRegistry
будет зарегистрирован PrometheusMeterRegistry
, который будет использоваться во всех компонентах, собирающих метрики.
Персонализация¶
Для внесения изменений в конфигурацию PrometheusMeterRegistry
нужно добавить в контейнер PrometheusMeterRegistryInitializer
.
Важно, PrometheusMeterRegistryInitializer
применяется только один раз при инициализации приложения.
Например, мы хотим добавить общий тег для всех метрик:
Так же стандартные метрики имеют некоторые конфигурации, такие как ServiceLayerObjectives
для Distribution summary метрик.
Имена полей конфигурации можно посмотреть в ru.tinkoff.kora.micrometer.module.MetricsConfig
.
Стандарты¶
Изначальный формат метрик использовал стандарт OpenTelemetry V120
, после Kora 1.1.0
появилась возможность предоставления метрик
в стандарте OpenTelemetry V123
, частичный список изменений можно посмотреть в документации OpenTelemetry
и рекомендациях миграции OpenTelemetry