Utilizzo di modelli di messaggistica - Grafana gestito da Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di modelli di messaggistica

Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 8.x di Grafana.

Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. Funzionamento nella versione 10 di Grafana

Per le aree di lavoro Grafana che supportano la versione 9.x di Grafana, vedere. Lavorare nella versione 9 di Grafana

Le notifiche inviate tramite Lavorare con i punti di contatto vengono create utilizzando modelli di messaggistica. I modelli predefiniti di Grafana si basano sul sistema di template Go, in cui alcuni campi vengono valutati come testo, mentre altri vengono valutati come HTML (il che può influire sull'escape).

Poiché la maggior parte dei campi dei punti di contatto può essere modellata, è possibile creare modelli personalizzati riutilizzabili e utilizzarli in più punti di contatto. L'Dati del modelloargomento elenca le variabili disponibili per la creazione di modelli.

Utilizzo dei modelli

I modelli vengono utilizzati per creare un messaggio. Ad esempio, con un messaggio di avviso Slack, puoi impostare il titolo e il corpo del punto di contatto. L'esempio seguente mostra come utilizzare i modelli predefiniti per creare un titolo che contenga un conteggio degli avvisi attivati e risolti e un corpo che elenchi gli avvisi e i relativi stati.

  • Titolo:

    {{ len .Alerts.Firing }} firing, {{ len .Alerts.Resolved }} resolved
  • Corpo del testo:

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

È possibile creare modelli personalizzati, come nell'esempio seguente.

  • Titolo:

    {{ template "slack.default.title" .}}
  • Corpo del testo:

    {{ template "mymessage" .}}

Di seguito è riportato un modello di esempio.

{{ 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 }}

Le procedure seguenti mostrano come creare, modificare ed eliminare modelli di messaggio personalizzati.

Per creare un modello di messaggio
  1. Dalla console Grafana, nel menu Grafana, scegli l'icona Avvisi (campanella) per aprire la pagina Avvisi.

  2. Scegli Punti di contatto.

  3. Dal menu a discesa Alertmanager, seleziona l'istanza Alertmanager per cui desideri creare un modello di messaggio. L'impostazione predefinita è Grafana Alertmanager.

  4. Scegli Aggiungi modello.

  5. Aggiungi un nome descrittivo.

  6. Aggiungi il contenuto per il modello, ad esempio:

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

    Il define tag nella sezione Contenuto assegna il nome del modello. Questo tag è facoltativo e, se omesso, il nome del modello viene derivato dal campo Nome. Quando vengono specificati entrambi, è consigliabile mantenerli uguali.

  7. Scegli Salva modello.

Nota

Il codice HTML nei modelli di messaggi di avviso viene visualizzato come testo, senza caratteri di controllo. Il rendering del codice HTML nella notifica risultante non è supportato da Grafana.

Per modificare un modello di messaggio
  1. Nella pagina Avvisi, scegli Punti di contatto per aprire l'elenco dei punti di contatto.

  2. Nella tabella Modello, trova il modello che desideri modificare, quindi scegli l'icona Modifica (penna).

  3. Apporta le modifiche, quindi scegli Salva modello.

Per eliminare un modello di messaggio
  1. Nella pagina Avvisi, scegli Punti di contatto per aprire l'elenco dei punti di contatto.

  2. Nella tabella Modello, trova il modello che desideri rimuovere, quindi scegli l'icona Elimina (cestino).

  3. Scegli Sì, elimina per eliminare il modello.

Modelli annidati

È possibile incorporare modelli all'interno di altri modelli.

Ad esempio, è possibile definire un frammento di modello utilizzando la define parola chiave:

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

È quindi possibile incorporare modelli personalizzati all'interno di questo frammento utilizzando la parola chiave. template Per esempio:

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

È possibile utilizzare le seguenti opzioni di modello integrate per incorporare modelli personalizzati.

Nome Note

default.title

Visualizza informazioni sullo stato di alto livello.

default.message

Fornisce un riepilogo formattato degli allarmi attivati e risolti.

Esempi di modelli personalizzati

Ecco alcuni esempi di come utilizzare i modelli personalizzati.

Modello per il rendering di un singolo avviso:

{{ 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 }}

Modello per visualizzare l'intero messaggio di notifica:

{{ 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 }}

Dati del modello

I seguenti dati vengono passati ai modelli di messaggio.

Nome Type Note

Receiver

string

Nome del punto di contatto a cui viene inviata la notifica.

Status

string

attivazione se viene attivato almeno un avviso, altrimenti risolto.

Alerts

Alert

Elenco degli oggetti di avviso inclusi in questa notifica (vedi sotto).

GroupLabels

KeyValue

Etichette in base alle quali questi avvisi sono stati raggruppati.

CommonLabels

KeyValue

Etichette comuni a tutti gli avvisi inclusi in questa notifica.

CommonAnnotations

KeyValue

Annotazioni comuni a tutti gli avvisi inclusi in questa notifica.

ExternalURL

string

Link di ritorno al Grafana che ha inviato la notifica. Se si utilizza un Alertmanager esterno, ricollega a questo Alertmanager.

Il Alerts tipo espone due funzioni per filtrare gli avvisi restituiti.

  • Alerts.Firing— Restituisce un elenco di avvisi di attivazione.

  • Alerts.Resolved— Restituisce un elenco di avvisi risolti.

Avviso (tipo)

Il tipo di avviso contiene i seguenti dati.

Nome Type Note

Stato

string

firing o resolved.

Etichette

KeyValue

Un set di etichette allegate all'avviso.

Annotazioni

KeyValue

Un insieme di annotazioni allegate all'avviso.

StartsAt

Time.time

L'ora in cui l'allarme ha iniziato a scattare.

EndsAt

Tempo. Tempo

Impostato solo se è nota l'ora di fine di un avviso. Altrimenti impostato su un periodo di timeout configurabile dal momento in cui è stato ricevuto l'ultimo avviso.

URL del generatore

string

Un link a Grafana o Alertmanager esterno.

URL silenzioso

string

Link a grafana silence for con le etichette per questo avviso precompilate. Solo per gli avvisi gestiti da Grafana.

URL del pannello di controllo

string

Collegamento alla dashboard di Grafana, se la regola di avviso appartiene a una di esse. Solo per gli avvisi gestiti da Grafana.

URL del pannello

string

Collegamento al pannello di dashboard di Grafana, se la regola di avviso appartiene a uno. Solo per gli avvisi gestiti da Grafana.

Impronta digitale

string

Impronta digitale che può essere utilizzata per identificare l'avviso.

ValueString

string

Una stringa che contiene le etichette e il valore di ogni espressione ridotta nell'avviso.

KeyValue tipo

Il KeyValue tipo è un insieme di coppie di stringhe chiave/valore che rappresentano etichette e annotazioni.

Oltre all'accesso diretto ai dati archiviati come fileKeyValue, esistono anche metodi per ordinare, rimuovere e trasformare i dati.

Nome Argomenti Valori restituiti Note

SortedPairs

Elenco ordinato di coppie di stringhe di chiavi e valori

Rimuovi

[] stringa

KeyValue

Restituisce una copia della mappa chiave/valore senza le chiavi fornite.

Nomi

[] stringa

Elenco dei nomi delle etichette

Valori

[] stringa

Elenco dei valori delle etichette

Funzioni del modello

Utilizzando le funzioni del modello è possibile elaborare etichette e annotazioni per generare notifiche dinamiche. Sono disponibili le seguenti funzioni.

Nome Tipo di argomento Tipo restituito Descrizione

humanize

numero o stringa

string

Converte un numero in un formato più leggibile, utilizzando prefissi metrici.

humanize1024

numero o stringa

string

Come humanize, ma usa 1024 come base anziché 1000.

humanizeDuration

numero o stringa

string

Converte una durata in secondi in un formato più leggibile.

humanizePercentage

numero o stringa

string

Converte un valore del rapporto in una frazione di 100.

humanizeTimestamp

numero o stringa

string

Converte un timestamp Unix in pochi secondi in un formato più leggibile.

title

string

string

Strings.title, mette in maiuscolo il primo carattere di ogni parola.

toUpper

string

string

stringhe. ToUpper, converte tutti i caratteri in lettere maiuscole.

toLower

string

string

stringhe. ToLower, converte tutti i caratteri in minuscolo.

match

motivo, testo

booleano

espressione regolare. MatchString Verifica una corrispondenza regexp non ancorata.

reReplaceAll

modello, sostituzione, testo

string

Regexp. ReplaceAllString Sostituzione Regexp, non ancorata.

graphLink

string - Oggetto JSON con e campi expr datasource

string

Restituisce il percorso della visualizzazione grafica in Explore per l'espressione e l'origine dati specificate.

tableLink

string - Oggetto JSON con expr e campi datasource

string

Restituisce il percorso della vista tabulare in Explore per l'espressione e l'origine dati specificate.

args

[] interfaccia {}

mappa [stringa] interfaccia {}

Converte un elenco di oggetti in una mappa con chiavi, ad esempio arg0, arg1. Utilizzate questa funzione per passare più argomenti ai modelli.

externalURL

nulla

string

Restituisce una stringa che rappresenta l'URL esterno.

pathPrefix

nulla

string

Restituisce il percorso dell'URL esterno.

La tabella seguente mostra esempi di utilizzo di ciascuna funzione.

Funzione TemplateString Input Expected (Atteso)

umanizzare

{umanizza $value}

1234567,0

1,235 M

umanizza 1024

{humanize1024 $value}

1048576,0

1 Mi

Durata umanizzata

{UmanizeDuration $value}

899,99

14 m 59 s

Umanizza la percentuale

{humanizePercentage $value}

0,1234567

12,35%

Umanizza il timestamp

{humanizeTimestamp $value}

1435065584,128

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

titolo

{$valore | titolo}

un B C

Aa Bb Cc

toUpper

{$valore | toUpper}

un dB C

A B C

toLower

{$valore | toLower}

un B C

a b c

match

{match «a+» $labels.instance}

aa

true

reReplaceAll

{{ reReplaceAll «localhost :( .*)» «my.domain: $1" $labels.instance}}

host locale: 3000

mio.domain:3000

GraphLink

{{graphLink «{\" expr\»:\ "up\»,\ "fonte dati\»:\ "gdev-prometheus\"}»}}

/esplorare? left= ["ora-1h», "adesso», "gdev-prometheus», {"datasource» :"gdev-prometheus», "expr» :"up», "instant» :false, "range» :true}]

TableLink

{{tableLink «{\" expr\»:\ "up\»,\ "fonte dati\»:\ "gdev-prometheus\"}»}}

/esplorare? left= ["ora-1h», "adesso», "gdev-prometheus», {"datasource» :"gdev-prometheus», "expr» :"up», "instant» :true, "range» :false}]

args

{{define «x"}} {{.arg0}} {{.arg1}} {{end}} {{template «x» (args 1 «2")}}

1 2

URL esterno

{URL esterno}

http://localhost/path/prefix

Prefisso del percorso

{PathPrefix}

/percorso/prefisso