Я использую проект Micrometer для публикации метрик в моем приложении весенней загрузки 2.x.
Я реализовал два MeterRegistry
(StepMeterRegistry
и SimpleMeterRegistry
), поэтому весенняя загрузка внутренне создает CompositeMeterRegistry
Имея набор StepMeterRegistry и SimpleMeterRegistry.
Теперь я использую конечную точку /actuator/metrics
для просмотра текущего количества метрик.
Реализация MetricsEndpoint
выглядит следующим образом:- Он будет извлекать первый реестр из композитногоMeterRegistry и отображать метрики.
, поэтому теперь проблема ниже: - compositeMeterRegistry
управляет набором, поэтому порядок не гарантируется, но я хочу опубликоватьSimpleMeterRegistry
только для конечной точки '/actuator/metrics'
.
Текущий обходной путь, который я использовал, создает @Primary bean для MetricsEndpoint и предоставляет SimpleMeterRegistry.
@Primary
@Bean
public MetricsEndpoint metricsEndpoint(SimpleMeterRegistry registry) {
return new MetricsEndpoint(registry);
}
Поскольку Spring теперь управляет микрометром, почемуони не сохранили список или LinkedHashSet реестра в CompositeMeterRegistry. Это было бы легко для разработчиков.