采用prometheus監(jiān)控springboot項(xiàng)目的應(yīng)用
-
對(duì)于springboot應(yīng)用拔第,需要以下幾個(gè)步驟
springboot應(yīng)用開啟endpoint盘寡,添加actuator的以來和promethus的依賴<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
在yml文件或者properties文件中,加入以下配置:
management: endpoints: jmx: exposure: include: "*" web: exposure: include: "*" metrics: export: datadog: application-key: ${spring.application.name}
這里需要注意是误证,*號(hào)是需要加雙引號(hào)的蛀醉。
以上兩個(gè)步驟完畢后著摔,剩下的就是要加registry了:
@Bean MeterRegistryCustomizer<MeterRegistry> configurer( @Value("${spring.application.name}") String applicationName) { return (registry) -> registry. config(). commonTags("application", applicationName); }
對(duì)于springboot的應(yīng)用绎谦,到此基本完成了。接下來是啟動(dòng)promethus粥脚。
-
配置prometheus
首先要下在prometheus":Prometheus - Monitoring system & time series database"
在下載頁(yè)面窃肠,選擇何時(shí)的版本下載,推薦下載tar.gz包刷允。下載好后冤留,進(jìn)行解壓碧囊。在合適的路徑下即可。
這里介紹下prometheus的目錄和文件:
1纤怒、prometheus采用的都是yml文件的配置方式糯而。
2、在根目錄下泊窘,有個(gè)prometheus.yml配置文件熄驼,文件初始化的內(nèi)容如下:global: scrape_interval: 15s # 這個(gè)是每次數(shù)據(jù)手機(jī)的頻率 evaluation_interval: 15s # 評(píng)估告警規(guī)則的頻率。 rule_files: # - "first.rules" # - "second.rules" scrape_configs: # 通過這里的配置控制prometheus監(jiān)控的資源 - job_name: prometheus # prometheus自身默認(rèn)的 static_configs: - targets: ['localhost:9090'] # 默認(rèn)暴露的是9090端口服務(wù)
global是全局配置烘豹。具體見上面的注釋說明瓜贾。
3、添加我們的應(yīng)用携悯,對(duì)springboot進(jìn)行監(jiān)控
- job_name: 'spring-sample' metrics_path: 'actuator/prometheus' # 這里我們springboot暴露出來的endpoint scrape_interval: 5s # 信息收集時(shí)間是間隔5秒 static_configs: - targets: ['localhost:8778'] # 這里是springboot暴露出來的地址和端口
4祭芦、這些配置完成后,可以啟動(dòng)prometheus憔鬼,./prometheus --config.file=prometheus.yml龟劲,服務(wù)即可啟動(dòng)。具體訪問產(chǎn)檢官網(wǎng)轴或。
配置grafana
下載grafana昌跌,直接啟動(dòng)即可。
1侮叮、啟動(dòng)命令參見官網(wǎng):./grafana-server web
2避矢、配置datasource,選擇prometheus囊榜。這個(gè)里面有個(gè)很重要的注意點(diǎn)审胸,我看網(wǎng)上很多人在轉(zhuǎn)如何用prometheus監(jiān)控springboot應(yīng)用,估計(jì)自己沒去實(shí)際搭建卸勺,在interval這個(gè)時(shí)間上砂沛,默認(rèn)是數(shù)字,比如15,代表是15秒曙求。在添加dashboard的時(shí)候碍庵,會(huì)發(fā)現(xiàn)監(jiān)控圖標(biāo)左上角是個(gè)紅點(diǎn),報(bào)錯(cuò):Invalid interval string, expecting a number followed by one of "Mwdhmsy" 悟狱,這個(gè)錯(cuò)的解決方案就是在這些時(shí)間間隔后面加個(gè)"s"静浴。問題解決。
3挤渐、選擇dashboard苹享,import的里輸入一個(gè)模板,可以去dashboards去找你對(duì)應(yīng)的模板浴麻,我們這里選用jvm的4701模板得问,然后就能看到你的springboot的監(jiān)控信息了囤攀。到此,整個(gè)搭建完成宫纬。