Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Cette rubrique de documentation est conçue pour les espaces de travail Grafana qui prennent en charge la version 8.x de Grafana.
Pour les espaces de travail Grafana compatibles avec la version 10.x de Grafana, voir. Travailler dans la version 10 de Grafana
Pour les espaces de travail Grafana compatibles avec la version 9.x de Grafana, voir. Travailler dans la version 9 de Grafana
Les notifications envoyées via Travailler avec les points de contact sont créées à l'aide de modèles de messagerie. Les modèles par défaut de Grafana sont basés sur le système de modèles Go dans
Comme la plupart des champs des points de contact peuvent être modélisés, vous pouvez créer des modèles personnalisés réutilisables et les utiliser dans plusieurs points de contact. La Données du modèle rubrique répertorie les variables disponibles pour la création de modèles.
Utilisation de modèles
Les modèles sont utilisés pour créer un message. Par exemple, avec un message d'alerte Slack, vous pouvez définir le titre et le corps du point de contact. L'exemple suivant montre comment utiliser des modèles par défaut pour créer un titre contenant le nombre d'alertes déclenchées et résolues, ainsi qu'un corps répertoriant les alertes et leur statut.
-
Titre :
{{ len .Alerts.Firing }} firing, {{ len .Alerts.Resolved }} resolved
-
Corps du texte :
{{ range .Alerts }}{{ .Status }}: {{ .Labels.alertname }} {{end }}
Vous pouvez créer vos propres modèles personnalisés, comme dans l'exemple suivant.
-
Titre :
{{ template "slack.default.title" .}}
-
Corps du texte :
{{ template "mymessage" .}}
Voici un exemple de modèle.
{{ 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 }}
Les procédures suivantes indiquent comment créer, modifier et supprimer des modèles de messages personnalisés.
Pour créer un modèle de message
-
Depuis votre console Grafana, dans le menu Grafana, choisissez l'icône d'alerte (cloche) pour ouvrir la page d'alerte.
-
Choisissez Points de contact.
-
Dans la liste déroulante Alertmanager, sélectionnez l'instance Alertmanager pour laquelle vous souhaitez créer un modèle de message. La valeur par défaut est le Grafana Alertmanager.
-
Choisissez Ajouter un modèle.
-
Ajoutez un nom descriptif.
-
Ajoutez le contenu du modèle, par exemple :
{{ define "mymessage" }} {{ range .Alerts }} [{{ .Status }}] {{ range .Labels }} {{ .Name }}={{.Value }}{{end}} {{ end }} {{ end }}
La
define
balise de la section Contenu attribue le nom du modèle. Cette balise est facultative, et lorsqu'elle est omise, le nom du modèle est dérivé du champ Nom. Lorsque les deux sont spécifiés, il est recommandé de les conserver identiques. -
Choisissez Enregistrer le modèle.
Note
Dans les modèles de messages d'alerte, le code HTML est affiché sous forme de texte, les caractères de contrôle étant ignorés. Le rendu du code HTML dans la notification résultante n'est pas pris en charge par Grafana.
Pour modifier un modèle de message
-
Sur la page Alertes, choisissez Points de contact pour ouvrir la liste des points de contact.
-
Dans le tableau Modèle, recherchez le modèle que vous souhaitez modifier, puis cliquez sur l'icône Modifier (stylo).
-
Apportez vos modifications, puis choisissez Enregistrer le modèle.
Pour supprimer un modèle de message
-
Sur la page Alertes, choisissez Points de contact pour ouvrir la liste des points de contact.
-
Dans le tableau Modèle, recherchez le modèle que vous souhaitez supprimer, puis cliquez sur l'icône Supprimer (corbeille).
-
Choisissez Oui, supprimer pour supprimer le modèle.
Modèles imbriqués
Vous pouvez intégrer des modèles dans d'autres modèles.
Par exemple, vous pouvez définir un fragment de modèle à l'aide du define
mot clé :
{{ define "mytemplate" }}
{{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved.
{{ end }}
Vous pouvez ensuite intégrer des modèles personnalisés dans ce fragment à l'aide du template
mot clé. Par exemple :
Alert summary:
{{ template "mytemplate" . }}
Vous pouvez utiliser les options de modèle intégrées suivantes pour intégrer des modèles personnalisés.
Nom | Remarques |
---|---|
|
Affiche des informations d'état de haut niveau. |
|
Fournit un résumé formaté des alertes déclenchées et résolues. |
Exemples de modèles personnalisés
Voici des exemples d'utilisation de modèles personnalisés.
Modèle pour afficher une seule alerte :
{{ 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 }}
Modèle pour afficher l'intégralité du message de notification :
{{ 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 }}
Données du modèle
Les données suivantes sont transmises aux modèles de messages.
Nom | Type | Remarques |
---|---|---|
|
chaîne |
Nom du point de contact auquel la notification est envoyée. |
|
chaîne |
déclenchement si au moins une alerte est déclenchée, sinon résolu. |
|
Alerte |
Liste des objets d'alerte inclus dans cette notification (voir ci-dessous). |
|
KeyValue |
Libellés selon lesquels ces alertes ont été regroupées. |
|
KeyValue |
Libellés communs à toutes les alertes incluses dans cette notification. |
|
KeyValue |
Annotations communes à toutes les alertes incluses dans cette notification. |
|
chaîne |
Lien de retour vers le Grafana qui a envoyé la notification. Si vous utilisez un Alertmanager externe, renvoyez le lien vers ce Alertmanager. |
Le Alerts
type expose deux fonctions permettant de filtrer les alertes renvoyées.
-
Alerts.Firing
— Renvoie la liste des alertes de déclenchement. -
Alerts.Resolved
— Renvoie la liste des alertes résolues.
Alerte (type)
Le type d'alerte contient les données suivantes.
Nom | Type | Remarques |
---|---|---|
Statut |
chaîne |
|
Étiquettes |
KeyValue |
Ensemble d'étiquettes associées à l'alerte. |
Annotations |
KeyValue |
Ensemble d'annotations associées à l'alerte. |
StartsAt |
Heure. Heure |
Heure à laquelle l'alerte a commencé à se déclencher. |
EndsAt |
Heure. Heure |
Paramétré uniquement si l'heure de fin d'une alerte est connue. Sinon, définissez un délai d'expiration configurable à compter de la date de réception de la dernière alerte. |
URL du générateur |
chaîne |
Un lien de retour vers Grafana ou un Alertmanager externe. |
URL de silence |
chaîne |
Lien vers le formulaire Grafana Silence avec des étiquettes préremplies pour cette alerte. Uniquement pour les alertes gérées par Grafana. |
URL du tableau de bord |
chaîne |
Lien vers le tableau de bord de Grafana, si la règle d'alerte appartient à l'une d'entre elles. Uniquement pour les alertes gérées par Grafana. |
URL du panneau |
chaîne |
Lien vers le panneau du tableau de bord de Grafana, si la règle d'alerte appartient à l'une d'entre elles. Uniquement pour les alertes gérées par Grafana. |
Empreinte digitale |
chaîne |
Empreinte digitale qui peut être utilisée pour identifier l'alerte. |
ValueString |
chaîne |
Chaîne contenant les libellés et la valeur de chaque expression réduite de l'alerte. |
KeyValue type
Le KeyValue
type est un ensemble de paires de chaînes clé/valeur qui représentent des étiquettes et des annotations.
Outre l'accès direct aux données stockées sous forme de fichierKeyValue
, il existe également des méthodes de tri, de suppression et de transformation des données.
Nom | Arguments | Renvoie | Remarques |
---|---|---|---|
SortedPairs |
Liste triée des paires de chaînes de clés et de valeurs |
||
Remove (suppression) |
[] chaîne |
KeyValue |
Renvoie une copie de la carte clé/valeur sans les clés données. |
Noms |
[] chaîne |
Liste des noms d'étiquettes |
|
Valeurs |
[] chaîne |
Liste des valeurs d'étiquette |
Fonctions du modèle
À l'aide des fonctions du modèle, vous pouvez traiter les étiquettes et les annotations pour générer des notifications dynamiques. Les fonctions suivantes sont disponibles.
Nom | Type d’argument | Type de retour | Description |
---|---|---|---|
|
nombre ou chaîne |
chaîne |
Convertit un nombre dans un format plus lisible à l'aide de préfixes métriques. |
|
nombre ou chaîne |
chaîne |
Comme humanize, mais utilise 1024 comme base au lieu de 1000. |
|
nombre ou chaîne |
chaîne |
Convertit une durée en secondes dans un format plus lisible. |
|
nombre ou chaîne |
chaîne |
Convertit une valeur de ratio en une fraction de 100. |
|
nombre ou chaîne |
chaîne |
Convertit un horodatage Unix en secondes dans un format plus lisible. |
|
chaîne |
chaîne |
Strings.title, met en majuscule le premier caractère de chaque mot. |
|
chaîne |
chaîne |
cordes. ToUpper, convertit tous les caractères en majuscules. |
|
chaîne |
chaîne |
cordes. ToLower, convertit tous les caractères en minuscules. |
|
motif, texte |
boolean |
expression régulière. MatchString Teste une correspondance regexp non ancrée. |
|
modèle, remplacement, texte |
chaîne |
Expression régulière. ReplaceAllString Substitution de Regexp, non ancrée. |
|
string - Objet JSON avec |
chaîne |
Renvoie le chemin d'accès à la vue graphique dans Explore pour l'expression et la source de données données. |
|
string - Objet JSON avec |
chaîne |
Renvoie le chemin d'accès à la vue tabulaire dans Explore pour l'expression et la source de données données. |
|
[] interface {} |
carte [chaîne] interface {} |
Convertit une liste d'objets en carte avec des clés, par exemple arg0, arg1. Utilisez cette fonction pour transmettre plusieurs arguments aux modèles. |
|
rien |
chaîne |
Renvoie une chaîne représentant l'URL externe. |
|
rien |
chaîne |
Renvoie le chemin de l'URL externe. |
Le tableau suivant présente des exemples d'utilisation de chaque fonction.
Fonction | TemplateString | Entrée | Expected |
---|---|---|---|
humaniser |
{humaniser $value} |
1234567,0 |
1,235 M |
humaniser 1024 |
{humaniser 1024$ de valeur} |
1048576,0 |
1 mi |
Humaniser la durée |
{HumanizeDuration $value} |
899,99 |
14 m 59 s |
Pourcentage d'humanisation |
{humanizePercentage $value} |
0,1234567 |
12,35 % |
Humaniser l'horodatage |
{humanizeTimestamp $value} |
1435065584,128 |
23/06/2015 13:19:44,128 +0000 UTC |
title |
{$value | titre} |
un B C |
Aa Bb CC |
toUpper |
{$value | toUpper} |
un B C |
AA BB CC |
toLower |
{$value | toLower} |
un B C |
AA BB CC |
match |
{correspond à « a+ » $labels.instance} |
aa |
true |
reReplaceAll |
{{ reReplaceAll « localhost :( .*) » « my.domain : $1 » $labels.instance}} |
hôte local : 3000 |
mon domaine .domain : 3000 |
GraphLink |
{{GraphLink « {\" expr \ » : \ "up \ », \ "source de données \ » : \ "gdev-prometheus \"} »} |
/explorer ? left= ["now-1h », « now », « gdev-prometheus », {"source de données » « gdev-prometheus », « expr » « up », « instant » :false, "range » :true}] |
|
Tableau Link |
{{TableLink « {\" expr \ » : \ "up \ », \ "source de données \ » : \ "gdev-prometheus \"} »} |
/explorer ? left= ["now-1h », « now », « gdev-prometheus », {"source de données » « gdev-prometheus », « expr » « up », « instant » :true, "range » :false}] |
|
args |
{{define « x »}} {{.arg0}} {{.arg1}} {{end}} {{modèle « x » (args 1 « 2 »)}} |
1 2 |
|
URL externe |
{URL externe} |
http ://localhost/path/prefix |
|
Préfixe de chemin |
{PathPrefix} |
/chemin/préfixe |