You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在基于CloudWatch Logs Insights的Grafana告警中补充错误详情

如何在Grafana CloudWatch告警通知中添加错误详情(如消息、时间戳)

要让Grafana告警通知包含5xx错误的时间戳、错误消息等详情,需要从查询语句、告警配置、通知模板三个环节调整,具体步骤如下:

1. 优化CloudWatch Logs Insights查询

首先要确保你的查询能返回需要的详情字段,而不只是聚合统计值:

  • 如果需要获取最新的错误条目,调整查询语句返回具体日志字段,比如:
    fields @timestamp, @message, status, requestPath
    | filter status between 500 and 599
    | sort @timestamp desc
    | limit 10
    
    这个查询会返回最新10条5xx错误的时间戳、错误消息、状态码和请求路径。
  • 如果需要保留聚合统计(比如错误总数)同时收集详情,可以用array_agg聚合字段:
    fields @timestamp, @message, status, requestPath
    | filter status between 500 and 599
    | stats count() as errorCount, array_agg(concat(@timestamp, ": ", @message)) as errorMessages by requestPath
    

2. 调整Grafana告警查询配置

在Grafana告警规则的查询部分,使用上述优化后的Logs Insights查询:

  • 确保查询结果中包含你需要的字段(@timestamp、@message等),而不是仅返回错误计数。
  • 如果告警是基于错误数阈值触发(比如错误数>0),可以保留一个查询用于阈值判断,另一个查询专门获取详情。

3. 自定义告警通知模板

Grafana支持通过模板提取查询结果中的字段,将详情插入到通知内容里:

  • 进入Alerting > Notification policies,找到对应的通知渠道,编辑其Message template;或者在告警规则的Message输入框中直接使用模板变量。
  • 示例模板(根据你的查询返回字段调整):
    ## 5xx服务错误告警
    触发时间: {{ .StartsAt.Format "2006-01-02 15:04:05" }}
    错误总数: {{ $values.ErrCount.Value }}
    最新错误详情:
    {{ range $index, $row := $values.ErrDetails.Rows }}
    - 时间: {{ $row."@timestamp" }}
      消息: {{ $row."@message" }}
      请求路径: {{ $row.requestPath }}
      状态码: {{ $row.status }}
    {{ end }}
    
    注意:$values.ErrCount和$values.ErrDetails是你告警规则中查询的ID(比如查询命名为ErrCount、ErrDetails),需要和实际配置对应。

4. 验证通知效果

手动触发一次5xx错误,检查告警通知是否正确显示时间戳、错误消息等详情。如果字段未显示,确认:

  • 查询确实返回了对应的字段
  • 模板中的变量名和查询返回的字段名完全匹配(注意大小写)

内容的提问来源于stack exchange,提问作者Kancha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:55:31