设置直方图样本的开始时间
Set start-time for histogram sample
用例
我们在数据库中存储了多个更改日志,并希望创建一个直方图来监控更改之间的持续时间。
问题
似乎没有办法设置 Historgram.Timer
的开始时间,例如我们想将它设置为 lastUpdated
给定当前的更新日志。
接近路径
1 子类化 Histogram
应该可以。然而 java-lib 广泛使用 protected
/package-private
,因此如果不复制库的大部分就很难做到。
2 使用反射
创建 Histogram.Timer
后,应该可以使用反射来设置 start
字段。该字段标记为 private final
,因此 SecurityManager 可能会在某些环境中阻止我们。
想法?
这两种解决方案似乎都不是正确的方法,我怀疑我忽略了一个更简单的解决方案(但可以在 SO 或 google 找到任何东西)。我们正在使用 grafana 可视化我们的指标,如果这对这种情况有帮助的话。
您不需要子类化 Histogram
,因为您不需要使用 Histogram.Timer
只是因为您的直方图正在测量时间。
每次在数据库中记录新更改时只需调用 myHistogram.observe(System.now() - lastUpdated)
。
用例
我们在数据库中存储了多个更改日志,并希望创建一个直方图来监控更改之间的持续时间。
问题
似乎没有办法设置 Historgram.Timer
的开始时间,例如我们想将它设置为 lastUpdated
给定当前的更新日志。
接近路径
1 子类化 Histogram
应该可以。然而 java-lib 广泛使用 protected
/package-private
,因此如果不复制库的大部分就很难做到。
2 使用反射
创建 Histogram.Timer
后,应该可以使用反射来设置 start
字段。该字段标记为 private final
,因此 SecurityManager 可能会在某些环境中阻止我们。
想法?
这两种解决方案似乎都不是正确的方法,我怀疑我忽略了一个更简单的解决方案(但可以在 SO 或 google 找到任何东西)。我们正在使用 grafana 可视化我们的指标,如果这对这种情况有帮助的话。
您不需要子类化 Histogram
,因为您不需要使用 Histogram.Timer
只是因为您的直方图正在测量时间。
每次在数据库中记录新更改时只需调用 myHistogram.observe(System.now() - lastUpdated)
。