【发布时间】:2019-01-02 10:58:07
【问题描述】:
假设我的 Spring 微服务处理数据。每次成功处理事件发生时,对于指标,我都会更新千分尺计数器。这已注册到 Graphite Registry。
registry = new GraphiteMeterRegistry(new GraphiteConfiguration(), Clock.SYSTEM, HierarchicalNameMapper.DEFAULT);
Counter counter = Counter.builder("process").tag("status","success").register(registry);
到目前为止,听起来不错。但是如果我必须创建和部署我的服务的多个实例呢?
如何从所有实例中获取所有成功事件的总计数?
为了进一步说明我的情况,我记录了每次增量时的 counter.count() 值。这是我看到的->
<Instance 1> <time> <package-name> Count :122
<Instance 2> <time> <package-name> Count :53
所以当我在 graphana 上运行石墨查询时 -
process.status.success.count
我倾向于从这些实例中的任何一个中获取随机计数。
我需要的是一个类似的查询 -
process.service-instance.status.success.count
这样我就可以在最后运行一个 summarise() 函数。
更新 现在,我可以通过获取服务实例 ID 从所有实例中获取数据。但这带来了一个新问题 - 由于我一次又一次地重新启动我的服务,并且我的服务 ID 每次都在更改,我如何从 ONLY ACTIVE 服务中获取数据?
Since process.*.status.success.count 表示所有服务的总计数 - 死或活
【问题讨论】:
-
您可以从标签中删除 netflix-eureka。问题与尤里卡无关。
-
您也可以删除 spring-cloud。这个问题中没有特定于 spring-cloud 的内容。
-
按照建议删除标签
标签: grafana graphite micrometer