В настоящее время я работаю над решением для установки меток метрик для отказоустойчивой структуры микропрофиля. Мы используем его вместе с метриками, но нельзя напрямую устанавливать теги через отказоустойчивые аннотации.
Поэтому мы придумали обходной путь, установив значение ThreadLocal
через Interceptor, которое затем считывается пользовательским ConfigSource
. ConfigSource
проверяет ключи конфигурации "mp.metrics.tags"
и "MP_METRICS_TAGS"
в своем методе getValue(final String propertyName)
. В основном это сработало бы, если бы getValue
вызывался каждый раз при обработке аннотации отказоустойчивости. Но похоже, что это не так, и вызовы метода происходят случайным образом.
По моему мнению, ConfigSources и их getValue(final String propertyName)
должны вызываться всегда, поскольку разработчик может полагаться на значения конфигурации, которые могут меняться каждую секунду.
Любые идеи, почему источник конфигурации не вызывается?