使用Spring Boot + Micrometer + Prometheus Exporter可以轻松获取任意指标
我将在这里写一下使用Spring Boot + Micrometer + Prometheus Exporter的组合来获取任意指标的方法。
设置
在已经启用Spring Boot的环境中,要使Micrometer生效,需要在pom或gradle等文件中配置所需的库。
例子
在这里,我将写一个pom的例子。
<!-- 必須 -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<version>${micrometer.version}</version>
</dependency>
<!-- spring boot 1.5x を使っている場合は必要 -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-spring-legacy</artifactId>
<version>${micrometer.version}</version>
</dependency>
<!-- 以下、Prometheus Exporter を有効にする場合は必要 -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>${micrometer.version}</version>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient</artifactId>
<version>${prometheus.version}</version>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_common</artifactId>
<version>${prometheus.version}</version>
</dependency>
微米核心
使用微米计时所必需的库。
该词汇的一种可能的中文翻译是:微米弹簧遗留
从Spring Boot 2.x版本开始,Micrometer成为官方的度量工具。因此,如果使用2.x之前的版本(如1.5.x),则需要使用用于向后兼容的库。如果在1.5.x环境中运行,请指定该库。
微米注册机Prometheus/简单客户端/简单客户端公共
关于如何传播和显示获得的度量标准,可以通过名为micrometer-registry-**的库来选择任意的方式。
因为我们想要使用Prometheus Exporter,在这里我们需要指定与Prometheus相关的注册表。
此外,如果要在Java中进行与prometheus相关的处理,需要指定prometheus提供的库(simpleclient、simpleclient_common)。
代码
应用程式代码的嵌入方式如下。
将计数器初始化
使用已初始化的计数器来进行自增。
@RestController
public class SadaController {
@Autowired
protected MeterRegistry meterRegistry;
private Counter metricsCounter;
@PostConstruct
public void init() {
metricsCounter = meterRegistry.counter("api.sada.count"); // initialize
}
@RequestMapping(path = "/sada", method = { RequestMethod.GET })
@ApiOperation(value = "sada")
@ApiResponses(value = { @ApiResponse(code = 200, response = String.class, message = "echo") })
public String sada(@RequestParam(name = "echo", required = false, defaultValue = "masashi") @Valid String echo) {
metricsCounter.increment(); // increment
return echo;
}
普罗米修斯导出器 (Pǔ luó mǐ xiū sī chū qì)
当将 micrometer-registry-prometheus 添加到库中时,Spring Boot 在启动时将自动启用 /prometheus 端点。
现在可以通过标准来获取JVM和线程状态的度量指标。
此外,通过Prometheus Exporter还可获取上述自定义指标。
# TYPE api_sada_count_total counter
api_sada_count_total 15.0
上述的是调用上述控制器的次数作为指标获取的示例。
可以将以这种形式获取的指标导入到Prometheus或Datadog中。
結論來說
仅需要一种选择,请将以下内容用中文进行释义:
可以同时使用官方文档和其他丰富多样的功能来详细了解,非常简单的 Micrometer 的用法已经介绍完毕。