如何将 Spring Batch Metrics 发布到 Prometheus 网关

Posted

技术标签:

【中文标题】如何将 Spring Batch Metrics 发布到 Prometheus 网关【英文标题】:How to publish Spring Batch Metrics to Prometheus Gateway 【发布时间】:2021-06-15 03:11:05 【问题描述】:

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

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

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

如上所述here

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

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

【问题讨论】:

【参考方案1】:
    这两种方法有什么区别吗?

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

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

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

【讨论】:

以上是关于如何将 Spring Batch Metrics 发布到 Prometheus 网关的主要内容,如果未能解决你的问题,请参考以下文章

Spring Batch:如何将 jobParameters 传递给自定义 bean?

Spring Batch - 如何将字符串从文件转换为日期?

如何将文件名输入到 Spring Batch 的 Item Reader 或 Item Processor 中?

如何在 Spring Batch 中使用 Spring 事务支持

如何在 Spring Batch 中分别读取平面文件头和正文

Spring Boot + Spring Batch + Spring JPA