Как исключить Hystrix Metrics из конечной точки Actuator/metrics?

У меня есть приложение spring-boot с включенными Actuator и Hystrix.
Spring-Boot-Version: 1.3.1.RELEASE

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>

Когда я добавляю @HystrixCommandк некоторым методам, /metrics конечная точка показывает все метрики из hystrix:

gauge.hystrix.HystrixCommand.RestEndpoints.TestController.test.errorPercentage: 0,
gauge.hystrix.HystrixThreadPool.RestEndpoints.rollingMaxActiveThreads: 1,
...

Вопрос.
Как полностью исключить hystrix-метрики из /metricsendpoint?


Обновление 1
Я попытался исключить ServoMetrics и SpectatorMetrics с помощью следующих подходов:

1)

@EnableAutoConfiguration(exclude={ServoMetricsAutoConfiguration.class,
 SpectatorMetricsAutoConfiguration.class} )

2)

@SpringBootApplication(exclude={ServoMetricServices.class, SpectatorMetricServices.class})

Но оба не добились желаемого эффекта.


person Mike Boddin    schedule 20.01.2016    source источник
comment
В настоящее время нет способа исключить их, если только вы не исключите com.netflix.hystrix:hystrix-metrics-event-stream из своих зависимостей, что также приведет к тому, что /hystrix.stream перестанет работать.   -  person spencergibb    schedule 20.01.2016
comment
@spencergibb Спасибо за разъяснения. Очень жаль... Это могло бы стоить запроса функции...   -  person Mike Boddin    schedule 20.01.2016
comment
сделано, см. мой новый ответ.   -  person spencergibb    schedule 20.01.2016
comment
Вау, это было быстро! Спасибо тысячу раз!   -  person Mike Boddin    schedule 21.01.2016


Ответы (2)


Эта ошибка была создана и исправлена. В снимках теперь можно установить следующее: hystrix.metrics.enabled=false.

person spencergibb    schedule 20.01.2016
comment
эффективно установить этот параметр в коде/конфигурации Spring не очень просто. Но установка его как системной переменной работает нормально. - person Gaurava Agarwal; 14.02.2018

Если вам не нужны никакие другие показатели, лучшим решением будет создание собственного MetricsRegistry. Таким образом, любые другие будущие изменения кода (добавление дополнительных банок с дополнительными встроенными метриками) не повлияют.

@Configuration
public class MetricsConfiguration {

  private MetricRegistry metricRegistry;

  MetricsConfiguration() {
    //avoid other metrics already registered
    metricRegistry = new MetricRegistry();
  }

}

Примечание. Создание @Bean типа MetricRegistry не поможет, поскольку автоконфигурация Spring будет использовать этот объект Bean вместо MetricsRegistry object from MetricsDropwizardAutoConfiguration.java.

person Gaurava Agarwal    schedule 14.02.2018