千米支持度

监测与指标

自4.2版本起,Spring Batch 支持批处理监控和指标 基于Micrometer。本节描述 哪些指标是开箱即用的,以及如何贡献自定义指标。spring-doc.cadn.net.cn

内置指标

指标收集默认被禁用。要启用它,你需要定义一个微米观测登记册在你的应用环境中。通常,你需要定义 使用哪个ObservationHandler。以下示例展示了如何注册默认计量观察处理程序它将以 a 格式存储指标MeterRegistry(例如,普罗米修斯登记册):spring-doc.cadn.net.cn

@Bean
public ObservationRegistry observationRegistry(MeterRegistry meterRegistry) {
    ObservationRegistry observationRegistry = ObservationRegistry.create();
    observationRegistry.observationConfig()
        .observationHandler(new DefaultMeterObservationHandler(meterRegistry));
    return observationRegistry;
}

春季批次的特定指标注册于春季。批次前缀。如下 表格详细解释了所有指标:spring-doc.cadn.net.cn

公制名称spring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

描述spring-doc.cadn.net.cn

标签spring-doc.cadn.net.cn

spring.batch.job(春.批量.job)spring-doc.cadn.net.cn

定时器spring-doc.cadn.net.cn

作业执行时长spring-doc.cadn.net.cn

名称,地位spring-doc.cadn.net.cn

Spring.batch.job.activespring-doc.cadn.net.cn

LONG_TASK_TIMERspring-doc.cadn.net.cn

目前在职spring-doc.cadn.net.cn

名称spring-doc.cadn.net.cn

spring.batch.stepspring-doc.cadn.net.cn

定时器spring-doc.cadn.net.cn

步骤执行时长spring-doc.cadn.net.cn

名称,job.name,地位spring-doc.cadn.net.cn

spring.batch.step.activespring-doc.cadn.net.cn

LONG_TASK_TIMERspring-doc.cadn.net.cn

当前活跃的步道spring-doc.cadn.net.cn

名称spring-doc.cadn.net.cn

Spring.batch.item.readspring-doc.cadn.net.cn

定时器spring-doc.cadn.net.cn

题目阅读时长spring-doc.cadn.net.cn

job.name,step.name,地位spring-doc.cadn.net.cn

Spring.batch.item.processspring-doc.cadn.net.cn

定时器spring-doc.cadn.net.cn

项目处理时间spring-doc.cadn.net.cn

job.name,step.name,地位spring-doc.cadn.net.cn

spring.batch.chunk.writespring-doc.cadn.net.cn

定时器spring-doc.cadn.net.cn

区块写入的时长spring-doc.cadn.net.cn

job.name,step.name,地位spring-doc.cadn.net.cn

Spring.batch.job.launch.countspring-doc.cadn.net.cn

计数器spring-doc.cadn.net.cn

作业启动次数spring-doc.cadn.net.cn

spring-doc.cadn.net.cn

地位作业和步骤的标签等同于退出状态。用于项目阅读和处理 并写下了地位标签可以是以下两种形式成功失败.

自定义指标

如果你想在自定义组件中使用自己的指标,我们推荐使用 直接使用微米API。以下是如何计时 的示例任务:spring-doc.cadn.net.cn

import io.micrometer.observation.Observation;
import io.micrometer.observation.ObservationRegistry;

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 {

    private ObservationRegistry observationRegistry;

    public MyTimedTasklet(ObservationRegistry observationRegistry) {
        this.observationRegistry = observationRegistry;
    }

	@Override
	public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
		Observation observation = Observation.start("my.tasklet.step", this.observationRegistry);
		try (Observation.Scope scope = observation.openScope()) {
			// do some work
		    return RepeatStatus.FINISHED;
		} catch (Exception e) {
			// handle exception
            observation.error(exception);
		} finally {
			observation.stop();
		}
	}
}

描图

从版本5开始,Spring Batch 支持通过Micrometer进行追踪观察应用程序接口。默认情况下,追踪功能是被禁用的。 要启用它,你需要定义一个观测登记册BEAN 配置为观察处理器支持追踪, 如追踪意识计量观察处理器:spring-doc.cadn.net.cn

@Bean
public ObservationRegistry observationRegistry(MeterRegistry meterRegistry, Tracer tracer) {
    DefaultMeterObservationHandler observationHandler = new DefaultMeterObservationHandler(meterRegistry);
    ObservationRegistry observationRegistry = ObservationRegistry.create();
    observationRegistry.observationConfig()
            .observationHandler(new TracingAwareMeterObservationHandler<>(observationHandler, tracer));
    return observationRegistry;
}

有了这些,Spring Batch 会为每个作业执行创建一个跟踪,并为每个步骤执行创建一个跨度。spring-doc.cadn.net.cn

如果你不使用。EnableBatchProcessingDefaultBatchConfiguration,你需要注册一个批量可观测性BeanPostProcessor在你的应用上下文中,该系统会自动设置Micrometer的观测值 可观察批处理工件中的注册表。spring-doc.cadn.net.cn