国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

初識Spring boot監控

2024-07-14 08:40:06
字體:
來源:轉載
供稿:網友

最近對devOps這個話題有點興趣,所以研究了一下monitor相關的開源項目,翻到medium上的一篇文章,而且實際項目中也曾看到devOps組的同事搭過類似的監控,就想過把癮,了解一下監控可視化。

被監控服務配置

本地正好有spring-boot的項目,并且也依賴了jolokia(主要就是為了把JMX的mbean通過HTTP暴露出去)

項目配置也少不了

endpoints: enabled: true jmx:  enabled: true jolokia:  enabled: truemanagement: security:  enabled: false

訪問一下URL看看是不是ok

http://localhost:8080/jolokia/read/org.springframework.boot:name=metricsEndpoint,type=Endpoint/Data

搭建監控系統

如果能看到數據,說明server端配置沒問題了,下面我們怎么搭建Telegraf + InfluxDB + Grafana呢,這個三個組件是這么配合的,Telegraf實際就是收集信息的,比如每隔10s訪問一次上面那個URL得到metrics,收集到的數據存到InfluxDB,然后Grafana做數據可視化。

但是如果純手動安裝實在太麻煩,求助萬能的github,找到一個非常棒的項目(https://github.com/samuelebistoletti/docker-statsd-influxdb-grafana), 直接fork然后修改一些配置就可以為自己的項目服務了。如果你不了解相關配置可以先直接run起來,然后通過ssh進去一探究竟。

ssh root@localhost -p 22022

配置方面,主要是要修改Telegraf的,因為它是對接不同項目的,你需要收集什么樣的信息,比如cpu,disk,net等等都要在Telegraf里配。簡單起見,我只設置了三個輸入。

# /etc/telegraf/telegraf.conf[[inputs.jolokia]] context = "/jolokia"[[inputs.jolokia.servers]] name = "springbootapp" host = "{app ip address}" port = "8080"[[inputs.jolokia.metrics]] name = "metrics" mbean = "org.springframework.boot:name=metricsEndpoint,type=Endpoint" attribute = "Data"[[inputs.jolokia.metrics]] name = "tomcat_max_threads" mbean = "Tomcat:name=/"http-nio-8080/",type=ThreadPool" attribute = "maxThreads"[[inputs.jolokia.metrics]] name = "tomcat_current_threads_busy" mbean = "Tomcat:name=/"http-nio-8080/",type=ThreadPool" attribute = "currentThreadsBusy"

其實就是spring-boot標準的metrics以及tomcat的Threads。

完成之后重啟服務/etc/init.d/telegraf restart

查看監控數據

我們訪問InfluxDB看看有數據了沒有http://localhost:3004/,切換數據庫到Telegraf。輸入以下命令試試吧

SHOW MEASUREMENTSSELECT * FROM jolokiaSELECT * FROM cpuSELECT * FROM memSELECT * FROM diskio

比如輸入SELECT * FROM jolokia就能看到spring-boot暴露了哪些數據,從time列也可以看出Telegraf是每隔10s收集一次,太頻繁了對server也是壓力。

spring,boot,監控

上面基本涵蓋了cpu,內存和存儲的一些metrics。

其實也可以配置網絡相關的,感興趣的可以看官方的telegraf.conf,里面有配置[[inputs.net]]的例子。

數據可視化

數據有了,下一步就是可視化。

按照Github上面說的進入http://localhost:3003/,

Using the wizard click on Add data sourceChoose a name for the source and flag it as DefaultChoose InfluxDB as typeChoose direct as accessFill remaining fields as follows and click on Add without altering other fieldsUrl: http://localhost:8086Database: telegrafUser: telegrafPassword: telegraf

添加好InfluxDB后,新建一個Dashboard,然后快速的ADD幾個Graph來。

為了演示,我添加了三個,分別使用下面三組查詢語句來渲染出三張圖表

SELECT MEAN(usage_system) + MEAN(usage_user) AS cpu_total FROM cpu WHERE $timeFilter GROUP BY time($interval)SELECT mean("total") as "total" FROM "mem" WHERE $timeFilter GROUP BY time($interval) fill(null)SELECT mean("used") as "used" FROM "mem" WHERE $timeFilter GROUP BY time($interval) fill(null)SELECT mean("metrics_heap.used") as "heap_usage" FROM "jolokia" WHERE $timeFilter GROUP BY time($interval) fill(null)

第一張是CPU占用率;第二張是內存占用情況,綠線是Total,黃線是Used;第三張是jolokia提供的jvm heap的使用,可以到看到GC的情況。

spring,boot,監控

剛才還配置了Tomcat的收集,想看Tomcat的Thread情況也是妥妥的。

SELECT mean("tomcat_max_threads") FROM "jolokia" WHERE $timeFilter GROUP BY time($interval) fill(null)SELECT mean("tomcat_current_threads_busy") FROM "jolokia" WHERE $timeFilter GROUP BY time($interval) fill(null)

spring,boot,監控

小結

以上所述是小編給大家介紹的Spring boot監控,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 咸宁市| 海淀区| 梧州市| 山阴县| 防城港市| 肥乡县| 西藏| 太康县| 黄大仙区| 金坛市| 宣城市| 灵璧县| 乌兰察布市| 游戏| 开原市| 惠来县| 大宁县| 思南县| 嫩江县| 延川县| 顺昌县| 易门县| 从江县| 寻甸| 招远市| 大足县| 砚山县| 安化县| 南溪县| 杂多县| 雷波县| 招远市| 柳河县| 潼关县| 广州市| 凤庆县| 湖南省| 侯马市| 静乐县| 清丰县| 临清市|