Messaging-Vorlagen verwenden - Amazon Managed Grafana

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Messaging-Vorlagen verwenden

Dieses Dokumentationsthema wurde für Grafana-Workspaces entwickelt, die Grafana-Version 8.x unterstützen.

Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 10.x unterstützen, finden Sie unter. Arbeitet in Grafana-Version 10

Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 9.x unterstützen, finden Sie unter. Arbeitet in Grafana-Version 9

Benachrichtigungen, die über gesendet werden, Mit Kontaktstellen arbeiten werden mithilfe von Nachrichtenvorlagen erstellt. Die Standardvorlagen von Grafana basieren auf dem Go-Vorlagensystem, bei dem einige Felder als Text ausgewertet werden, während andere als HTML ausgewertet werden (was sich auf die Escape-Funktion auswirken kann).

Da die meisten Kontaktpunktfelder mit Vorlagen versehen werden können, können Sie wiederverwendbare benutzerdefinierte Vorlagen erstellen und diese in mehreren Kontaktpunkten verwenden. Das Vorlagendaten Thema listet Variablen auf, die für die Erstellung von Vorlagen verfügbar sind.

Verwenden von Vorlagen

Vorlagen werden verwendet, um eine Nachricht zu erstellen. Bei einer Slack-Warnmeldung kannst du beispielsweise den Titel und den Text in der Kontaktstelle festlegen. Das folgende Beispiel zeigt, wie Sie mithilfe von Standardvorlagen einen Titel erstellen, der die Anzahl der ausgelösten und gelösten Alarme sowie einen Text enthält, in dem die Benachrichtigungen und ihr Status aufgeführt sind.

  • Titel:

    {{ len .Alerts.Firing }} firing, {{ len .Alerts.Resolved }} resolved
  • Hauptteil des Textes:

    {{ range .Alerts }}{{ .Status }}: {{ .Labels.alertname }} {{end }}

Sie können Ihre eigenen benutzerdefinierten Vorlagen erstellen, wie im folgenden Beispiel.

  • Titel:

    {{ template "slack.default.title" .}}
  • Hauptteil des Textes:

    {{ template "mymessage" .}}

Im Folgenden finden Sie eine Beispielvorlage.

{{ define "myalert" }} [{{.Status}}] {{ .Labels.alertname }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ if gt (len .Annotations) 0 }} Annotations: {{ range .Annotations.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ end }} {{ if gt (len .SilenceURL ) 0 }} Silence alert: {{ .SilenceURL }} {{ end }} {{ if gt (len .DashboardURL ) 0 }} Go to dashboard: {{ .DashboardURL }} {{ end }} {{ end }}

Die folgenden Verfahren zeigen, wie Sie benutzerdefinierte Nachrichtenvorlagen erstellen, bearbeiten und löschen.

Um eine Nachrichtenvorlage zu erstellen
  1. Wählen Sie in Ihrer Grafana-Konsole im Grafana-Menü das Alerting (Glockensymbol), um die Alerting-Seite zu öffnen.

  2. Wählen Sie Kontaktstellen.

  3. Wählen Sie in der Alertmanager-Dropdownliste die Alertmanager-Instanz aus, für die Sie eine Nachrichtenvorlage erstellen möchten. Die Standardeinstellung ist der Grafana Alertmanager.

  4. Wählen Sie Vorlage hinzufügen.

  5. Fügen Sie einen beschreibenden Namen hinzu.

  6. Fügen Sie den Inhalt für die Vorlage hinzu, zum Beispiel:

    {{ define "mymessage" }} {{ range .Alerts }} [{{ .Status }}] {{ range .Labels }} {{ .Name }}={{.Value }}{{end}} {{ end }} {{ end }}

    Das define Tag im Abschnitt Inhalt weist den Namen der Vorlage zu. Dieses Tag ist optional, und wenn es weggelassen wird, wird der Vorlagenname aus dem Feld Name abgeleitet. Wenn beide angegeben sind, empfiehlt es sich, sie gleich zu lassen.

  7. Wählen Sie Save template (Vorlage speichern).

Anmerkung

HTML in Vorlagen für Warnmeldungen wird als Text gerendert, wobei Steuerzeichen maskiert werden. Das Rendern von HTML in der resultierenden Benachrichtigung wird von Grafana nicht unterstützt.

So bearbeiten Sie eine Nachrichtenvorlage
  1. Wählen Sie auf der Seite „Benachrichtigungen“ die Option Kontaktstellen aus, um die Liste der Kontaktstellen zu öffnen.

  2. Suchen Sie in der Vorlagentabelle nach der Vorlage, die Sie bearbeiten möchten, und wählen Sie dann das Bearbeiten-Symbol (Stift).

  3. Nehmen Sie Ihre Änderungen vor und wählen Sie dann Vorlage speichern.

So löschen Sie eine Nachrichtenvorlage
  1. Wählen Sie auf der Seite „Benachrichtigungen“ die Option Kontaktstellen aus, um die Liste der Kontaktstellen zu öffnen.

  2. Suchen Sie in der Vorlagentabelle nach der Vorlage, die Sie entfernen möchten, und wählen Sie dann das Symbol Löschen (Mülleimer).

  3. Wähle Ja, löschen, um die Vorlage zu löschen.

Verschachtelte Vorlagen

Sie können Vorlagen in andere Vorlagen einbetten.

Sie können beispielsweise ein Vorlagenfragment mit dem folgenden define Schlüsselwort definieren:

{{ define "mytemplate" }} {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved. {{ end }}

Anschließend können Sie mithilfe des template Schlüsselworts benutzerdefinierte Vorlagen in dieses Fragment einbetten. Beispielsweise:

Alert summary: {{ template "mytemplate" . }}

Sie können die folgenden integrierten Vorlagenoptionen verwenden, um benutzerdefinierte Vorlagen einzubetten.

Name Hinweise

default.title

Zeigt Statusinformationen auf hoher Ebene an.

default.message

Stellt eine formatierte Zusammenfassung der ausgelösten und gelösten Alarme bereit.

Beispiele für benutzerdefinierte Vorlagen

Hier finden Sie Beispiele für die Verwendung benutzerdefinierter Vorlagen.

Vorlage zum Rendern einer einzelnen Warnung:

{{ define "myalert" }} [{{.Status}}] {{ .Labels.alertname }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ if gt (len .Annotations) 0 }} Annotations: {{ range .Annotations.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ end }} {{ if gt (len .SilenceURL ) 0 }} Silence alert: {{ .SilenceURL }} {{ end }} {{ if gt (len .DashboardURL ) 0 }} Go to dashboard: {{ .DashboardURL }} {{ end }} {{ end }}

Vorlage zum Rendern der gesamten Benachrichtigung:

{{ define "mymessage" }} {{ if gt (len .Alerts.Firing) 0 }} {{ len .Alerts.Firing }} firing: {{ range .Alerts.Firing }} {{ template "myalert" .}} {{ end }} {{ end }} {{ if gt (len .Alerts.Resolved) 0 }} {{ len .Alerts.Resolved }} resolved: {{ range .Alerts.Resolved }} {{ template "myalert" .}} {{ end }} {{ end }} {{ end }}

Vorlagendaten

Die folgenden Daten werden an Nachrichtenvorlagen übergeben.

Name Typ Hinweise

Receiver

Zeichenfolge

Name der Kontaktstelle, an die die Benachrichtigung gesendet wird.

Status

Zeichenfolge

ausgelöst, wenn mindestens ein Alarm ausgelöst wird, andernfalls behoben.

Alerts

Warnung

Liste der Alarmobjekte, die in dieser Benachrichtigung enthalten sind (siehe unten).

GroupLabels

KeyValue

Labels, nach denen diese Alerts gruppiert wurden.

CommonLabels

KeyValue

Bezeichnungen, die allen in dieser Benachrichtigung enthaltenen Warnungen gemeinsam sind.

CommonAnnotations

KeyValue

Anmerkungen, die allen in dieser Benachrichtigung enthaltenen Warnungen gemeinsam sind.

ExternalURL

Zeichenfolge

Backlink zu der Grafana, die die Benachrichtigung gesendet hat. Wenn Sie einen externen Alertmanager verwenden, verlinken Sie zurück zu diesem Alertmanager.

Der Alerts Typ stellt zwei Funktionen zum Filtern der zurückgegebenen Warnungen zur Verfügung.

  • Alerts.Firing— Gibt eine Liste von Auslösewarnungen zurück.

  • Alerts.Resolved— Gibt eine Liste der behobenen Alarme zurück.

Warnung (Typ)

Der Warnungstyp enthält die folgenden Daten.

Name Typ Hinweise

Status

Zeichenfolge

firing oder resolved.

Labels

KeyValue

Eine Reihe von Bezeichnungen, die an die Warnung angehängt sind.

Anmerkungen

KeyValue

Eine Reihe von Anmerkungen, die der Warnung beigefügt sind.

StartsAt

Zeit.Zeit

Uhrzeit, zu der der Alarm ausgelöst wurde.

EndsAt

Zeit. Zeit

Wird nur gesetzt, wenn die Endzeit einer Warnung bekannt ist. Andernfalls wird ein konfigurierbarer Timeout-Zeitraum ab dem Zeitpunkt seit dem Empfang der letzten Warnung festgelegt.

Generator-URL

Zeichenfolge

Ein Backlink zu Grafana oder einem externen Alertmanager.

Silence-URL

Zeichenfolge

Link zu Grafana Silence for mit vorgefüllten Beschriftungen für diese Warnung. Nur für von Grafana verwaltete Benachrichtigungen.

Dashboard-URL

Zeichenfolge

Link zum Grafana-Dashboard, falls die Warnungsregel zu einer gehört. Nur für von Grafana verwaltete Benachrichtigungen.

Panel-URL

Zeichenfolge

Link zum Grafana-Dashboard-Panel, falls die Warnungsregel zu einer gehört. Nur für von Grafana verwaltete Benachrichtigungen.

Fingerabdruck

Zeichenfolge

Fingerabdruck, der zur Identifizierung der Warnung verwendet werden kann.

ValueString

Zeichenfolge

Eine Zeichenfolge, die die Bezeichnungen und den Wert jedes reduzierten Ausdrucks in der Warnung enthält.

KeyValue Typ

Der KeyValue Typ besteht aus einer Reihe von Schlüssel/Wert-Zeichenkettenpaaren, die Beschriftungen und Anmerkungen darstellen.

Neben dem direkten Zugriff auf die als gespeicherten Daten gibt es auch Methoden zum Sortieren, Entfernen und Transformieren der Daten. KeyValue

Name Argumente Rückgabewert Hinweise

SortedPairs

Sortierte Liste von Zeichenkettenpaaren aus Schlüssel und Wert

Remove

[] Zeichenfolge

KeyValue

Gibt eine Kopie der Key/Value-Map ohne die angegebenen Schlüssel zurück.

Namen

[] Zeichenfolge

Liste der Labelnamen

Werte

[] Zeichenfolge

Liste der Labelwerte

Funktionen der Vorlage

Mithilfe von Vorlagenfunktionen können Sie Beschriftungen und Anmerkungen verarbeiten, um dynamische Benachrichtigungen zu generieren. Die folgenden Funktionen sind verfügbar.

Name Argumenttyp Rückgabetyp Beschreibung

humanize

Zahl oder Zeichenfolge

Zeichenfolge

Konvertiert eine Zahl mithilfe metrischer Präfixe in ein besser lesbares Format.

humanize1024

Zahl oder Zeichenfolge

Zeichenfolge

Wie Humanize, verwendet aber 1024 statt 1000 als Basis.

humanizeDuration

Zahl oder Zeichenfolge

Zeichenfolge

Konvertiert eine Dauer in Sekunden in ein besser lesbares Format.

humanizePercentage

Zahl oder Zeichenfolge

Zeichenfolge

Konvertiert einen Verhältniswert in einen Bruchteil von 100.

humanizeTimestamp

Zahl oder Zeichenfolge

Zeichenfolge

Konvertiert einen Unix-Zeitstempel in Sekunden in ein besser lesbares Format.

title

Zeichenfolge

Zeichenfolge

Strings.Title schreibt das erste Zeichen jedes Worts groß.

toUpper

Zeichenfolge

Zeichenfolge

Zeichenketten. ToUpper, wandelt alle Zeichen in Großbuchstaben um.

toLower

Zeichenfolge

Zeichenfolge

Zeichenketten. ToLower, wandelt alle Zeichen in Kleinbuchstaben um.

match

Muster, Text

boolesch

Regexp. MatchString Testet auf eine nicht verankerte Regexp-Übereinstimmung.

reReplaceAll

Muster, Ersatz, Text

Zeichenfolge

Regexp. ReplaceAllString Regexp-Substitution, nicht verankert.

graphLink

string — JSON-Objekt mit Feldern und expr datasource

Zeichenfolge

Gibt den Pfad zur grafischen Ansicht in Explore für den angegebenen Ausdruck und die angegebene Datenquelle zurück.

tableLink

string — JSON-Objekt mit datasource Feldern expr und

Zeichenfolge

Gibt den Pfad zur tabellarischen Ansicht in Explore für den angegebenen Ausdruck und die angegebene Datenquelle zurück.

args

[] Schnittstelle {}

map [string] Schnittstelle {}

Konvertiert eine Liste von Objekten in eine Map mit Schlüsseln, zum Beispiel arg0, arg1. Verwenden Sie diese Funktion, um mehrere Argumente an Vorlagen zu übergeben.

externalURL

nichts

Zeichenfolge

Gibt eine Zeichenfolge zurück, die die externe URL darstellt.

pathPrefix

nichts

Zeichenfolge

Gibt den Pfad der externen URL zurück.

Die folgende Tabelle zeigt Beispiele für die Verwendung der einzelnen Funktionen.

Funktion TemplateString Eingabe Expected

humanisieren

{$value humanisieren}

1234567,0

1,235 M

humanisieren Sie 1024

{humanise1024 $value}

1048576,0

1 Minuten

Dauer humanisieren

{humanizeDuration $value}

899,99

14 m 59 s

Prozentsatz humanisieren

{HumanizePercentage $value}

0,1234567

12,35%

Zeitstempel humanisieren

{HumanizeTimestamp $value}

1435065584,128

2015-06-23 13:19:44.128 +0000 UTC

Titel

{$wert | Titel}

ein B C

Ein Bb Cc

toUpper

{$value | toUpper}

ein B C

EIN B C

toLower

{$value | toLower}

ein B C

ein b c

match

{entspricht „a+“ $labels.instance}

aa

true

reReplaceAll

{{ reReplaceAll „localhost :( .*)“ „meine.domain: $1“ $labels.instance}}

localhost: 3000

meine.domain: 3000

GraphLink

{{GraphLink „{\" expr\“:\ "hoch\“,\ "Datenquelle\“:\ "gdev-prometheus\"}“}

/erkunden? left= ["now-1h“, "now“, "gdev-prometheus“, {"datasource“ :"gdev-prometheus“, "expr“ :"up“, "instant“ :false, "range“ :true}]

Link zur Tabelle

{{TableLink „{\" expr\“:\ "nach oben\“,\ "Datenquelle\“:\ "gdev-prometheus\"}“}}

/erkunden? left= ["now-1h“, "now“, "gdev-prometheus“, {"datasource“ :"gdev-prometheus“, "expr“ :"up“, "instant“ :true, "range“ :false}]

args

{{definiere „x"}} {{.arg0}} {{.arg1}} {{end}} {{Vorlage „x“ (Argumente 1 „2")}}

1 2

Externe URL

{externe URL}

http://localhost/path/prefix

Pfad-Präfix

{Pfadpräfix}

/Pfad/Präfix