Я использую микрометр для экспорта данных по потреблению API сторонних производителей. Теперь я хочу точно подсчитать ошибочные запросы и экспортировать идентификаторы каждого неудачного запроса. Вызов метода ниже для каждого restTemplate вызова обмена.
private DistributionSummary incFailedCounter(String requestId) {
this.registry = beanProvider.getRegistry();
DistributionSummary summary = summarys.get(myCounter);
if (summary == null) {
Builder tags = DistributionSummary.builder("failed.test").tags("req_id", requestId, "count", "1");
summary = tags.register(registry);
summarys.put(myCounter, summary);
} else {
String tag = summary.getId().getTag("req_id");
String[] split = tag.split(",");
summary.close();
summarys.put(myCounter,
DistributionSummary.builder("failed.test")
.tags("req_id", tag + ", " + requestId, "count", String.valueOf(split.length + 1))
.register(registry));
}
return summary;
}
Этот код вставляет новую строку в metri c для каждого запроса.
failed_test_count{count="1",instance="localhost:8080",job="monitor-app",req_id="1157408321"}
failed_test_count{count="2",instance="localhost:8080",job="monitor-app",req_id="1157408321, 1157408321"}
failed_test_count{count="3",instance="localhost:8080",job="monitor-app",req_id="1157408321, 1157408321, 1157408321"}
Проблема заключается в следующем Размер metri c увеличивается со многими запросами. Есть ли способ удалить или заменить один и тот же тег и экспортировать только одну динамику c metri c с обновленными req_ids?