如何将 Spring Batch Metrics 发布到 Prometheus Gateway

问题描述

我有一个春季批处理作业,我想按照建议将指标推送到 Prometheus here

我需要通过测微计只推送 Spring 批处理给出的认指标。有一种简单的方法,我不需要任何东西,只需添加以下依赖项:

<dependency>
    <groupId>io.prometheus</groupId>
    <artifactId>simpleclient_pushgateway</artifactId>
</dependency>

如前所述here

但第二种方式是设置 PushGateway 服务器,然后编写 Configuration Class

  1. 这两种方法有什么区别吗?
  2. 在第二种方法中,当我们只需要认指标时如何编写它?Pushgatewayurl 很好,我理解,但是如果我有十几个作业,那么在作业名称和分组键中设置什么。?

解决方法

  1. 这两种方法有什么区别吗?

不,没有区别。请注意,并非所有 Spring Batch 用户都是 Spring Boot 用户。这就是 Spring Batch 存储库中的示例展示如何配置将指标推送到网关的任务的原因。现在,如果您使用 Spring Boot,则不必编写该类,因为 Spring Boot 会自动配置等效项。

  1. 在第二种方法中,当我们只需要默认指标时如何编写它?Pushgatewayurl 很好,我理解,但是如果我有十几个作业,那么在作业名称和分组键中设置什么。?

Spring Batch 指标按作业名称、步骤名称等进行标记,请参阅 Built-in Metrics 表中的 Tags 列。因此,即使您有多个工作,指标也会有所不同。可以在 Prometheus 端使用相应的标签进行过滤。