1

用例

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

问题

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

途径途径

1 子类化Histogram

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

2 使用反射

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

想法?

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

4

1 回答 1

2

您不需要 subclass Histogram,因为您不需要使用Histogram.Timer只是因为您的直方图正在测量时间。

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

于 2018-09-19T07:51:14.040 回答