У меня есть приложение Micronaut, которое использует Micrometer для отчета о показателях в InfluxDB с проектом micronaut-micrometer .В настоящее время он использует реестр Statsd, предоставляемый через зависимость io.micronaut.configuration:micronaut-micrometer-registry-statsd
.
Я хотел бы вместо этого выводить метрики в протоколе Influx Line Protocol (ILP), но проект микронавт-микрометр в настоящее время не предлагает реестр Influx.Я попытался обойти это, импортировав зависимость io.micrometer:micrometer-registry-influx
и сконфигурировав InfluxMeterRegistry вручную следующим образом:
@Factory
public class MyMetricRegistryConfigurer implements MeterRegistryConfigurer {
@Bean
@Primary
@Singleton
public MeterRegistry getMeterRegistry() {
InfluxConfig config = new InfluxConfig() {
@Override
public Duration step() {
return Duration.ofSeconds(10);
}
@Override
public String db() {
return "metrics";
}
@Override
public String get(String k) {
return null; // accept the rest of the defaults
}
};
return new InfluxMeterRegistry(config, Clock.SYSTEM);
}
@Override
public boolean supports(MeterRegistry meterRegistry) {
return meterRegistry instanceof InfluxMeterRegistry;
}
}
При запуске приложения метрики отображаются на моей конечной точке / метрики, как я и ожидал, ноничего не пишется в InfluxDB.Я подтвердил, что мой локальный InfluxDB принимает метрики в ожидаемой конечной точке localhost:8086/write?db=metrics
, используя curl.Кто-нибудь может дать мне несколько советов, чтобы это работало?Мне интересно, нужно ли мне где-нибудь вручную определять репортера ...