【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
现在生产系统需要将 tidb超过10秒的慢SQL通过邮件告警出来,请问该如何操作?
【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
现在生产系统需要将 tidb超过10秒的慢SQL通过邮件告警出来,请问该如何操作?
可以基于 top sql 的sql 只能自己写程序逻辑,或者编写export 覆盖或者elk ,直接能用的好像没有
一种做法是把集群的慢查询阈值调大到10s,然后获取到prometheus里的慢查询,配置alertmanager就可以发送对应的告警,这个是相对比较简单的方式,可以最大利用现有的组件功能。
另一个方式是保留原有的慢查询阈值,通过收集集群的全部慢查询日志(实时采集全部日志文件,或者读取系统已经帮忙汇总的系统表都可以),过滤找出超过10s的SQL,然后再导入告警平台将消息发送出去。这个方案要求的技术栈和能力会高一些。
不要 sql 文本的话,现有的逻辑应该可以,慢 SQL 情况在 Prometheus 中应该是有直方图,告警后再自己去慢 SQL 中找慢 SQL
另一种方式就是结合自己监控平台,自己通过 SQL 语句查慢 SQL ,但是这种不推荐,因为这种监控 SQL 本身就耗费资源比较多
PS:不能啥都放到监控里做吧
感觉可以自己通过脚本实现,逻辑比较清晰简单
确实,用代码写个定时任务
可以把alertmanager中配置文件中的配置改一下,我看默认用tiup安装的alertmanager都是注释的
可以自己写个sql查询,类似 select * from INFORMATION_SCHEMA.CLUSTER_SLOW_QUERY where Query_time >10
然后通过计划任务定期执行shell脚本发送邮件告警。
alter manager 自定义
alter manager