Grafana 无法完全渲染 Slack 模板

问题描述 投票:0回答:1

我有 Grafana 向 Slack 发出警报,现在我想添加其他注释:

traces
以显示在警报中。由于某种原因,它没有显示在警报中,但我可以在 UI 的 Grafana 警报中看到这个新注释。

我的 Grafana Slack 模板:

{{ define "alert_severity_prefix_emoji" -}}
        {{- if ne .Status "firing" -}}
                :white_check_mark:
        {{- else if eq .CommonLabels.severity "critical" -}}
                :red_circle:
        {{- else if eq .CommonLabels.severity "warning" -}}
                :warning:
        {{- end -}}
{{- end -}}

{{ define "slack.title" -}}
  {{ template "alert_severity_prefix_emoji" . }}
        [{{- .Status | toUpper -}}{{- if eq .Status "firing" }} x {{ .Alerts.Firing | len -}}{{- end }}]: {{ .CommonLabels.alertname -}}
{{- end -}}

{{- define "slack.text" -}}
{{- range .Alerts -}}
{{ if gt (len .Annotations ) 0 }}
*Description*: {{ .Annotations.description }}
*Instance*:
{{ range .Labels.SortedPairs }}{{ if or (eq .Name "env") (eq .Name "instance") (eq .Name "cluster") (eq .Name "http_host")}}• {{ .Name }}: `{{ .Value }}`
{{ end }}{{ end }}
*Silence alert*: {{ .SilenceURL }}
*Go to dashboard*: {{ .DashboardURL }}
*Go to panel directly*: {{ .PanelURL }}
*Go to traces*: {{ .Annotations.traces }}
{{ end }}
{{ end }}
{{ end }}

在警报规则中我有:

resource "grafana_rule_group" "prometheus_metrics_rule_group" {
  name             = "Prometheus metrics"
  folder_uid       = grafana_folder.prometheus_rule_folder.uid
  interval_seconds = 300
  org_id           = 1
  rule {
    name           = "5xx HTTP server side errors"
    for            = "2m"
    condition      = "B"
    no_data_state  = "OK"
    exec_err_state = "Alerting"
    annotations = {
      __dashboardUid__ = grafana_dashboard.prometheus_http_errors.uid
      __panelId__      = "1"
      "description" = "{{ with $values }} 5xx server side HTTP errors have exceeded 10% of all requests within the last 10 minutes {{ end }}"
      "traces" = "{{ graphLink \"{\"expr\": \"up\", \"datasource\": \"Tempo\"}\" }}"

出于测试目的,我尝试将“traces”注释设置为“test”字符串,但没有成功。我在这里做错了什么?

grafana slack go-templates
1个回答
0
投票

因此,在我的反复试验中,我发现替换/移动:

*Go to traces*: {{ .Annotations.traces }}

与:

*Silence alert*: {{ .SilenceURL }}

有效,现在我可以在 Slack 警报消息中看到它。我怀疑单个 Slack 消息中存在某种字符限制,但事实并非如此。我想说这是一个错误,除非有另一种解释。

© www.soinside.com 2019 - 2024. All rights reserved.