监控和指标
监控和指标
从版本 4.2 开始,Spring Batch 提供了对批处理监控和指标的支持 基于 Micrometer。本节介绍 哪些指标是开箱即用的,以及如何提供自定义指标。
内置指标
指标采集不需要任何特定配置。提供所有指标
在 Micrometer 的全局注册表中以前缀注册。下表详细介绍了所有指标:spring.batch
指标名称 |
类型 |
描述 |
标签 |
|
|
任务执行持续时间 |
|
|
|
当前活动的作业 |
|
|
|
步骤执行的持续时间 |
|
|
|
项目读取的持续时间 |
|
|
|
商品处理的持续时间 |
|
|
|
块写入的持续时间 |
|
标记可以是 或 。status SUCCESS FAILURE |
自定义指标
如果您想在自定义组件中使用自己的指标,我们建议使用
Micrometer API 直接使用。以下是如何为 :Tasklet
public class MyTimedTasklet implements Tasklet {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
Timer.Sample sample = Timer.start(Metrics.globalRegistry);
String status = "success";
try {
// do some work
} catch (Exception e) {
// handle exception
status = "failure";
} finally {
sample.stop(Timer.builder("my.tasklet.timer")
.description("Duration of MyTimedTasklet")
.tag("status", status)
.register(Metrics.globalRegistry));
}
return RepeatStatus.FINISHED;
}
}
禁用指标
指标收集是一个类似于日志记录的问题。禁用日志通常是
通过配置 logging 库完成,这对 metrics 没有什么不同。
Spring Batch 中没有禁用 micrometer 指标的功能,这应该
在 micrometer 一侧完成。由于 Spring Batch 将指标存储在全局
带有前缀的 micrometer 的注册表,可以配置
micrometer 忽略/拒绝批处理指标,使用以下代码段:spring.batch
Metrics.globalRegistry.config().meterFilter(MeterFilter.denyNameStartsWith("spring.batch"))
有关详细信息,请参阅 micrometer 的参考文档。