【发布时间】:2021-06-10 20:50:57
【问题描述】:
我目前正在设置一个监视器来监控 Cloud SQL DB 中的慢查询。我构建了一个自定义查询来让进程在 SQL 服务器上运行,因为当前慢查询监控在进程完成之前不会报告。为了每 15-20 秒(或在 DD 中配置的任何内容)检查当前运行超过 5 分钟的查询,我在我的 DD 代理的配置中有这个。
custom_queries:
- query: SELECT COUNT(*) as processes FROM INFORMATION_SCHEMA.PROCESSLIST WHERE TIME >
(5 * 60 * 1000);
columns:
- name: mysql.processlist.processes
type: count
tags:
- staging:mysql
如您所见,它显示了运行超过 5 分钟的查询计数。我将如何获得有关每个查询的更多信息。例如,我想查看正在执行的确切查询语句。我知道我可以使用查询:
SELECT INFO as QUERY FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND='Query';
获取查询语句,但我希望能够单击 DD 中的图表并进一步挖掘每个进程以查看语句。有没有办法在 Datadog 中添加此信息或其他功能,我可以将正在查询的进程单独查询到每个进程?
我的第一个想法是将自定义查询更改为:
- query: SELECT COUNT(*) as PROCESSES, ID, INFO as QUERY FROM
INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND='Query';
columns:
- name: mysql.processlist.ID
type: tag
- name: mysql.processlist.PROCESSES
type: count
- name: mysql.proccesslist.QUERY
type: tag
但这只会返回一行,其中包含所有进程的计数以及第一个结果的ID和Query。
# PROCESSES, ID, QUERY
'3', '61550', 'SELECT ....'
【问题讨论】:
标签: mysql sql-server google-cloud-sql metrics datadog