Метрики
Модуль для сбора метрик приложения с использованием 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