基于响应时间与故障频率配置Grafana网站宕机告警
网站可用性监控告警配置方案
一、响应时间超过5秒的告警配置
1. PromQL查询表达式
根据你的现有指标,假设响应时间指标为http_request_duration_seconds(替换为你实际使用的指标名),结合标签过滤目标网站,使用以下查询:
avg_over_time(http_request_duration_seconds{job="your-website-instance"}[1m]) > 5
- 说明:用
avg_over_time计算1分钟内的平均响应时间,避免瞬时波动误触发;job标签替换为你的网站实例标识,可根据实际添加instance等其他标签缩小范围。
2. Grafana告警设置步骤
- 进入Grafana的Alerting面板,点击Create alert rule
- Query标签页:
- 选择Prometheus数据源
- 粘贴上述PromQL表达式
- 设置Evaluation interval(评估间隔)为1分钟(可根据监控精度调整,比如30秒)
- Alert标签页:
- 配置Condition为
B is above 5(对应查询结果的阈值) - 设置For为1分钟(确保响应时间持续超过5秒才触发告警,过滤偶发峰值)
- 配置Condition为
- Notifications标签页:
- 添加已配置的通知渠道(如邮件、Slack),选择目标通知团队
- 保存规则,命名为「网站响应时间超5秒告警」
二、5分钟内失败请求达2次的告警配置(补充需求)
1. PromQL查询表达式
假设失败请求用状态码4xx/5xx标识,指标为http_requests_total(替换为实际指标名),使用以下查询:
increase(http_requests_total{job="your-website-instance", status=~"4..|5.."}[5m]) >= 2
- 说明:
increase计算5分钟内失败请求的增量;status=~"4..|5.."匹配所有4xx、5xx状态码,可根据需求调整(比如只监控5xx)。
2. Grafana告警设置步骤
- 创建新告警规则,Query部分使用上述表达式
- 评估间隔设为1分钟
- Condition配置为
B is above or equal to 2 - For可设为0(只要5分钟内累计失败达2次就触发)
- 关联相同的通知渠道和团队
三、监控最佳实践与注意事项
- 指标标准化:统一指标命名和标签规则(如
job、instance、endpoint),简化查询和告警管理 - 减少误告警:
- 响应时间告警设置合理的
For时长,过滤瞬时网络波动 - 失败请求告警优先用
increase而非sum,避免重复统计同一指标的累计值
- 响应时间告警设置合理的
- 多维度覆盖:除响应时间和状态码,补充监控请求成功率、服务器CPU/内存使用率,便于快速定位问题根源
- 告警分级:将告警分为严重(网站完全不可用)、警告(响应超时),不同级别对应不同通知优先级(如严重告警@所有人,警告仅通知运维组)
- 验证告警:配置完成后手动模拟场景(如用工具发送慢请求或返回500的请求),确认告警触发和通知正常
- 定期优化:回顾告警历史,调整阈值和规则(如业务高峰时适当放宽响应时间阈值)
内容的提问来源于stack exchange,提问作者FALGUNI BHAVSAR
相关产品推荐
相关产品推荐

