我花了一些时间阅读micrometer.io
的Counter
。对于我的特定用例,我需要始终使用在应用程序启动时可用的特定值来启动计数器。
由于应用程序有多个pod,我希望设置这个inital值,然后可以增加任意数量的pod。Counter
唯一支持的方法是递增。我曾想过使用Gauge
,但有各种缺点,因为我的度量始终是一个具有起始集值的无界增量计数器。
以前有人解决过这个用例吗?或者有解决方法吗?
您可以在启动时使用任意值的increment
和Counter
,但我不建议这样做:
- 将作为数据增量进行注册和发布
- 每次重新启动应用程序时都会发生这种情况
- 这样的
Counter
会欺骗你,因为你看不到增量的数量,而是其他的东西
你能告诉我们你的用例吗?根据你所说的,我认为你不需要计数器的初始值,而是在你的运行实例中添加某种实例id(例如:pod名称(,并在你的度量后端聚合这些(求和(。
正如@Jonatan所提到的:在这种情况下,您将使用Gauge。您甚至可以创建一个仪表,指向更新的实例变量。
这样,您就可以在启动时将实例变量设置为一个值,并在后台更新它以查询数据库。我在查询太慢的地方使用这种技术,所以我不希望它发生在度量刮擦期间。