使用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 的用法已经介绍完毕。

广告
将在 10 秒后关闭
bannerAds