Исключение MeterRegistry IllegalArgumentException

#java #spring-boot #micrometer #spring-micrometer

#java #весенняя загрузка #микрометр #пружина-микрометр

Вопрос:

Я использую MeterReigstry для отправки метрик для опроса Prometheus. Однако, когда я добавляю динамические теги, я получаю следующее исключение:

 java.lang.IllegalArgumentException: Prometheus requires that all meters with the same name have the same set of tag keys. There is already an existing meter named 'execution_time_seconds' containing tag keys [a, e, b, c, d]. The meter you are attempting to register has keys [a, b, c, d, f].
  

Что является причиной этого? Как это можно решить? Я использую

 <dependency> 
<groupId>io.micrometer</groupId> 
<artifactId>micrometer-spring-legacy</artifactId> 
<version>1.3.2</version> 
</dependency>
  

Ответ №1:

Я считаю, что это ограничение от базового клиента prometheus. Все измерения одной метрики должны иметь одинаковый набор тегов.

https://github.com/micrometer-metrics/micrometer/issues/877#issuecomment-425102772

Решением было бы гарантировать, что все измерения этой метрики содержат один и тот же набор тегов. Если это не вариант, вы можете рассмотреть возможность использования другого серверной части metrics.