TakashiKazuta 2021-06-21 14:11 采纳率: 100%
浏览 610
已采纳

Micrometer Prometheus Gauge 创建自定义指标显示为NaN

 

用的 Srping Boot Batch  的 application

想创建一个自定义的指标 

report.download.batch.job.ng.slo.flag

batch的入口

final int NG_FLAG = 1;
final int OK_FLAG = 0;

@Scheduled(cron = "0 0 6 * * *")
public void perform() throws Exception {
...
setSloCustomMetrics();
}

自定义指标的函数

private void setSloCustomMetrics() {
    LocalTime time = LocalTime.now();
    // the time as seconds of day from this LocalTime
    int toSecondEndTime = time.toSecondOfDay();
    String todayDate = today();
    String nowTime = String.valueOf(toSecondEndTime);

    AtomicInteger isNotCompletedBeforeSLO = new AtomicInteger();

    Gauge.builder("report.download.batch.job.ng.slo.flag", isNotCompletedBeforeSLO, AtomicInteger::get)
            .description("The identifier that the SLO goal was not accomplished")
            .tags("date", todayDate)
            .tags("time", nowTime)
            .register(Metrics.globalRegistry);

    // after 10 A.M. '1' output
    if (toSecondEndTime > 60 * 60 * 10) {
      isNotCompletedBeforeSLO.set(NG_FLAG);
    } else {
      isNotCompletedBeforeSLO.set(OK_FLAG);
    }
  }

但是取到的值是 NaN

每次batch启动后都可以得到值,但过了段时间就NaN了

原因是 weak reference

可是系统内存的原因 不可以用 Gauge 自己的 strongreference(true) 

在这种情况下 该怎么办呢 谢谢了 

report_download_batch_job_ng_slo_flag{date="20210621",env="current",instance="batch-report-current#0",job="report_batch_micrometer",label="report_batch",space_id="8880d959-0e0f-4f44-8c62-c73f6ed55eda",time="53419"} NaN
report_download_batch_job_ng_slo_flag{date="20210621",env="current",instance="batch-report-current#0",job="report_batch_micrometer",label="report_batch",space_id="8880d959-0e0f-4f44-8c62-c73f6ed55eda",time="53514"} 0
  • 写回答

2条回答 默认 最新

  • 有问必答小助手 2021-06-24 19:33
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,目前超出我们的服务范围,暂时无法为您解答。

    首次提问人员可免费体验一次有问必答服务。目前首次提问的问题服务范围为:编程语言、Java开发、python、数据库、前端开发 领域专业技术问题,为您提供问题的解决思路和指导。不提供源码代写、项目文档代写、论文代写、作业代写、安装包资源发送或安装、软件使用指导等服务。

    我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题