用SkyWalking监控MySQL(一)工具与方案

本文适用于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容器化部署的方式下非常方便而且性能影响也最小。

由于篇幅有限,每种监控模式的配置以及相关的扩展代码将在后面的文章中详细介绍。

[En]

Due to the limited space, the configuration of each monitoring mode and the related extension code will be explained in detail in the following articles.

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

用SkyWalking监控MySQL(一)工具与方案

Original: https://www.cnblogs.com/greatsql/p/16593687.html
Author: GreatSQL
Title: 用SkyWalking监控MySQL(一)工具与方案

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/505008/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mycat 学习笔记

    概述 1. Mycat 是什么? Mycat 是数据库中间件,连接 Java 应用程序和数据库,它的作用如下: 2. Mycat 原理 Mycat 拦截了用户发送过来的 SQL 语…

    数据库 2023年5月24日
    0101
  • Mybatis缓存机制

    MyBatis是常见的 Java数据库访问层框架。在日常工作中,多数情况下是使用 MyBatis的默认缓存配置减轻数据库压力,提高数据库性能,但是 MyBatis缓存机制有一些不足…

    数据库 2023年6月11日
    0146
  • 记一次stormOOM异常的产生与解决

    最近这段时间开始了一个新项目,项目使用rabbitMQ存储采集数据,通过storm对rabbitMQ中的数据进行实时计算,将结果存入到rabbitMQ的另一个队列中,再由另外一个s…

    数据库 2023年6月6日
    092
  • JavaWeb核心篇(7)——VUE和Element

    VUE&Element 今日目标: 能够使用VUE中常用指令和插值表达式 能够使用VUE生命周期函数 mounted 能够进行简单的 Element 页面修改 能够完成查询…

    数据库 2023年6月14日
    099
  • 索引的树结构

    二分查找 二叉树 二叉平衡树 B-TREE :二叉平衡树的基础上,使加载一次节点,可以加载更多路径数据,同时把查询范围缩减到更小 缺点:业务数据的大小可能远远超过了索引数据的大小,…

    数据库 2023年6月16日
    0146
  • Redis学习笔记一

    ============================= Redis学习笔记一 注:笔记旨在记录 一、redis简介: 高性能的 key-value 数据库 特点: 支持数据持久…

    数据库 2023年6月16日
    080
  • 浅谈GTID及简单测试

    今天简单介绍一下GTID,并有部分相关实验。 GTID相信大家都不陌生,GTID的英文全称为Global Transaction Identifier,在MySQL主从架构中应用广…

    数据库 2023年6月16日
    073
  • Mysql事件调度实现字段自动刷新

    mysql中事件与触发器,触发器是当mysql运行起来之后因某些设定的语句而触发执行,事件则可自定义一次或者周期性执行的任务,在mysql中有特定的线程来管理它,即”事…

    数据库 2023年5月24日
    099
  • html简单学习!

    博主学习html的随记 1.常用标签 1.基础标签 2.格式标签 3.表单 4.超文本标签 5.列表 6.表格 7.样式 8.特殊符号 9.内联框架(网页嵌套) 1.常用标签 1….

    数据库 2023年6月16日
    0112
  • SQL函数-聚合函数

    聚合函数 聚合函数是对一组数据进行汇总输出的函数。 输入:一组数据集合输出:单个值 举例:返回一组数据的最大值、平均数、最小、方差等操作。 常见函数举例: 1,AVG函数:返回一组…

    数据库 2023年5月24日
    0130
  • java 桥接方法

    1.桥接方法简介 桥接方法是jdk1.5引入泛型后,为使java泛型方法生成的字节码与jdk1.5版本之前的字节码兼容由编译器自动生成的。 可用 method.isBridge()…

    数据库 2023年6月16日
    0108
  • 将博客搬至CSDN

    将博客搬至CSDN posted @2021-11-11 15:01 深海云帆 阅读(20 ) 评论() 编辑 Original: https://www.cnblogs.com/…

    数据库 2023年6月9日
    0116
  • 【转】SpringBoot多模块打包瘦身分离

    背景 首先项目是个多层级的多模块springBoot项目,每次打出来的jar包都在90M,其中包含核心代码以及所有依赖的jar包,上传到服务器速度比较慢。 由于核心代码(contr…

    数据库 2023年6月6日
    0111
  • 事物的隔离性和MVCC

    事物的隔离性 mysql的服务端是支持多个客户端同时与之连接的,每个客户端可能还并发了好几个连接,所以mysql是需要同时处理很多事情的,每一件独立的事情就叫做事务。我们知道事务有…

    数据库 2023年5月24日
    0105
  • MySQL索引(一)

    一、索引概念 二、索引类型 (一)业务逻辑分类 1、NORMAL – 普通索引 2、UNIQUE – 唯一索引 3、PRIMARY KEY – …

    数据库 2023年6月16日
    0104
  • Docker 完整版教程

    Docker 安装 一、安装前必读 在安装 Docker 之前,先说一下配置,我这里是Centos7 Linux 内核:官方建议 3.10 以上,3.8以上貌似也可。 注意:本文的…

    数据库 2023年6月14日
    091
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球