【发布时间】:2021-05-26 03:58:49
【问题描述】:
我们有 percona 监控工具来监控 Mysql db,生成缓慢的日志文件报告不会给我们即时结果。我们是否有任何最好的方法来使用指标/ promql 或查询分析等来处理它,我们可以获得关键查询的最小、最大、平均时间
【问题讨论】:
-
您的应用程序使用哪种编程语言执行 MySQL 查询?
标签: mysql prometheus percona
我们有 percona 监控工具来监控 Mysql db,生成缓慢的日志文件报告不会给我们即时结果。我们是否有任何最好的方法来使用指标/ promql 或查询分析等来处理它,我们可以获得关键查询的最小、最大、平均时间
【问题讨论】:
标签: mysql prometheus percona
min,max,average -- 在你有足够的样本来取 min,max,average 之前,这些是没有意义的。重新思考“即时结果”的必要性。
pt-query-digest 可以每天或每小时(或其他)运行以获得“最近过去”的结果。
Percona、MariaDB 和 Oracle 等提供的各种监控工具可以绘制出许多指标。有的要花钱。即使对于慢速查询,有些也“接近”“即时结果”。
请用不同的词语描述您的目标;我们也许可以更好地指导您。
SHOW GLOBAL STATUS LIKE 'Threads_running';(或图形监控)之类的指标可以实时发现峰值。但是知道有峰值没有任何可操作性。
我更喜欢事后查看慢日志。 pt-query-digest 很容易识别出“最差”的查询。可以识别尖峰和瓶颈,但要等到它们“完成”。
死锁来自难以解析的SHOW ENGINE InnoDB STATUS;,但每次只有一个,事后才发生。
在一个没有很好调整的系统中,pt-query-digest 中的第一个 条目(有时)是一个消耗超过 50% 的系统资源的查询。修复那个 one 查询会有很大的不同。非常划算。
【讨论】: