0

我有一个用 Spring Boot 1.x 实现的 Rest 服务。我正在尝试通过利用执行器 /metrics 将指标数据发送到现有的流入数据库。我发现 Micrometer 项目 ( http://micrometer.io/docs/influx#_install ) 支持 Spring Boot 集成,但我找不到任何关于如何配置项目以与 influx db 对话的文档。例如:influxdb.connurl、用户名、dbname 等。

我的 /metrics 工作正常。当我向我的端点发出休息请求时,由于未配置 influx db conn,我收到此错误:

** [spectator-spring-metrics-publisher-0] 警告 io.micrometer.influx.InfluxRegistry - 发送指标失败 **

依赖项:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
  <version>${spring-boot.version}</version>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-spring-legacy</artifactId>
    <version>${micrometer.version}</version>
    </dependency>
 <dependency>
     <groupId>io.micrometer</groupId>
     <artifactId>micrometer-registry-influx</artifactId>
     <version>${micrometer.version}</version>
 </dependency>

在某处是否有文档如何将指标写入流入数据库?我可以为 localhost 访问文件编写一个解析器,并安装一个 Telegraf 代理来发送系统指标,但我想先走这条路。

4

1 回答 1

3

前几天我在玩千分尺并涌入。首先,您必须在 application.properties/application.yml 文件中设置一些流入参数。

  spring:
    metrics:
     influx:
       uri: http://localhost:8086/write 
       enabled: true
       userName: root
       password: root
       step: PT10S
       db:  metrics

确保数据库已经存在于您的 influx-db 中。如果数据库不存在,我没有找到自动创建数据库的解决方案。

您还可以创建一个 Bean 来配置您的 Metric-Registry。您可以使用注册表添加一些标签并捕获其他指标。

@Bean
MeterRegistryConfigurer configurer() {
    return registry -> {
        registry.config().commonTags("service", "tweets");
        new ClassLoaderMetrics().bindTo(registry);
        new JvmMemoryMetrics().bindTo(registry);
        new JvmGcMetrics().bindTo(registry);
        new ProcessorMetrics().bindTo(registry);
        new JvmThreadMetrics().bindTo(registry);
    };
}

我不知道它是否是最好的解决方案,但它对我有用。在我的 Maven 文件中,我只使用“micrometer-registry-influx”依赖项。之后,您应该会在您的 influx-db 中收到有关您的休息端点的指标。

我希望这对您有所帮助。

于 2017-09-26T08:32:52.653 回答