最近優(yōu)化grafana視圖,發(fā)現(xiàn)有些新grafana視圖,在老版6.x兼容不是很好,想著把監(jiān)控全家桶升級下:
grafana v6.3 升級到 grafana v7.1.5。
prometheus v2.12.0 升級到 Prometheus v2.20.1。
alertmanager v 0.14.0 升級到alertmanager v0.21.0。
果斷備份數(shù)據(jù)操作升級,一切都比較正常,使用原來的數(shù)據(jù)全部啟動成功,查看grafana視圖基本顯示正常,就是有些樣式發(fā)生了變化,檢查中發(fā)現(xiàn)jvm監(jiān)控視圖沒有數(shù)據(jù)。
查看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\"})"
以為是版本變更后,配置變化造成的問題,在看了官方文檔后,發(fā)現(xiàn)配置文件并沒有特別需要變動的地方,再次回退prometheus到v2.12.0 ,啟動成功。
Google一通才發(fā)現(xiàn)是eureka-consul-adapter 是沒有提供 Consul 的 health 類端口的,所以會出現(xiàn)404,日志顯示的很清楚了path /v1/health/service/BMS 404。
由于項目使用的spring-boot1.5.x ,eureka-consul-adapter只能使用0.0.1,而eureka-consul-adapter需要升級到1.4.0才有health端口。
經(jīng)過測試,eureka-consul-adapter不升級的情況,prometheus支持的最高版本是 v2.16.0。
不過prometheus最新的測試版本v2.21.0-rc.0 ,已經(jīng)支持eureka discovery,不過在使用v2.21.0-rc.0測試的時候提示不支持eureka,報錯“prometheus field services not found in type eureka.plain”,只有等到下一個穩(wěn)定版再升級測試eureka discovery。官網(wǎng)配置文件已經(jīng)新增eureka_sd_configs:
- job_name: service-eureka eureka_sd_configs: - server: 'http://eureka.example.com:8761/eureka'