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

Grafana 10告警模板解析:提取内存使用率数值问题

解决Grafana告警邮件模板中解析__values__字段的问题

核心思路

Grafana通知模板基于Go模板语法,__values__字段是JSON格式的字符串,需先将其解析为可操作的映射对象,再提取目标数值并格式化输出。

具体实现代码

在你的邮件通知模板中,使用以下代码片段提取并格式化内存使用率:

{{ range $alert := .Alerts }}
  {{ $values := jsonUnmarshal $alert.Annotations.__values__ }}
  {{ $ramUsage := index $values "A" }}
  内存使用率: {{ printf "%.2f" $ramUsage }}%
{{ end }}

代码解释

  • jsonUnmarshal $alert.Annotations.__values__: 将__values__的JSON字符串解析为Go映射(map),让你能直接访问其中的键值对。
  • index $values "A": 从解析后的映射中取出键A对应的原始内存使用率数值。
  • printf "%.2f" $ramUsage: 用Go格式化函数将数值保留两位小数,得到你需要的96.93格式。

完整邮件模板示例

整合到完整邮件通知的模板示例:

### 告警通知
**告警名称**: {{ .CommonLabels.alertname }}
**监控实例**: {{ .CommonLabels.instance }}
**告警触发时间**: {{ .StartsAt.Format "2006-01-02 15:04:05" }}

{{ range $alert := .Alerts }}
  {{ $values := jsonUnmarshal $alert.Annotations.__values__ }}
  {{ $ramUsage := index $values "A" }}
  **当前内存使用率**: {{ printf "%.2f" $ramUsage }}%
  **告警摘要**: {{ $alert.Annotations.summary }}
{{ end }}

效果验证

应用该模板后,触发告警时生成的邮件内容示例:

告警通知

告警名称: Ram usage
监控实例: 1.1.1.1:9100
告警触发时间: 2024-02-18 24:21:00

当前内存使用率: 96.93%
告警摘要: "High RAM usage detected on 1.1.1.1:9100"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:30:06