Function Compute permet de gérer les notifications d'alerte. Dans les scénarios utilisant des webhooks, Cloud Monitor prend en charge des méthodes de notification telles que DingTalk, WeCom, Lark et Slack, ainsi que des méthodes de distribution vers Auto Scaling, Simple Log Service et Simple Message Queue (SMQ, anciennement MNS). Si les méthodes existantes ne répondent pas à vos besoins, utilisez Function Compute pour écrire du code permettant à d'autres outils de recevoir ces notifications.
Prérequis
Function Compute est activé. Pour plus d'informations, consultez Étape 1 : Activer Function Compute.
Si vous souhaitez que d'autres outils reçoivent les notifications d'alerte, préparez leurs URL de webhook au préalable.
Scénarios
Utilisez Function Compute pour traiter le format des notifications d'alerte afin qu'elles soient compatibles avec d'autres outils.
Personnalisez le contenu des notifications d'alerte de Cloud Monitor via Function Compute.
Étape 1 : Déployer une fonction de code dans Function Compute
-
Créez un service.
Saisissez un nom de service. Conservez les valeurs par défaut pour les autres paramètres. Pour plus d'informations, consultez Étape 2 : Créer un service.
-
Créez une fonction.
Dans la section Basic Settings, spécifiez le Function Name et définissez le Handler Type sur Event Handler. Conservez les valeurs par défaut pour les autres paramètres. Pour plus d'informations, consultez Étape 3 : Créer une fonction.
Dans cet exemple, le Runtime est défini sur Java 8.
RemarqueLe paramètre Handler dans la section Advanced Settings doit correspondre au code de la fonction. Par exemple, la valeur par défaut du Handler est example.App::handleRequest. Dans cette valeur, example représente le nom du package, App le nom de la classe et handleRequest la méthode de la classe. Pour connaître les exigences relatives aux autres langages de programmation, cliquez sur le lien « Event handler » fourni dans Environnements d'exécution Function Compute.
-
Déployez le code de la fonction.
-
Sous l'onglet Code, cliquez sur Upload Code en haut à droite, puis sélectionnez Upload JAR Package.
RemarqueJava étant un langage compilé, il ne permet pas la visualisation ni la modification directe du code en ligne. Vous devez développer le code localement, puis le télécharger via Object Storage Service (OSS) ou sous forme de package JAR. Pour plus d'informations sur la modification et le déploiement d'un package de code dans un environnement Java, consultez Créer et déployer un package de code.
L'extrait de code suivant illustre un package JAR intégré au code de la fonction. Il montre que les données de notification d'alerte de Cloud Monitor sont d'abord transmises à la fonction via
inputStream. Vous pouvez ensuite modifier le format des données et les envoyer vers différentes URL de webhook pour un traitement métier. Cet exemple implémente l'opérationStreamRequestHandleret se contente d'afficher les données de notification d'alerte.package example; import com.aliyun.fc.runtime.Context; import com.aliyun.fc.runtime.FunctionInitializer; import com.aliyun.fc.runtime.StreamRequestHandler; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /** * Hello world! */ public class App implements StreamRequestHandler, FunctionInitializer { public void initialize(Context context) throws IOException { //TODO } @Override public void handleRequest( InputStream inputStream, OutputStream outputStream, Context context) throws IOException { int n; StringBuilder sb = new StringBuilder(); while ((n = inputStream.read()) != -1) { sb.append((char) n); } System.out.println("alert param"); System.out.println(sb.toString()); } }RemarquePour le développement du code, reportez-vous à la documentation suivante :
Pour découvrir le développement dans plusieurs langages, consultez Présentation du développement de code.
Pour en savoir plus sur les fonctions événementielles utilisées dans l'exemple, consultez Fonctions événementielles. Vous pouvez télécharger un projet depuis le dépôt d'exemples de Function Compute afin de développer rapidement le code de votre fonction.
Pour le développement en Java, consultez Gestionnaires d'événements.
Dans la boîte de dialogue Upload Code in ZIP, JAR, or WAR Package, téléchargez le package de code, puis cliquez sur Save and Deploy.
-
-
Testez le code de la fonction.
Sous l'onglet Code de la fonction, cliquez sur Test Function.
-
Sous l'onglet Test Function, cliquez sur Configure test events, copiez les données de notification d'alerte de Cloud Monitor ci-dessous dans la section Create New Test Event, puis cliquez sur Test Function.
Une fois l'exécution réussie, vous pouvez consulter le résultat d'exécution, la sortie des journaux et le résultat de la vérification métier.
{ "product":"KVstore", "metricName":"ShardingCpuUsage", "instance":{ "instanceId":"r-bp1wt5u2ov6e5w****", "resource":"r-bp1wt5u2ov6e5w****", "instanceName":"online", "vpc":{ "vswitchInstanceId":"vsw-bp1rpjm10in1wgxd4****", "vpcInstanceId":"vpc-bp1n5sng5dntm3daf****" }, "aliUid":173651113438****, "category":"KVSTORE", "region":{ "regionId":"cn-hangzhou", "availabilityZone":"" }, "networkType":"VPC", "dimension":{ }, "desc":"", "tags":[ { "value":"1", "key":"__level__" } ] }, "Average":0.483, "userId":"173651113438****", "curLevel":"INFO", "Maximum":0.483, "__ts__":168612****, "instanceId":"r-bp1wt5u2ov6e5w****", "escalation":{ "comparisonOperator":"GreaterThanOrEqualToThreshold", "expression":"$Average >= 0.1", "level":4, "statistics":"Average", "tag":"INFO", "threshold":"0.1", "times":1 }, "ruleName":"test-tair", "nodeId":"r-bp1wt5u2ov6e5w****-db-1", "timestamp":1686123300000 }
Étape 2 : Configurer une règle d'alerte dans la console Cloud Monitor
Connectez-vous à la console Cloud Monitor.
Dans le volet de navigation de gauche, choisissez .
Sur la page Alert Rules, cliquez sur Create Alert Rule.
-
Dans le panneau Create Alert Rule, configurez les informations de base de la règle d'alerte. Cliquez ensuite sur Advanced Settings, activez Function Compute et sélectionnez sa région, son service et sa fonction.
Pour plus d'informations sur la configuration des paramètres d'une règle d'alerte, consultez Créer une règle d'alerte.
RemarqueLa région, le service et la fonction sélectionnés à cette étape doivent correspondre à ceux créés lors de l'Étape 1.
Cliquez sur Confirm.
Étape 3 : Consulter le résultat du déclenchement de l'alerte
Lorsqu'une alerte est déclenchée selon une règle pour laquelle Function Compute est activé, la fonction spécifiée est appelée. Vous pouvez consulter les journaux d'appel de fonction dans la console Function Compute et vérifier s'ils correspondent à vos attentes.
Connectez-vous à la console Function Compute 3.0.
Dans le volet de navigation de gauche, cliquez sur Functions. Dans la barre de navigation supérieure, sélectionnez une région.
Cliquez sur le nom de la fonction souhaitée.
-
Au centre de la page, cliquez sur l'onglet Logs, puis sur l'onglet Invocation Requests et sélectionnez une plage horaire.
RemarqueSi vous consultez les journaux d'appel d'une fonction pour la première fois, cliquez sur Enable pour activer la fonctionnalité de journalisation.
Cliquez sur Request Log dans la colonne Actions pour afficher les détails du journal d'appel souhaité.