设置直方图样本的开始时间

时间:2018-09-18 06:47:18

标签: grafana prometheus prometheus-java

用例

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

问题

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

进场途径

1子类化Histogram

应该工作。但是,java-lib广泛使用protected / package-private,因此很难复制大部分库。

2使用反射

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

想法?

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

1 个答案:

答案 0 :(得分:1)

您不需要继承Histogram,因为您的直方图用于测量时间,因此不需要使用Histogram.Timer

每次在数据库中记录新更改时,只需调用myHistogram.observe(System.now() - lastUpdated)