最近优化grafana视图,发现有些新grafana视图,在老版6.x兼容不是很好,想着把监控全家桶升级下:
grafana v6.3 升级到 grafana v7.1.5。
prometheus v2.12.0 升级到 Prometheus v2.20.1。
alertmanager v 0.14.0 升级到alertmanager v0.21.0。
果断备份数据操作升级,一切都比较正常,使用原来的数据全部启动成功,查看grafana视图基本显示正常,就是有些样式发生了变化,检查中发现jvm监控视图没有数据。
查看prometheus日志报错:
prometheus | level=error ts=2020-09-01T10:30:35.514Z caller=consul.go:487 component="discovery manager scrape" discovery=consul msg="Error refreshing service" service=ZYSY-EXPORT tags= err="Unexpected response code: 404 ({\"timestamp\":1598956235514,\"status\":404,\"error\":\"Not Found\",\"message\":\"No message available\",\"path\":\"/v1/health/service/BMS\"})"
以为是版本变更后,配置变化造成的问题,在看了官方文档后,发现配置文件并没有特别需要变动的地方,再次回退prometheus到v2.12.0 ,启动成功。
Google一通才发现是eureka-consul-adapter 是没有提供 Consul 的 health 类端口的,所以会出现404,日志显示的很清楚了path /v1/health/service/BMS 404。
由于项目使用的spring-boot1.5.x ,eureka-consul-adapter只能使用0.0.1,而eureka-consul-adapter需要升级到1.4.0才有health端口。
经过测试,eureka-consul-adapter不升级的情况,prometheus支持的最高版本是 v2.16.0。
不过prometheus最新的测试版本v2.21.0-rc.0 ,已经支持eureka discovery,不过在使用v2.21.0-rc.0测试的时候提示不支持eureka,报错“prometheus field services not found in type eureka.plain”,只有等到下一个稳定版再升级测试eureka discovery。官网配置文件已经新增eureka_sd_configs:
- job_name: service-eureka eureka_sd_configs: - server: 'http://eureka.example.com:8761/eureka'