(Facultatif) Configuration du gestionnaire d’alertes pour l’envoi de données JSON à Amazon SNS - Amazon Managed Service for Prometheus

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.

(Facultatif) Configuration du gestionnaire d’alertes pour l’envoi de données JSON à Amazon SNS

Vous pouvez configurer le gestionnaire d'alertes pour qu'il envoie des alertes au format JSON, afin qu'elles puissent être traitées en aval d'Amazon SNS dans AWS Lambda ou dans les points de terminaison recevant des webhooks. Le modèle par défaut fourni avec le gestionnaire d’alertes Amazon Managed Service for Prometheus affiche la charge utile du message sous forme de liste de texte, ce qui peut être difficile à analyser. Au lieu d’utiliser le modèle par défaut, vous pouvez définir un modèle personnalisé pour afficher le contenu du message au format JSON, ce qui facilite l’analyse dans les fonctions en aval.

Pour envoyer des messages du gestionnaire d’alertes à Amazon SNS au format JSON, mettez à jour la configuration de votre gestionnaire d’alertes afin qu’il contienne le code suivant dans votre section racine template_files :

default_template: | {{ define "sns.default.message" }}{{ "{" }}"receiver": "{{ .Receiver }}","status": "{{ .Status }}","alerts": [{{ range $alertIndex, $alerts := .Alerts }}{{ if $alertIndex }}, {{ end }}{{ "{" }}"status": "{{ $alerts.Status }}"{{ if gt (len $alerts.Labels.SortedPairs) 0 -}},"labels": {{ "{" }}{{ range $index, $label := $alerts.Labels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $label.Name }}": "{{ $label.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len $alerts.Annotations.SortedPairs ) 0 -}},"annotations": {{ "{" }}{{ range $index, $annotations := $alerts.Annotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ $annotations.Name }}": "{{ $annotations.Value }}"{{ end }}{{ "}" }}{{- end }},"startsAt": "{{ $alerts.StartsAt }}","endsAt": "{{ $alerts.EndsAt }}","generatorURL": "{{ $alerts.GeneratorURL }}","fingerprint": "{{ $alerts.Fingerprint }}"{{ "}" }}{{ end }}]{{ if gt (len .GroupLabels) 0 -}},"groupLabels": {{ "{" }}{{ range $index, $groupLabels := .GroupLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $groupLabels.Name }}": "{{ $groupLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len .CommonLabels) 0 -}},"commonLabels": {{ "{" }}{{ range $index, $commonLabels := .CommonLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $commonLabels.Name }}": "{{ $commonLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len .CommonAnnotations) 0 -}},"commonAnnotations": {{ "{" }}{{ range $index, $commonAnnotations := .CommonAnnotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ $commonAnnotations.Name }}": "{{ $commonAnnotations.Value }}"{{ end }}{{ "}" }}{{- end }}{{ "}" }}{{ end }} {{ define "sns.default.subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]{{ end }}
Note

Ce modèle crée des données au format JSON à partir de données alphanumériques. Si vos données comportent des caractères spéciaux, encodez-les avant d’utiliser ce modèle.

Pour vous assurer que ce modèle est utilisé dans les notifications sortantes, référencez-le dans votre bloc alertmanager_config comme suit :

alertmanager_config: | global: templates: - 'default_template'
Note

Ce modèle est destiné à l’ensemble du corps du message au format JSON. Ce modèle remplace l’intégralité du corps du message. Vous ne pouvez pas remplacer le corps du message si vous souhaitez utiliser ce modèle spécifique. Tout remplacement effectué manuellement a la priorité sur le modèle.

Pour plus d’informations sur :