13.3、场景2 错误率突然上升
场景 2:错误率突然上升
欢迎回到第 13 章的学习。在上一节,我们学习了 API 响应慢的排查方法。现在我们要学习场景 2:错误率突然上升。
本节将学习:告警触发、错误分类统计、查看错误 Traces、分析错误 Logs、识别错误模式、以及修复验证。
告警触发
告警触发的作用是什么? 及时发现错误率异常,快速响应问题。
如何查看告警? 在 Grafana Alerting 中查看活跃的告警,了解告警详情。
告警规则示例:
groups: - name: error_rate_alerts rules: - alert: HighErrorRate expr: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.01 for: 5m labels: severity: critical annotations: summary: "The error rate exceeds 1%" description: "Current error rate: {{ $value }}"
错误分类统计
错误分类统计的作用是什么? 统计不同类型的错误,识别主要错误类型。
如何进行错误分类统计? 在 Grafana Dashboard 中查看错误分类:
- HTTP 错误(4xx、5xx)
- 数据库错误
- 业务逻辑错误
- 外部服务错误
错误分类查询:
# HTTP 5xx 错误率 sum(rate(http_requests_total{status=~"5.."}[5m])) by (status, endpoint) # 数据库错误 sum(rate(db_errors_total[5m])) by (error_type) # 业务逻辑错误 sum(rate(business_errors_total[5m])) by (error_code)
查看错误 Traces
查看错误 Traces 的作用是什么? 使用 Trace 查看错误发生的完整链路,了解错误上下文。
如何查看错误 Traces? 在 Grafana Tempo 中使用 TraceQL 查询错误 Trace。
TraceQL 查询示例:
# The query status is incorrect Trace {status="error"} # Querying for a specific type of error Trace {error.type="database_error"} # Querying errors for specific services Trace {service.name="order-service"} && {status="error"}
分析错误 Logs
分析错误 Logs 的作用是什么? 通过 Logs 分析错误的详细信息,找到错误的根本原因。
如何分析错误 Logs? 使用 LogQL 查询错误日志:
LogQL 查询示例:
# 查询错误堆栈 {level="error"} | json | line_format "{{.stack}}" # 查询错误消息 {level="error"} | json | line_format "{{.message}}" # 查询错误上下文 {level="error"} && {service="order-service"} | json
识别错误模式
识别错误模式的作用是什么? 识别错误的发生模式,找出错误的共同特征。
如何识别错误模式? 分析错误的:
- 发生时间模式
- 发生位置模式
- 错误类型模式
- 用户影响模式
错误模式分析:
# 错误时间分布 sum(rate(http_requests_total{status=~"5.."}[5m])) by (hour) # 错误位置分布 sum(rate(http_requests_total{status=~"5.."}[5m])) by (endpoint) # 错误类型分布 sum(rate(errors_total[5m])) by (error_type)
修复验证
修复验证的作用是什么? 实施修复方案后,验证错误是否已解决。
如何验证修复? 监控错误率趋势,确认错误率已恢复正常。
验证查询:
# 错误率趋势 sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))
本节小结
在本节中,我们学习了场景 2:错误率突然上升:
第一个是告警触发。 及时发现错误率异常,快速响应问题。
第二个是错误分类统计。 统计不同类型的错误,识别主要错误类型。
第三个是查看错误 Traces。 使用 Trace 查看错误发生的完整链路,了解错误上下文。
第四个是分析错误 Logs。 通过 Logs 分析错误的详细信息,找到错误的根本原因。
第五个是识别错误模式。 识别错误的发生模式,找出错误的共同特征。
第六个是修复验证。 实施修复方案后,验证错误是否已解决。
故障排查流程: 告警触发 → 错误分类统计 → 查看错误 Traces → 分析错误 Logs → 识别错误模式 → 实施修复 → 验证修复效果。
这就是场景 2:错误率突然上升。通过场景 2 的学习,我们掌握了错误率突然上升的排查方法。
在下一节,我们将学习场景 3:数据库连接池耗尽。学习如何排查连接池问题。