prometheus - 基于 DNS 查找的警报
问题描述
我目前有一些基于“tcp_connect”和“http_2xx”探测器的警报规则,它们指示了非常高级别的 TCP 和 HTTP 问题,尚未针对特定警报。
每当探测器由于 DNS 查找问题而无法成功与其目标通信时,我要么收到来自“tcp_connect”的 TCP 连接警报,要么收到来自“http_2xx”的基于 HTTP 状态代码 (0) 的警报,但是这两个警报都不是真正正确的。
我想,probe_dns_lookup_time_seconds
每当 DNS 查找失败时,可能是 0,但事实并非如此,这也是合乎逻辑的。
所以我probe_http_duration_seconds{phase="resolve"}
试了一下,当 DNS 查找出现问题时,这似乎是 0,但我并不真正相信这是正确的做法。
我检查了负责 DNS 查找的代码,似乎如果出现错误或无法解析 IP,它会返回“0.0”的查找时间。
我希望我能够得到一些保证,这是这样做的正确方法,或者得到一些反馈以找到更合适的解决方案。
注意
我不是在谈论DNS服务器的DNS探测,或者我可能对DNS探测应该用于什么有误解,显然这也是一种可能性!
解决方案
我希望我能够得到一些保证,这是这样做的正确方法,或者得到一些反馈以找到更合适的解决方案。
您想要的指标是probe_success
,因为您并不真正关心导致端点关闭的原因,因为您将以一种或另一种方式对其发出警报。找出确切的问题可以在您被寻呼后完成,并且避免必须维护许多脆弱的特定原因警报。
我不是在谈论DNS服务器的DNS探测,或者我可能对DNS探测应该用于什么有误解,显然这也是一种可能性!
你的理解是正确的。
推荐阅读
- python-3.x - Python 请求模块有时会抛出 WinError 10049
- scala - Spark DataFrames Scala - 在循环期间跳转到下一个组
- amazon-simple-email-service - Amazon Simple Email Service 无法在端口 465 上运行
- python - 使用 Regex Python 搜索括号内的所有值
- c++ - 为什么可以向外部库添加函数以访问内部数据
- javascript - Yup & React Hook Form:如何验证 onChange 而不是 onSubmit
- google-apps-script - 使用脚本在 Gmail 主题行中搜索单元格值,然后转发电子邮件
- javascript - Nodemailer:无法发送嵌入图像
- r - 在 UTM 中创建具有混合区域的唯一对象
- java - 自定义异常未运行,抛出其他异常但未自定义。我应该为自定义异常做什么?