Prometheus 报错 Error refreshing service Unexpected response code: 503 解决办法

105 篇文章 135 订阅

现状

使用 Prometheus 通过 consul 对 springboot 微服务实例指标进行采集,然后准备显示到指标图中,主要包括了如下几个步骤:

  1. 微服务仍然使用的是 eureka,因 Prometheus 仅支持 consul 自动发现微服务实例,所以对 eureka 集成了 consul。
  2. 微服务 springboot 添加 Prometheus 依赖。
  3. Prometheus 添加基于 consul 的采集配置(连接到 eureka)。
  4. 启动 Prometheus 采集指标,出现了本文标题的错误。

本文只简单列举引入的 jar 依赖,不包括具体的配置,主要用来陈述出现该错误的原因和解决办法。

相关依赖版本

  1. eureka 添加 consul 依赖
<!-- Prometheus 官方文档上只提供了对consul的支持,为了让 Prometheus 能自动服务发现而使用的组件 -->
<dependency>
	<groupId>at.twinformatics</groupId>
	<artifactId>eureka-consul-adapter</artifactId>
</dependency>
  1. springboot 添加 Prometheus 依赖
<!-- prometheus -->
<dependency>
	<groupId>io.micrometer</groupId>
	<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
  1. prometheus 添加 scrape 配置
- job_name: 'shanhy-springboot-service1'
  scheme: http
  metrics_path: '/shanhy-springboot-service1/actuator/prometheus'
  consul_sd_configs:
    - server: '192.168.1.120:8761'
      datacenter: 'default'
      scheme: http
      services: ['SHANHY_SPRINGBOOT_SERVICE1']
  relabel_configs:
    - source_labels: [job]
      target_label: application

错误原因

通过查看 eureka-consul-adapter 源码可知,eureka 在集成 eureka-consul-adapter 后,eureka-consul-adapter 中使用了 Async 异步请求,这里如果你不做任何配置,会出现超时错误,也就是标题的 503 错误。

解决办法

增加异步请求超时时间,你可以设置很大的值或者设置 -1 不超时。

#异步请求超时时间设置,-1 为不超时,主要为了解决 Prometheus 通过eureka采集指标数据503问题。
spring.mvc.async.request-timeout=-1

转载至https://blog.csdn.net/catoop/article/details/109800071

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值