Допустим, мой весенний микросервис обрабатывает данные. Каждый раз, когда происходит успешное событие обработки, для метрик я обновляю счетчик микрометров. Это зарегистрировано в Реестре Графита.
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
Поэтому, когда я запускаю графитовый запрос на графане -
process.status.success.count
Я стремлюсь получить случайный счет в любом из этих случаев.
Мне нужен запрос типа -
process.service-instance.status.success.count
чтобы я мог в итоге запустить функцию summaze ().
Обновление
Теперь я могу получать данные из всех экземпляров, получая идентификатор экземпляра службы. Но это создает новую проблему - поскольку я перезагружаю свои сервисы снова и снова, и мой сервисный идентификатор меняется каждый раз, как я могу получать данные от ТОЛЬКО АКТИВНЫХ сервисов?
Поскольку процесс. *. Status.success.count представляет совокупное количество ВСЕХ служб - живых или неработающих