我想让告警的同事显示慢查询的语句可以做到吗
以目前的体系来看,还比较难。
因为告警是基于 Prometheus 生态的时序库,比如 Prometheus、Thanos、VictoriaMetrics 等等,这些时序库都只能存储数值。如果要把慢SQL带出来,就得把慢SQL作为标签,但是SQL是随时变化的,又会导致很多稀疏点,对时序数据库很不友好。所以说不好搞。
理论上,应该把慢SQL用日志方案来做,不知道有没有老铁这么搞过可以分享下。
可以用回调做, 目前我的做法是实现一个监控回调系统, 将查慢sql的动作做成接口,把接口配置在监控回调中。查到慢sql之后发出来。
👍🏻 这个就比较专业了,有没有博客可以分享一下?让小伙伴们深入学习一下:)
目前还没有写这一块的分享文章,有空的时候可以写一下这一块的内容再贴上来。
大概的思路就是n9e回调接口的时候,请求体里面会带上告警的信息,里面包括了tag、对象名、联系人等信息(我们实现电话告警也是用这个方法),从请求体拿到告警的数据库对象名,然后调用阿里(厂商)的RDS慢sql查询接口去查,如果是自建的数据库,就想办法连接数据库去查就行了。查到之后再发到对应地方。
你好,我目前也遇到了这个需求,按照你的思路实现了一套边缘告警服务,但是有一点问题想知道你们是怎么解决的,因为我们用的是自建库,所以会有很多账号密码的问题,目前简化的做法是把每个数据库都新建一个专属于夜莺的账户,这样就不用维护账号名密码了;但是你们是如何通过夜莺回调的请求体找到与之对应的数据库地址的呢,是自己在边缘服务再维护一个字典吗?