Le service Alert Management de Managed Service for OpenTelemetry vous permet d'envoyer des alertes webhook vers des objets de notification tiers. Cette rubrique utilise Lark comme exemple pour expliquer comment créer une alerte webhook.
Étape 1 : Obtenir une URL de webhook
Configurez un bot webhook Lark sur votre ordinateur.
Ouvrez Lark et connectez-vous.
Cliquez sur l'icône +, puis sur Create group pour créer un groupe d'alertes.
Cliquez sur l'icône des paramètres du groupe, puis sélectionnez l'onglet Bots.
Dans l'onglet Bots, cliquez sur Add Bot.
Dans le panneau Add Bot, sélectionnez Custom Bot.
Sur la page de configuration, définissez un display name et une description, puis cliquez sur Add.
Dans le panneau de confirmation qui s'affiche, cliquez sur Copy, puis sur Finish. Copiez l'URL du webhook et conservez-la en toute sécurité. Ne la divulguez pas publiquement. Dans la zone Security Settings, cochez la case Custom Keywords, ajoutez le mot-clé alert, puis cliquez sur Finish.
Étape 2 : Créer un objet de notification webhook
Connectez-vous à la console Managed Service for OpenTelemetry.
Dans le volet de navigation de gauche, choisissez . Sélectionnez l'onglet Webhook Integration, puis cliquez sur Create Webhook.
-
Dans la boîte de dialogue Create Webhook, configurez les paramètres suivants.
Paramètre
Description
Webhook Name
Obligatoire. Nom personnalisé du webhook.
Post ou Get
Obligatoire. Méthode de requête. L'URL ne doit pas dépasser 256 caractères.
Dans cet exemple, sélectionnez Post et collez l'URL du webhook obtenue à l'Étape 1 : Obtenir une URL de webhook dans la zone de texte de droite.
Header ou Param
Facultatif. En-tête de requête. La valeur ne doit pas dépasser 200 caractères. Cliquez sur + Create pour ajouter d'autres informations d'en-tête ou de paramètre. L'en-tête de requête par défaut est Content-Type: text/plain; charset=UTF-8. Le nombre total d'en-têtes et de paramètres ne peut pas dépasser six.
Dans cet exemple, définissez les deux en-têtes suivants :
-
Arms-Content-Type : json
-
Content-Type : application/json
Modèle de notification
Modèle des notifications envoyées lorsqu'une alerte est déclenchée. Ce paramètre est facultatif et n'apparaît que si vous sélectionnez la méthode de requête Post. Vous pouvez utiliser la variable de modèle $content pour afficher le contenu de la notification. Le modèle ne doit pas dépasser 500 caractères. Pour plus d'informations, consultez la rubrique Configurer les modèles de notification et les modèles de webhook.
Voici un exemple de modèle de notification :
{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Alert Time":"{{ .startTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Dans cet exemple utilisant Lark, vous pouvez utiliser le format de texte suivant :
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Notification Policy: {{ .dispatchRuleName }} \nAlert Time: {{ .startTime }} \nAlert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }Modèle de résolution d'alerte
Modèle des notifications envoyées lorsqu'une alerte est résolue. Ce paramètre est facultatif et n'apparaît que si vous sélectionnez la méthode de requête Post. Vous pouvez utiliser la variable de modèle $content pour afficher le contenu de la notification. Le modèle ne doit pas dépasser 500 caractères. Pour plus d'informations, consultez la rubrique Configurer les modèles de notification et les modèles de webhook.
Voici un exemple de modèle de résolution d'alerte :
{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Resolution Time":"{{ .endTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Dans cet exemple utilisant Lark, vous pouvez utiliser le format de texte suivant :
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Resolution Time: {{ .endTime }} \nNotification Policy: {{ .dispatchRuleName }} \nResolved Alert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } } -
Cliquez sur Send Test pour vérifier la configuration.
Cliquez sur OK.
Étape 3 : Configurer une politique de notification
Créez ou modifiez une politique de notification, définissez the Notification Object sur Universal Webhook, puis sélectionnez l'intégration Webhook correspondante.
Si le point de terminaison cible ne répond pas dans un délai de 5 secondes, l'alerte webhook expire et la notification échoue.