如何从 Actuator /metrics 端点中排除 Hystrix Metrics?
How to exclude Hystrix Metrics from the Actuator /metrics endpoint?
我有一个启用了 Actuator 和 Hystrix 的 spring-boot-app。
Spring-引导版本: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,
...
问题:
如何从 /metrics
端点完全排除 hystrix-metrics?
更新 1
我试图用这些方法排除 ServoMetrics 和 SpectatorMetrics:
1)
@EnableAutoConfiguration(exclude={ServoMetricsAutoConfiguration.class,
SpectatorMetricsAutoConfiguration.class} )
2)
@SpringBootApplication(exclude={ServoMetricServices.class, SpectatorMetricServices.class})
但是两者都没有达到预期的效果
此 issue 已创建并修复。在快照中,您现在可以设置以下内容:
hystrix.metrics.enabled=false
.
如果您不需要任何其他指标,更好的解决方案是创建您自己的 MetricsRegistry。这样,任何其他未来的代码更改(添加更多带有更多内置指标的 jar)都不会影响。
@Configuration
public class MetricsConfiguration {
private MetricRegistry metricRegistry;
MetricsConfiguration() {
//avoid other metrics already registered
metricRegistry = new MetricRegistry();
}
}
注意:创建 MetricRegistry 类型的 @Bean 没有帮助,因为 Spring 自动配置将使用此 Bean 对象而不是 MetricsRegistry object from MetricsDropwizardAutoConfiguration.java
我有一个启用了 Actuator 和 Hystrix 的 spring-boot-app。
Spring-引导版本: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,
...
问题:
如何从 /metrics
端点完全排除 hystrix-metrics?
更新 1
我试图用这些方法排除 ServoMetrics 和 SpectatorMetrics:
1)
@EnableAutoConfiguration(exclude={ServoMetricsAutoConfiguration.class,
SpectatorMetricsAutoConfiguration.class} )
2)
@SpringBootApplication(exclude={ServoMetricServices.class, SpectatorMetricServices.class})
但是两者都没有达到预期的效果
此 issue 已创建并修复。在快照中,您现在可以设置以下内容:
hystrix.metrics.enabled=false
.
如果您不需要任何其他指标,更好的解决方案是创建您自己的 MetricsRegistry。这样,任何其他未来的代码更改(添加更多带有更多内置指标的 jar)都不会影响。
@Configuration
public class MetricsConfiguration {
private MetricRegistry metricRegistry;
MetricsConfiguration() {
//avoid other metrics already registered
metricRegistry = new MetricRegistry();
}
}
注意:创建 MetricRegistry 类型的 @Bean 没有帮助,因为 Spring 自动配置将使用此 Bean 对象而不是 MetricsRegistry object from MetricsDropwizardAutoConfiguration.java