本文適用于SkyWalking v9.1.0,
SkyWalking簡介
SkyWalking是一個分布式系統的應用程式性能監視(APM)工具,專為微服務、云原生架構和基于容器(K8s)架構而設計,當前版本具備了全路徑跟蹤、指標采集、日志記錄等功能,并對多種編程語言及平臺(Java/C/C++/Go/Rust/Node/PHP等)提了采集代理(agent),并對service mesh(stio + Envoy )提供支持,
SkyWalking的對比其他常用監控工具 Zabbix、Prometheus、ELK、Zipkin、Jaeger等有以下特點:
優點
1,一站式全功能的解決方案,支持全路徑跟蹤、指標采集和日志記錄,
當前版本仍需依賴外部存盤組件(H2/MySQL/PostgreSQL/Elasticsearch),專案自帶的BanyanDB正在積極研發中,正式發布后可不再依賴外部存盤,
2,非侵入式為主的指標采集方式,一般不需要代碼級的調整,對幾十種主流java組件都有官方插件支持,Java程式通過javaagent+bytebuddy實作動態生成監控插件,Native應用則通過ebpf實作類似功能,
3,標準協議的支持,支持OpenTelemetry、Kafka、estapi、Zabbix多種行業規范或者事實標準的接入,方便各種應用的對接,
4,微服務和云原生的支持,對基于容器(K8s+Java)的全鏈路監控,支持ebpf agent 通過sidecar注入,
缺點
1 agent不夠完善,OpenTelemetry采集方式目前需要用Prometheus node expoter采集,再通過Opentelemetry collector轉換后匯出傳導SkyWalking oap.
2 比Zabbix等傳統監控工具缺少自動探測和資產管理功能,增加自定義監控指標需要手工修改MAL組態檔,不能通過UI配置,
3 官方檔案不完善,只是相當于引數手冊加功能串列,但缺乏各種監控場景的配置指引,
4 ebpf agent雖然是亮點但實作很初級,最新發布版(0.2.0)只支持cpu profiling,git最新代碼已增加network profiling,功能均為go和c混合的硬編實作,用戶自行擴展不便,硬編碼的ebpf代碼也導致對linux內核的兼容性差,gcc4.5+在不同的優化級別(O?)產生的符號命名不一樣,會導致ebpf啟動失敗,
MySQL的監控方案
| 監控項類別 | 監控項 | 監控方式 |
|---|---|---|
| 主機或vm的OS指標 | cpu 記憶體 磁盤 | Zabbix agent/Prometheus exporter + otl collect |
| MySQL 日志 | 日志檔案 | Filebeat httpoutput + SkyWalking http json api |
| ebpf | cpu/network profile, sql query, fs profile(etx4/xfs) | ebpf agent( skeywalking ravor), 除cpu profile外要自行擴展 |
| jdbc client | virtual db,連接池狀態等 | Java agent |
通過以上各種維度的監控可以全面掌握MySQL的運行狀態,并能在出現性能問題時通過ebpf agent(Ravor)遠程執行profiling分析,基于ebpf的監控方式在DBaaS-MySQL容器化部署的方式下非常方便而且性能影響也最小,
限于篇幅原因,在后續的文章中會詳細講解每種監控方式的配置和相關擴展代碼,
Enjoy GreatSQL ??
文章推薦:
有趣的SQL DIGEST
ulimits不生效導致資料庫啟動失敗和相關設定說明
MGR及GreatSQL資源匯總
GreatSQL MGR FAQ
在Linux下原始碼編譯安裝GreatSQL/MySQL
關于 GreatSQL
GreatSQL是由萬里資料庫維護的MySQL分支,專注于提升MGR可靠性及性能,支持InnoDB并行查詢特性,是適用于金融級應用的MySQL分支版本,
Gitee:
https://gitee.com/GreatSQL/GreatSQL
GitHub:
https://github.com/GreatSQL/GreatSQL
Bilibili:
https://space.bilibili.com/1363850082/favlist
技術交流群:
微信:掃碼添加
GreatSQL社區助手微信好友,發送驗證資訊加群,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/502075.html
標籤:其他
上一篇:Redis主從復制
