本文实用于 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 社区助手
微信好友,发送验证信息加群
。