dashboard/#/statement 这个sql总耗时 自己用sql怎么写

【 TiDB 使用环境】生产环境
【 TiDB 版本】
6.5
【复现路径】

dashboard/#/statement 这个sql总耗时 自己用sql怎么写

想做自动报警 对大于10分钟的总耗时sql告警
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】

查询processlist表的time字段应该可以吧

https://github.com/pingcap/tidb-dashboard/blob/f318bea10b19bc95288d318ff2a18fd4d91ddd1f/pkg/apiserver/statement/queries.go#L60

select * from information_schema.processlist where info is not null and time>=600

SELECT 
	FLOOR(UNIX_TIMESTAMP(MIN(summary_begin_time))) AS agg_begin_time, 
	FLOOR(UNIX_TIMESTAMP(MAX(summary_end_time))) AS agg_end_time, 
	ANY_VALUE(digest_text) AS agg_digest_text, 
	ANY_VALUE(digest) AS agg_digest, 
	SUM(exec_count) AS agg_exec_count, 
	SUM(sum_latency) AS agg_sum_latency, 
	MAX(max_latency) AS agg_max_latency, 
	MIN(min_latency) AS agg_min_latency, 
	CAST(SUM(exec_count*avg_latency)/SUM(exec_count) AS SIGNED) AS agg_avg_latency, 
	ANY_VALUE(schema_name) AS agg_schema_name, 
	COUNT(DISTINCT plan_digest) AS agg_plan_count 
FROM `INFORMATION_SCHEMA`.`CLUSTER_STATEMENTS_SUMMARY_HISTORY` 
WHERE summary_begin_time <= '2023-02-13'
AND summary_end_time >= '2023-02-13'
GROUP BY schema_name, digest 
ORDER BY agg_sum_latency DESC

注意时间判断,原版的是判断了两个时间。这里比较奇怪,一般都是判断一个时间就可以了。

select id,info,time,mem from information_schema.processlist where info is not null and time>=600

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。