求助 mysqld-exporter 跟 categraf 采集的结果不一致

Viewed 75

数据库环境:k8s上的PXC集群,通过sidecar模式,每个实例都挂载了一个 mysqld-exporter,集群有一个Cluster IP类型的metrics服务和一个Node Port的外部连接服务,目前测试环境仅有3个数据库实例组成的集群
这两种采集方式对应关系如下:

原本是通过k8s上安装Prometheus-Agent走服务发现监控mysql的,但是有一个需求是要把慢查询告警的详细查询语句展示在告警通知内,所以我用go写了一个边缘告警服务,为了不维护两套数据库实例地址账号密码的配置,我直接挂载复用了categraf 的mysql.toml配置,抛弃原有的mysqld-exporter采集器,目前一切都很顺利,但是有一个很大的问题,不知道是什么原因导致的,求解


监控单体数据库的话,两种采集器并无明显差异,可能这个差异只针对PXC集群。
categraf采集频率是15秒,Prometheus-Agent上报是30s
平滑的斜线是mysqld-exporter采集器上报的QPS数据,起伏的波浪线是categraf 上报的QPS数据,因为categraf数据起伏过大,导致大盘上显示的QPS居高不下,大盘上的QPS值对比为18:1.65k,我想知道是什么原因导致的呢。

2 Answers

原因找到了,PXC集群中,每个节点都是一个独立的MySQL实例,负责处理自己节点上的查询请求和记录查询日志,GLOBAL STATUS也是不同步的,然后我们用的负载均衡策略是HAProxy,会把请求发送到合适的节点上去,也就是说categraf 的查询会走到不同的结点,从而得到不同的结果

画一下图吧:
1、mysqld-exporter 和 mysql 实例的对应关系
2、categraf 和 mysql 实例的对应关系

已添加,麻烦帮忙看看,刚才我发现慢查询指标mysql_global_status_slow_queries 也是波浪线,完全无法触发对应的告警规则