Привод пружинного ботинка / Метрики микрометра отключены

Есть ли способ отключить некоторые из возвращаемых метрических значений в Actuator / Micrometer? Глядя на них сейчас, я вижу около 1000 и хотел бы сократить их до нескольких избранных, скажем, 100, которые фактически будут отправлены в наш реестр.


person Joel Holmes    schedule 25.01.2018    source источник
comment
Может быть, фильтры Meter могут помочь? micrometer.io/docs/concepts#_meter_filters   -  person Mark    schedule 25.01.2018


Ответы (3)


Измерительные фильтры могут помочь тремя способами, которые обсуждались с каналом провисания микрометра:

  1. Отключение метрик
  2. Комбинирование размеров
  3. Ограничивающий фильтр высокой мощности

Микрометр поставляется со встроенным фильтром счетчика первого типа. Он также поддерживает иерархическое включение / отключение, аналогично тому, как работает ведение журнала (например, если у вас есть счетчик, такой как my.request.total и my.request.latency, вы можете отключить все метрики, начинающиеся с my.request .

Я реализовал свой собственный пример комбинирующего фильтра, который полезен, если у вас есть показатели с высокой мощностью и вы хотите объединить их в новых размерах. Возьмем, к примеру, у вас есть измерение кодов состояния, это позволяет вам комбинировать коды ответов 200, 201, 203 как тег 2xx. Это похоже на поддержку заполнителя в Netflix Spectator. Я хотел бы внести этот код в апстрим, но в настоящее время он довольно нестандартный, поэтому потребуется некоторая работа, чтобы сделать его общедоступным.

Последний тип для перехвата измерений высокой мощности еще не создан, но будет существовать как предохранительный клапан, гарантирующий, что если метрика потенциально может иметь большое количество значений тега, она будет подсчитывать это число. уникальных тегов и после достижения максимального значения либо отключите, либо объедините дополнительные теги в общую корзину, чтобы значение не увеличивалось и не перегружало ваш мониторинг (или не стоило вам много $$$, если вы платите за метрику )

person checketts    schedule 26.01.2018
comment
Я предполагаю, что в ответ на этот вопрос я смог изменить фильтр глобального счетчика с помощью @PostConstruct, но это было неправильно. Есть ли лучший способ или способ переопределить bean-компонент Globabl Registry? - person Joel Holmes; 31.01.2018
comment
Используйте MeterRegistryCustomizer так: @Bean MeterRegistryCustomizer<MeterRegistry> customizer( @Value("${spring.application.name}") String applicationName) { return (registry) -> registry.config().commonTags("application", applicationName); } Будет легче читать в новых вопросах. - person checketts; 01.02.2018
comment
Есть ли способ удалить определенные теги / ярлыки из показателей перед публикацией показателя - person omjego; 28.02.2019
comment
@omjego Задайте это как новый вопрос. В качестве быстрого ответа да: micrometer.io/docs/concepts#_transforming_metrics. См. IgnoreTags - person checketts; 28.02.2019

Позвольте мне пояснить ответ, опубликованный checketts, с несколькими примерами. Вы можете включить / отключить определенные показатели в вашем application.yml следующим образом:

management:
  metrics:
    enable:
      tomcat: true
      jvm: false
      process: false
      hikaricp: false
      system: false
      jdbc: false
      logback: true

Или в коде, определив bean-компонент MeterFilter:

@Bean
public MeterFilter meterFilter() {
    return new MeterFilter() {
        @Override
        public MeterFilterReply accept(Meter.Id id) {
            if(id.getName().startsWith("tomcat.")) {
                return MeterFilterReply.DENY;
            }
            if(id.getName().startsWith("jvm.")) {
                return MeterFilterReply.DENY;
            }
            if(id.getName().startsWith("process.")) {
                return MeterFilterReply.DENY;
            }
            if(id.getName().startsWith("system.")) {
                return MeterFilterReply.DENY;
            }
            return MeterFilterReply.NEUTRAL;
        }
    };
}
person Mzzl    schedule 08.01.2019

Именование свойств в ответе Mzzl изменилось в Spring Boot 2. Например, чтобы отключить показатели JVM, теперь это:

management.metrics.binders.jvm.enabled=false

См. this class для других параметров. Команда Spring снова провела рефакторинг в 2.1.x, и эти внутренние классы фабричных компонентов теперь вынесены в отдельные файлы, но именование свойств остается таким же, как 2.0.x.

person Andy Brown    schedule 26.02.2019