内容简介:基本都是要用 SpringBoot2 了啊, 就不要想問 1.x 版了actuator 是 SpringBoot 提供管理與監控的基礎套件micrometer-registry-prometheus 則是將 Spring 的監控資訊轉成 Prometheus 可以吃的格式
基本都是要用 SpringBoot2 了啊, 就不要想問 1.x 版了
SpringBoot
1.增加套件依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
actuator 是 SpringBoot 提供管理與監控的基礎套件
micrometer-registry-prometheus 則是將 Spring 的監控資訊轉成 Prometheus 可以吃的格式
2.配置
management: endpoints: web: exposure: include: '*' endpoint: shutdown: enabled: false
Spring 預設只暴露兩個 監控指標 health 跟 info, 如果沒有太多考量的話可以用 * 來暴露所有的
3.重新打包
Done!
Spring 的部分就結束了
你可以實際測試一下監控點
curl -X GET \ http://127.0.0.1:8080/actuator/prometheus
得到會是這樣的資料
# HELP jvm_buffer_count An estimate of the number of buffers in the pool # TYPE jvm_buffer_count gauge jvm_buffer_count{id="direct",} 1.0 jvm_buffer_count{id="mapped",} 0.0 # HELP http_server_requests_seconds # TYPE http_server_requests_seconds summary
Prometheus
接下來需要 Prometheus 來把監控數據拉回去儲存
1.配置檔
首先你必須準備個 prometheus.yml 配置檔
# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'springboot' metrics_path: '/actuator/prometheus' static_configs: - targets: ['127.0.0.1:8080']
這是最簡單的範例, 也不做 alert 了, 交給 Grafana 處理就好, 很多服務就 job_name 一直往下加就可以了
2.啟動
直接啟動
docker run -p 9090:9090 -v /Users/sam/temp/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
需要儲存數據 要先把要掛進去的資料夾處理一下
sudo chown -R 65534 /prometheus/data
再啟動
docker run -d -p 9090:9090 \ -v /prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \ -v /prometheus/data:/prometheus \ prom/prometheus --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml
Grafana
Grafana 我就沒有自己建, 要自己建立的話在網路找一下吧
要使用我們剛剛建立的 Prometheus 數據
1.增加數據源
Configuration -> Add data source
2.新增面板
在 https://grafana.com/dashboards 搜尋 spring 或是 jvm
都有人做好現成的, 只要複製 dashboard id
在左邊列表選 Create → Import 輸入你要的 id , 再選一下 Prometheus data source
立馬完成一個功能齊全的監控中心啊
https://i.imgur.com/TETvXdo.png以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 欢迎加入 Cassandra 技术社区
- 不要为了期权加入创业公司,不值得
- 微软加入 OpenJDK,向 Java 靠拢
- Keka 1.2.11 发布,加入终端支持
- 重新安装MySQL并加入MGR集群
- 直播SDK加入GPU自定义美颜
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
人人都是产品经理——写给产品新人
苏杰 / 电子工业出版社 / 2017-6 / 66.60
《人人都是产品经理——写给产品新人》为经典畅销书《人人都是产品经理》的内容升级版本,和《人人都是产品经理2.0——写给泛产品经理》相当于上下册的关系。对于大量成长起来的优秀互联网产品经理、众多想投身产品工作的其他岗位从业者,以及更多有志从事这一职业的学生而言,这《人人都是产品经理——写给产品新人》曾是他们记忆深刻的启蒙读物、思想基石和行动手册。作者以分享经历与体会为出发点,以“朋友间聊聊如何做产品......一起来看看 《人人都是产品经理——写给产品新人》 这本书的介绍吧!