Maison  >  Article  >  Java  >  Comment surveiller les performances d'une fonction Java et recevoir des alertes lorsque des problèmes surviennent ?

Comment surveiller les performances d'une fonction Java et recevoir des alertes lorsque des problèmes surviennent ?

PHPz
PHPzoriginal
2024-04-20 08:36:01843parcourir

Afin de surveiller les performances de la fonction Java et de définir des alertes, suivez ces étapes : Ajoutez les dépendances requises. Dans la classe de fonctions, ajoutez du code de surveillance et d’alerte. Déployez la fonction en vous assurant que la variable d'environnement FUNCTIONS_SIGNATURE_TYPE est définie. Dans le tableau de bord Google Cloud Monitoring, créez une règle d'alerte avec des seuils de métriques personnalisés qui déclenchent des alertes lorsque les temps d'exécution dépassent les attentes.

Comment surveiller les performances dune fonction Java et recevoir des alertes lorsque des problèmes surviennent ?

Comment surveiller les performances des fonctions Java et être alerté lorsque des problèmes surviennent

Introduction

La surveillance des performances des fonctions Java est essentielle pour garantir la disponibilité et les performances de votre application. En définissant des alertes, vous pouvez recevoir des notifications en temps opportun lorsque des indicateurs clés semblent anormaux, afin que vous puissiez prendre des mesures en temps opportun. Cet article vous explique comment utiliser l'API de surveillance de Google Cloud Functions pour surveiller les performances des fonctions Java et définir des alertes.

Prérequis

  • Java 11 ou supérieur
  • Maven ou Gradle
  • SDK Google Cloud Functions
  • Compte Google Cloud

1. Créer une fonction Java

Créer un nouveau projet Maven ou Gradle. et ajouter les dépendances suivantes :

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>functions-framework-java</artifactId>
  <version>1.0.35</version>
</dependency>

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-functions</artifactId>
  <version>3.3.0</version>
</dependency>

Créez une classe pour implémenter votre fonction :

import com.google.cloud.functions.HttpFunction;
import com.google.cloud.functions.HttpRequest;
import com.google.cloud.functions.HttpResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class MyFunction implements HttpFunction {
    @Override
    public void service(HttpRequest request, HttpResponse response)
            throws IOException {
        // 您的函数逻辑
        PrintWriter writer = response.getWriter();
        writer.print("Hello World!");
    }
}

2. Ajoutez une surveillance et des alertes

dans pom.xml ou build.gradle code> fichier, ajoutez la dépendance suivante : <code>pom.xmlbuild.gradle 文件中,添加以下依赖项:

<dependency>
  <groupId>io.opencensus</groupId>
  <artifactId>opencensus-exporter-stats-cloud</artifactId>
  <version>0.16.0</version>
</dependency>

在函数类中,添加监控和警报代码:

import io.opencensus.exporter.stats.stackdriver.StackdriverStatsExporter;
import io.opencensus.stats.Stats;
import io.opencensus.stats.ViewManager;
import java.util.List;

public class MyFunction implements HttpFunction {
    private static final StackdriverStatsExporter exporter =
            StackdriverStatsExporter.createAndRegister();

    private static final List<String> MONITORED_FUNCTIONS = List.of("http_server", "fn");

    // Add a shutdown hook to stop the exporter at the end of the app lifecycle.
    // This is a best-effort attempt to ensure that metrics are flushed before termination.
    public static void init() {
        Runtime.getRuntime().addShutdownHook(exporter::shutdown);
    }

    @Override
    public void service(HttpRequest request, HttpResponse response)
            throws IOException {
        // Monitor the execution of your function using Stackdriver.
        // You can enable monitoring by setting the FUNCTIONS_SIGNATURE_TYPE environment
        // variable as shown at https://cloud.google.com/functions/docs/monitoring/logging.
        ViewManager viewManager = Stats.getViewManager();
        // We only need to register the default views once per JVM.
        // However, you can register views more than once, and the duplicate registrations
        // will be ignored after the first time. Alternatively, you can configure all of the
        // default views with a parameter.
        viewManager.registerAllViews();
    }
}

3. 部署函数

部署您的函数,确保已设置 FUNCTIONS_SIGNATURE_TYPE

gcloud functions deploy my-function \
--entry-point MyFunction \
--runtime java11 \
--trigger-http

Dans la classe de fonction, ajoutez le code de surveillance et d'alerte :

custom.googleapis.com/cloud_function/http/latency
3. Déployez la fonction

Déployez votre fonction, en vous assurant que FUNCTIONS_SIGNATURE_TYPEest défini. > Variables d'environnement.
    rrreee
  • 4. Configurer des alertes
  • Connectez-vous au tableau de bord Google Cloud Monitoring et accédez à l'onglet Alertes.

    Créer une règle :
  • Cliquez sur le bouton "Créer une règle".
  • Spécifiez les conditions :
  • Sélectionnez le type de métrique "Métriques" et sélectionnez les métriques suivantes : rrreee
Définir le seuil :

Définissez le seuil sur la valeur attendue du temps d'exécution de la fonction.

Configurer un canal :

Sélectionnez un canal de notification tel que l'e-mail ou Slack.

Cas pratique

Par exemple, vous pouvez définir une alarme qui se déclenchera lorsque le temps d'exécution de la fonction dépasse 1 seconde. De cette façon, vous pouvez être immédiatement averti en cas de problèmes de performances des fonctions afin que vous puissiez prendre des mesures pour enquêter et atténuer.
  • Prochaines étapes
Ce tutoriel montre comment utiliser Stackdriver pour surveiller les performances d'une fonction Java et définir des alertes. Vous pouvez également explorer les ressources suivantes pour plus d'informations : 🎜🎜🎜[API de surveillance de Google Cloud Functions](https://cloud.google.com/functions/docs/monitoring/concepts)🎜🎜[OpenCensus Java](https: / /github.com/census-instrumentation/opencensus-java)🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn