2

我有两个服务,ping并且pongwhereping将请求发送到pong. 此指标显示在服务的/metrics端点上ping

gauge.servo.hystrix.hystrixcommand.http://pong.pongclient#hello().90

但它不会出现在/prometheus端点上。其他指标出现在此端点上,但没有包含有关 Feign/Hystrix http 请求信息的伺服指标。

如何让这些指标出现在/prometheus端点上?

我对我的以下依赖项build.gradle

compile 'org.springframework.boot:spring-boot-starter-web'
compile 'org.springframework.boot:spring-boot-starter-actuator'
compile 'org.springframework.cloud:spring-cloud-starter-eureka'
compile 'org.springframework.cloud:spring-cloud-starter-hystrix'
compile 'org.springframework.cloud:spring-cloud-starter-feign'
compile 'org.springframework.retry:spring-retry'
compile "io.micrometer:micrometer-core:${micrometerVersion}"
compile "io.micrometer:micrometer-spring-legacy:${micrometerVersion}"
compile "io.micrometer:micrometer-registry-prometheus:${micrometerVersion}"

有以下版本

springCloudVersion = 'Dalston.SR4'
micrometerVersion = '1.0.0-rc.4'

代码可以在这里找到https://github.com/fiunchinho/spring-resiliency

4

3 回答 3

4

您需要手动添加 Hystrix 的插件:

HystrixPlugins.getInstance().registerMetricsPublisher(new MicrometerMetricsPublisher(Metrics.globalRegistry));

您可以将其添加到@PostConstruct配置中。

我创建了https://github.com/micrometer-metrics/micrometer/issues/237来解决未来的缺点。

于 2017-11-19T19:07:03.903 回答
0

checketts 的回答对我不起作用,并java.lang.IllegalStateException: Another strategy was already registered.在启动时抛出了一个问题,但是添加了 HystrixMetricsBinder bean,它在内部或多或少地做同样的事情,起到了作用。

@Configuration
public class MetricsConfig {

  @Bean
  HystrixMetricsBinder registerHystrixMetricsBinder() {
    return new HystrixMetricsBinder();
  }
}

取自https://stackoverflow.com/a/52740957/60518

于 2021-10-01T14:00:41.753 回答
-1

您需要检测和配置 Spring Boot 服务以使用 Prometheus 进行监控,如下所示:

  1. 您需要在 gradle.build 文件中包含一个依赖项
  2. 您需要实现 Metric 端点
  3. 您需要从 Prometheus JVM 添加标准导出器

有关如何执行此操作的更多实施细节,请参见此处此处的示例

于 2017-11-19T18:38:23.207 回答