Метрики¶
Kora использует micrometer для записи метрик приложения.
Dependency¶
implementation "ru.tinkoff.kora:micrometer-module"
Module¶
@KoraApp
public interface ApplicationModules extends MetricsModule { }
После этого в Metrics.globalRegistry будет зарегистрирован PrometheusMeterRegistry
, который будет использоваться во всех компонентах, собирающих метрики.
Соглашения об именовании и составе метрик¶
Мы следуем и вам рекомендуем использовать нотацию, описанную в спецификации OpenTelemetry.
Модификация конфигурации¶
Для внесения изменений в конфигурацию PrometheusMeterRegistry
нужно добавить в контейнер PrometheusMeterRegistryInitializer
.
Важно, PrometheusMeterRegistryInitializer
применяется только один раз при инициализации приложения.
Например, мы хотим добавить общий тег для всех метрик:
@Module
interface MetricsConfigModule {
default PrometheusMeterRegistryInitializer commonTagsInit() {
return registry -> {
registry.config().commonTags("tag", "value");
return registry;
};
}
}
Так же стандартные метрики имеют некоторые конфигурации, такие как service layer objectives для Distribution summary метрик.
Имена полей конфигурации можно посмотреть в ru.tinkoff.kora.micrometer.module.MetricsConfig
.