|
对于最新稳定版本,请使用Spring Batch Documentation 6.0.0! |
监测与指标
自4.2版本起,Spring Batch 支持批处理监控和指标 基于Micrometer。本节描述 哪些指标是开箱即用的,以及如何贡献自定义指标。
内置指标
度量收集不需要特定的配置。所有指标均提供
该框架已在Micrometer全球注册处注册spring.batch前缀。下表详细解释了所有指标:
公制名称 |
类型 |
描述 |
标签 |
|
|
作业执行时长 |
|
|
|
目前在职工作 |
|
|
|
步骤执行时长 |
|
|
|
当前活跃的步道 |
|
|
|
题目阅读时长 |
|
|
|
项目处理时间 |
|
|
|
区块写入的时长 |
|
这地位标签可以是以下两种形式成功或失败. |
自定义指标
如果你想在自定义组件中使用自己的指标,我们推荐使用
直接使用微米API。以下是如何计时 的示例任务:
import io.micrometer.core.instrument.Metrics;
import io.micrometer.core.instrument.Timer;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.repeat.RepeatStatus;
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;
}
}
禁用指标
指标收集和日志记录类似。禁用日志通常是
通过配置日志库实现,这对指标也没有区别。
Spring Batch 没有禁用 Micrometer 指标的功能。这应该是
在Micrometer那边完成。因为 Spring Batch 将指标存储在全球范围内
带有spring.batch前缀,你可以配置
Micrometer 可通过以下片段忽略或否认批次指标:
Metrics.globalRegistry.config().meterFilter(MeterFilter.denyNameStartsWith("spring.batch"))
更多细节请参见Micrometer的参考文档。