【问题标题】:How to fix the error undefined variable "$labels"in Prometheus?如何修复 Prometheus 中的错误未定义变量“$labels”?
【发布时间】:2020-11-05 08:43:37
【问题描述】:

我用过这个提醒

        - alert: my alert
          expr: status{status="ERROR"}
          for: 30m
          labels:
            severity: WARNING   
          annotations:
            myData: "{{ $labels.myData }}"
            myData2: "{{ $labels.myData2 }}"

我遇到了一个错误 错误 - 模板/:“prometheus/templates/alertmanager-prometheusRule.yaml”中的解析错误:模板:prometheus/templates/alertmanager-prometheusRule.yaml:419:未定义变量“$labels”

我在

中看到了同样的问题

Prometheus Docker fails to start with `Template: (dynamic): parse: template: :10: undefined variable "$labels"`

但我不明白如何解决它

在配置中我使用了这个数据

text: "{{ range .Alerts -}}{{ .Annotations.myData }}{{ .Annotations.myData2}}{{ end-}}"

错误来自 helm lint

【问题讨论】:

  • 如果你改变会发生什么:myData: "{{ $labels.myData}}" 收件人:description: "{{ $labels.myData}}"
  • @Saf - 我的键中有两个注释。我会更新我的问题。您的意思是仅将 myData 更改为描述。但如果我有两个注释,我能做什么。我也在 Annotations.myData 之类的文本中获得了这些数据
  • @saf - 在他写的问题的答案中 0 必须设置 left_delimiter 和 right_delimiter 是什么意思?
  • 对 left_delimiter 的东西没有任何线索,这对我来说没有意义。您还有其他使用“myData:”>" 格式的有效警报吗?我以前从未见过,但这并不意味着它不起作用,只是我缺乏知识。

标签: prometheus kubernetes-helm prometheus-alertmanager


【解决方案1】:

您似乎正在通过 helm chart 部署 Prometheus 设置。 这会导致问题,因为 helm 模板和 Prometheus 中的警报模板都使用相同的分隔符({{}})。

{{ $labels.myData }} 必须完整地到达 prometheus 配置,所以 helm 不能处理它。

最简单的方法是使用:

{{ "{{" }} $labels.myData }}

{{ "{{" }} 块将由 helm 处理,并将生成 {{ 作为结果,该行的其余部分不会被更改,并将为您提供所需的结果。

【讨论】:

  • 我试过我没有收到错误但输出是 myData: {{ $labels.myData}}
  • 是的,Prometheus 设置带有舵图
  • 我做了这样的事情 myData: '{{ "{{" }} $labels.myData }}'
  • 我也试过`{{ $labels.myData }}`它通过了lint,但我没有得到数据
【解决方案2】:

这是一个 python 脚本,用于在文件上批量更改@bjakubski:


import sys
import re

f = sys.argv[1]

regex = re.compile(r"(\{\{.*?\}\})")

with open (f, "r") as myfile:
     s=myfile.read()

ret = regex.sub(lambda x:x.group(1)[0:2]+' "{{" }}'+ x.group(1)[2:],s)

print ret

【讨论】:

    猜你喜欢
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多