zoukankan      html  css  js  c++  java
  • easy-batch job 报告

    JobReport api

    easy-batch 包含了一个在batch 处理阶段的metrics 以及batch完成之后的报告

    • 包含的信息
    job启动以及结束的时间
    job的状态
    读取的record
    写入的record
    过滤的record
    错误数

    自定义metrics

    通过JobMetrics的addMetric我们可以添加自己的metrics,但是为了访问JobMetrics我们需要实现JobListener 接口

    • 参考demo
    public class RecordProcessingTimeCalculator implements PipelineListener, JobListener {
        private long startTime;
        private long nbRecords;
        private long recordProcessingTimesSum;
        @Override
        public Record beforeRecordProcessing(Record record) {
            nbRecords++;
            startTime = System.currentTimeMillis();
            return record;
        }
        @Override
        public void afterRecordProcessing(Record input, Record output) {
            recordProcessingTimesSum += System.currentTimeMillis() - startTime;
        }
        @Override
        public void onRecordProcessingException(Record record, Throwable throwable) {
            recordProcessingTimesSum += System.currentTimeMillis() - startTime;
        }
        @Override
        public void afterJobEnd(JobReport jobReport) {
            jobReport.getMetrics().addMetric(
                "Record processing time average (in ms)",
                 (double)recordProcessingTimesSum / (double)nbRecords);
        }
    }

    合并job的报告

    很多时候我们是并行的运行job,但是需要获取之后的结果,那么可以使用合并报告的功能,代码上
    我们可以通过JobReportMerger 来处理
    参考图

    • 提供的metrics
     
    启动时间(基于最小并性能报告)
    结束时间(基于最大并并行报告)
    总读取record数(并行报告的总和)
    总写入record数(并行写入报告的总和)
    总过滤record数(并行报告过滤的总和)
    总错误record数(并行报告过滤的总和)
    最终的状态(COMPLETED,所有都完成,FAILED有一个失败了)
    最后的名称为job名称的聚合
    • 代码调用
    JobReportMerger reportMerger = new DefaultJobReportMerger();
    JobReport finalReport = reportMerger.mergeReports(report1, report2);

    参考资料

    https://github.com/j-easy/easy-batch/wiki/job-reporting

  • 相关阅读:
    javascript平时小例子③(setInterval使用1)
    javascript平时小例子②(正则表达式验证邮箱)
    javascript平时小例子①(移动的小div)
    Ansible主机清单Inventory文件hosts
    K8s Deployment YAML 名词解释
    Linux自带神器logrotate详解
    Redis性能指标监控
    页面无任何操作30秒后退出1
    java 加法变乘法
    java 九数组分数
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/12730005.html
Copyright © 2011-2022 走看看