Influxdb 如何配置Micronaut和测微计将ILP直接写入XDB?

Influxdb 如何配置Micronaut和测微计将ILP直接写入XDB?,influxdb,micronaut,micrometer,Influxdb,Micronaut,Micrometer,我有一个Micronaut应用程序,它使用测微计向XDB报告度量。目前,它正在使用通过io.micronaut.configuration:micronaut测微计注册表Statsd依赖项提供的Statsd注册表 我想改为在流入管线协议(ILP)中输出指标,但micronaut测微计项目目前不提供流入注册表。我试图通过导入io.milomer:milomer注册表influx依赖项并手动配置InfluxMeterRegistry来解决这个问题,如下所示: @Factory public clas

我有一个Micronaut应用程序,它使用测微计向XDB报告度量。目前,它正在使用通过
io.micronaut.configuration:micronaut测微计注册表Statsd
依赖项提供的Statsd注册表

我想改为在流入管线协议(ILP)中输出指标,但micronaut测微计项目目前不提供流入注册表。我试图通过导入
io.milomer:milomer注册表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;
  }
}

当应用程序运行时,正如我所期望的那样,度量在my/metrics端点上公开,但没有任何内容写入XDB。我使用curl确认我的本地XDB在预期的
localhost:8086/write?db=metrics
端点接受度量。有人能给我一些建议让它工作吗?我想知道是否需要在某个地方手动定义一个reporter…

经过一段时间的尝试,我使用以下代码实现了这一点:

@Factory
public class InfluxMeterRegistryFactory {
  @Bean
  @Singleton
  @Requires(property = MeterRegistryFactory.MICRONAUT_METRICS_ENABLED, value = 
StringUtils.TRUE, defaultValue = StringUtils.TRUE)
  @Requires(beans = CompositeMeterRegistry.class)
  public InfluxMeterRegistry 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);
  }
}
我还注意到,从年起,micronaut测微计的InfluxMeterRegistry将在未来开箱即用