Есть ли способ отключить некоторые из возвращаемых метрических значений в Actuator / Micrometer? Глядя на них сейчас, я вижу около 1000 и хотел бы сократить их до нескольких избранных, скажем, 100, которые фактически будут отправлены в наш реестр.
Привод пружинного ботинка / Метрики микрометра отключены
Ответы (3)
Измерительные фильтры могут помочь тремя способами, которые обсуждались с каналом провисания микрометра:
- Отключение метрик
- Комбинирование размеров
- Ограничивающий фильтр высокой мощности
Микрометр поставляется со встроенным фильтром счетчика первого типа. Он также поддерживает иерархическое включение / отключение, аналогично тому, как работает ведение журнала (например, если у вас есть счетчик, такой как my.request.total
и my.request.latency
, вы можете отключить все метрики, начинающиеся с my.request
.
Я реализовал свой собственный пример комбинирующего фильтра, который полезен, если у вас есть показатели с высокой мощностью и вы хотите объединить их в новых размерах. Возьмем, к примеру, у вас есть измерение кодов состояния, это позволяет вам комбинировать коды ответов 200, 201, 203 как тег 2xx
. Это похоже на поддержку заполнителя в Netflix Spectator. Я хотел бы внести этот код в апстрим, но в настоящее время он довольно нестандартный, поэтому потребуется некоторая работа, чтобы сделать его общедоступным.
Последний тип для перехвата измерений высокой мощности еще не создан, но будет существовать как предохранительный клапан, гарантирующий, что если метрика потенциально может иметь большое количество значений тега, она будет подсчитывать это число. уникальных тегов и после достижения максимального значения либо отключите, либо объедините дополнительные теги в общую корзину, чтобы значение не увеличивалось и не перегружало ваш мониторинг (или не стоило вам много $$$, если вы платите за метрику )
MeterRegistryCustomizer
так: @Bean MeterRegistryCustomizer<MeterRegistry> customizer( @Value("${spring.application.name}") String applicationName) { return (registry) -> registry.config().commonTags("application", applicationName); }
Будет легче читать в новых вопросах.
- person checketts; 01.02.2018
Позвольте мне пояснить ответ, опубликованный 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;
}
};
}
Именование свойств в ответе Mzzl изменилось в Spring Boot 2. Например, чтобы отключить показатели JVM, теперь это:
management.metrics.binders.jvm.enabled=false
См. this class для других параметров. Команда Spring снова провела рефакторинг в 2.1.x
, и эти внутренние классы фабричных компонентов теперь вынесены в отдельные файлы, но именование свойств остается таким же, как 2.0.x
.