可觀測(cè)性實(shí)踐:HUIZHI-ChargeOS-cloud集成SpringBoot Admin與SkyWalking監(jiān)控方案)
系統(tǒng)可觀測(cè)性實(shí)踐HUIZHI-ChargeOS-cloud集成SpringBoot Admin與SkyWalking監(jiān)控方案【免費(fèi)下載鏈接】HUIZHI-ChargeOS-cloud??慧知開(kāi)源充電平臺(tái)全套源碼??;??完整業(yè)務(wù)流程?? ①SpringCloud、MySQL、Netty、uniapp、云快充協(xié)議1.5 云快充協(xié)議1.6、互聯(lián)互通協(xié)議、多租戶、分時(shí)計(jì)費(fèi)。 ②小程序、管理后臺(tái)、多商戶、模擬樁。 ③充電平臺(tái)技術(shù)解決方案。項(xiàng)目地址: https://gitcode.com/gh_mirrors/hu/HUIZHI-ChargeOS-cloud慧知開(kāi)源充電樁平臺(tái)HUIZHI-ChargeOS-cloud是一套基于 Spring Cloud 微服務(wù)架構(gòu)的全開(kāi)源充電運(yùn)營(yíng)平臺(tái)涵蓋網(wǎng)關(guān)、認(rèn)證、系統(tǒng)、運(yùn)營(yíng)、模擬樁、小程序等十余個(gè)微服務(wù)模塊。微服務(wù)拆分之后一次充電請(qǐng)求往往要跨多個(gè)服務(wù)排查問(wèn)題、定位瓶頸變得異常困難因此可觀測(cè)性監(jiān)控 鏈路追蹤成為平臺(tái)穩(wěn)定運(yùn)行的基石。本文將帶你了解慧知充電平臺(tái)如何通過(guò)集成 SpringBoot Admin 與 Apache SkyWalking構(gòu)建一套從服務(wù)健康、資源指標(biāo)到全鏈路調(diào)用追蹤的完整監(jiān)控方案非常適合正在做微服務(wù)監(jiān)控選型的開(kāi)發(fā)者參考。為什么微服務(wù)架構(gòu)離不開(kāi)可觀測(cè)性單體應(yīng)用時(shí)代問(wèn)題定位通??匆环萑罩揪蛪蛄硕⒎?wù)架構(gòu)下一次充電訂單的完整流程可能經(jīng)過(guò)hcp-gateway → hcp-auth → hcp-system → hcp-operator → hcp-simulator等多個(gè)服務(wù)任何一個(gè)環(huán)節(jié)變慢都會(huì)導(dǎo)致整個(gè)業(yè)務(wù)體驗(yàn)下降??捎^測(cè)性通常包含三大支柱指標(biāo)MetricsCPU、內(nèi)存、磁盤(pán)、JVM 堆棧、連接池等運(yùn)行數(shù)據(jù)日志Logs操作日志、登錄日志、異常日志的采集與檢索鏈路追蹤Tracing一次請(qǐng)求在多個(gè)服務(wù)間的完整調(diào)用軌跡與耗時(shí)分布。在慧知充電平臺(tái)中這三類(lèi)能力分別由兩套成熟方案承擔(dān)SpringBoot Admin負(fù)責(zé)服務(wù)健康與資源指標(biāo)監(jiān)控Apache SkyWalking負(fù)責(zé)分布式鏈路追蹤與性能剖析二者互補(bǔ)構(gòu)成了完整的系統(tǒng)可觀測(cè)性實(shí)踐。項(xiàng)目監(jiān)控架構(gòu)一覽慧知充電平臺(tái)的監(jiān)控體系分為監(jiān)控中心 探針上報(bào)兩層結(jié)構(gòu)組成說(shuō)明監(jiān)控中心模塊hcp-visual/hcp-monitor 為獨(dú)立的微服務(wù)對(duì)外提供監(jiān)控 Web 界面默認(rèn)端口 39100服務(wù)發(fā)現(xiàn)監(jiān)控中心與其他服務(wù)一樣注冊(cè)到 Nacos通過(guò)服務(wù)名自動(dòng)發(fā)現(xiàn)所有被監(jiān)控實(shí)例數(shù)據(jù)來(lái)源各微服務(wù)內(nèi)置 SpringBoot Actuator 探針向監(jiān)控中心實(shí)時(shí)上報(bào)健康狀態(tài)與指標(biāo)鏈路追蹤各微服務(wù)通過(guò) SkyWalking Agent 接入 OAP ServerUI 端完成拓?fù)渑c調(diào)用鏈可視化在 docker-compose.yml 中可以看到監(jiān)控中心容器的完整編排一行命令即可隨整個(gè)平臺(tái)一起啟動(dòng)hcp-monitor: container_name: hcp-monitor build: context: hcp/visual/monitor ports: - 39100:39100SpringBoot Admin 服務(wù)監(jiān)控落地步驟SpringBoot Admin 的核心是服務(wù)端 客戶端模型服務(wù)端監(jiān)控中心訂閱 Nacos 服務(wù)列表客戶端各業(yè)務(wù)微服務(wù)通過(guò) Actuator 暴露健康檢查與指標(biāo)端點(diǎn)服務(wù)端定時(shí)拉取并渲染成可視化界面。第一步確認(rèn)監(jiān)控中心依賴慧知平臺(tái)在根 pom.xml 中統(tǒng)一管理了 SpringBoot Admin 版本 2.7.10監(jiān)控中心模塊引入了spring-boot-starter-actuator與oshi-core用于采集 CPU、內(nèi)存、磁盤(pán)等系統(tǒng)信息詳見(jiàn) hcp-monitor 的 pom.xml。第二步啟動(dòng)監(jiān)控中心監(jiān)控中心啟動(dòng)類(lèi)位于 HcpMonitorApplication.java啟動(dòng)后訪問(wèn)http://localhost:39100即可看到所有已注冊(cè)服務(wù)的實(shí)時(shí)狀態(tài)。第三步查看服務(wù)健康與資源監(jiān)控監(jiān)控中心內(nèi)置了多個(gè)監(jiān)控入口開(kāi)箱即用服務(wù)健康總覽各服務(wù)上下線狀態(tài)、實(shí)例數(shù)、心跳情況一目了然服務(wù)器資源監(jiān)控ServerController.java 基于 oshi 采集 CPU、JVM、內(nèi)存、磁盤(pán)等指標(biāo)緩存監(jiān)控MonitorCacheController.java 提供 Redis 緩存命中率與命令統(tǒng)計(jì)在線日志查看框架擴(kuò)展了日志實(shí)時(shí)查看能力出現(xiàn)異??煽焖俣ㄎ坏骄唧w服務(wù)與時(shí)間點(diǎn)。 慧知平臺(tái)的運(yùn)營(yíng)后臺(tái)同時(shí)提供服務(wù)監(jiān)控緩存監(jiān)控操作日志等管理入口配合 操作日志模塊 使用可以做到服務(wù)狀態(tài) 業(yè)務(wù)行為雙維度的全面觀測(cè)。第四步注意 Actuator 端點(diǎn)的安全防護(hù)Actuator 端點(diǎn)會(huì)暴露服務(wù)內(nèi)部敏感信息慧知平臺(tái)在網(wǎng)關(guān)入口做了雙重防護(hù)一方面通過(guò)鑒權(quán)過(guò)濾另一方面在 nginx.conf 中對(duì)外部請(qǐng)求直接攔截/actuator路徑避免監(jiān)控端點(diǎn)泄露到公網(wǎng)# 避免actuator暴露 if ($request_uri ~ /actuator) { return 403; }SkyWalking 分布式鏈路追蹤配置要點(diǎn)SpringBoot Admin 解決的是服務(wù)是否健康的問(wèn)題而 SkyWalking 解決的是請(qǐng)求到底慢在哪的問(wèn)題。為什么充電業(yè)務(wù)需要鏈路追蹤以一次掃碼充電為例請(qǐng)求會(huì)依次經(jīng)過(guò)網(wǎng)關(guān)鑒權(quán)、會(huì)員余額查詢、訂單創(chuàng)建、模擬樁或真實(shí)樁通信等環(huán)節(jié)。當(dāng)用戶反饋充電下單很慢時(shí)沒(méi)有鏈路追蹤就只能逐服務(wù)翻日志接入 SkyWalking 后一次請(qǐng)求的完整調(diào)用鏈、每個(gè)環(huán)節(jié)的耗時(shí)、SQL 執(zhí)行時(shí)間都能在一張拓?fù)鋱D上呈現(xiàn)。最簡(jiǎn)接入方式Agent 無(wú)侵入SkyWalking 采用 Java Agent 方式接入業(yè)務(wù)代碼幾乎零侵入。在慧知平臺(tái)各微服務(wù)的啟動(dòng)參數(shù)中加入探針即可java -javaagent:/path/to/skywalking-agent.jar \ -Dskywalking.agent.service_namehcp-operator \ -jar hcp-operator.jar數(shù)據(jù)流與可視化探針采集的數(shù)據(jù)通過(guò) gRPC 上報(bào)到 SkyWalking OAP Server再由 SkyWalking UI 完成聚合展示核心能力包括服務(wù)拓?fù)鋱D自動(dòng)繪制微服務(wù)之間的調(diào)用關(guān)系一眼看出依賴與瓶頸調(diào)用鏈分析單次請(qǐng)求的完整 Span 時(shí)間線精確到方法與 SQL慢查詢與性能剖析結(jié)合慢 SQL 定位數(shù)據(jù)庫(kù)層面的性能問(wèn)題告警機(jī)制針對(duì)服務(wù)響應(yīng)時(shí)間、錯(cuò)誤率等指標(biāo)配置告警規(guī)則。監(jiān)控實(shí)踐中的幾條建議監(jiān)控?cái)?shù)據(jù)與業(yè)務(wù)數(shù)據(jù)分層SpringBoot Admin 與 SkyWalking 建議獨(dú)立部署避免監(jiān)控組件故障影響核心充電業(yè)務(wù)最小化暴露端點(diǎn)Actuator 端點(diǎn)務(wù)必放在內(nèi)網(wǎng)或網(wǎng)關(guān)之后像慧知平臺(tái)在 Nginx 層攔截/actuator就是很好的實(shí)踐組合使用日志鏈路追蹤 ID 與業(yè)務(wù)操作日志關(guān)聯(lián)排障時(shí)從服務(wù)狀態(tài) → 調(diào)用鏈 → 業(yè)務(wù)日志逐層下鉆從小程序到后臺(tái)全鏈路覆蓋慧知平臺(tái)的 小程序端 用戶操作最終也落在hcp-mp等后端服務(wù)上接入 SkyWalking 后同樣可以追蹤。小結(jié)系統(tǒng)可觀測(cè)性是微服務(wù)架構(gòu)的必修課?;壑_(kāi)源充電樁平臺(tái)HUIZHI-ChargeOS-cloud通過(guò)集成SpringBoot Admin實(shí)現(xiàn)了服務(wù)健康、資源指標(biāo)與在線日志的實(shí)時(shí)監(jiān)控通過(guò)Apache SkyWalking補(bǔ)齊了分布式鏈路追蹤與性能剖析能力兩者結(jié)合形成了一套開(kāi)箱即用、覆蓋指標(biāo) 日志 鏈路的完整監(jiān)控方案。無(wú)論你是準(zhǔn)備將充電平臺(tái)用于生產(chǎn)運(yùn)營(yíng)還是想學(xué)習(xí)微服務(wù)監(jiān)控的落地套路這套方案都值得直接參考復(fù)用?!久赓M(fèi)下載鏈接】HUIZHI-ChargeOS-cloud??慧知開(kāi)源充電平臺(tái)全套源碼??;??完整業(yè)務(wù)流程?? ①SpringCloud、MySQL、Netty、uniapp、云快充協(xié)議1.5 云快充協(xié)議1.6、互聯(lián)互通協(xié)議、多租戶、分時(shí)計(jì)費(fèi)。 ②小程序、管理后臺(tái)、多商戶、模擬樁。 ③充電平臺(tái)技術(shù)解決方案。項(xiàng)目地址: https://gitcode.com/gh_mirrors/hu/HUIZHI-ChargeOS-cloud創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考