2

我是使用 Micrometer 的新手,我想看看是否有一种方法可以使用 Timer,它还包括批处理场景中项目数的计数。由于我正在使用 Java 流处理批处理,因此我没有看到一种明显的方法来记录每个处理的项目的计时器,因此我正在寻找一种设置批处理大小属性的方法。我认为可行的一种方法是使用https://micrometer.io/docs/concepts#_function_tracking_timers中的 FunctionTimer ,但我认为这需要应用程序为总计数和总时间保持一组持续单调递增的值.

有没有更简单的方法可以做到这一点?最终,这些数据将被提供给 New Relic。我也尝试为批量大小设置标签,但这些标签似乎被报告为字符串,所以我不能对这些值进行任何类型的聚合。

谢谢!

4

1 回答 1

0

计时器旨在测量一个动作,并且至少会产生两个测量结果:计数和持续时间。

因此,计时器将非常适合您的批处理。在 java 流中,peek操作可能是放置计时器的好地方。

如果您要处理 20 个元素,而您只是测量所有 20 个元素的时间,则需要创建一个新元素Counter来测量批量大小。您可以将计时器的总持续时间与您的计数器相除以获得每个项目的持续时间,或者将其除以计时器的总计数以获得每批次的持续时间。

如果您想获得反馈,请随意添加代码片段。

于 2019-04-19T17:36:12.893 回答