【问题标题】:Set start-time for histogram sample设置直方图样本的开始时间
【发布时间】:2019-02-22 03:06:45
【问题描述】:

用例

我们在数据库中存储了多个更改日志,并希望创建一个直方图来监控更改之间的持续时间。

问题

似乎没有办法设置Historgram.Timer 的开始时间,例如,我们希望根据当前的更改日志将其设置为lastUpdated。

途径

1 子类化Histogram

应该可以。然而,java-lib 广泛使用protected/package-private,因此在不复制大部分库的情况下会变得很困难。

2 使用反射

创建Histogram.Timer 后,应该可以使用反射来设置start 字段。该字段被标记为private final,因此SecurityManager 可以在某些环境中阻止我们。

想法?

这两种解决方案似乎都不是正确的方法,我怀疑我忽略了一个更简单的解决方案(但可以在 SO 或谷歌找到任何东西)。我们正在使用 grafana 来可视化我们的指标,如果这在这种情况下有帮助的话。

【问题讨论】:

    标签: grafana prometheus prometheus-java


    【解决方案1】:

    您不需要子类化Histogram,因为您不需要使用Histogram.Timer,因为您的直方图测量的是时间。

    每次您在数据库中记录新的更改时,只需致电myHistogram.observe(System.now() - lastUpdated)。

    【讨论】:

    • 谢谢,我发帖后其实想通了,但忘记关闭这个帖子了。不管怎样,我现在就把帖子留给她。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    相关资源
    最近更新 更多