Définir une alerte de disponibilité

Ce tutoriel explique comment configurer une alerte de disponibilité pour l'application Hello World pour Python s'exécutant dans l'environnement flexible App Engine à l'aide de Cloud Monitoring. Les alertes de disponibilité vous informent lorsque votre application ne diffuse pas de trafic. Vous pouvez également définir des alertes de disponibilité pour les applications exécutées sur Compute Engine ou Google Kubernetes Engine (GKE).

Objectifs

  • Exécutez une application Hello World de base.
  • Créez un test de disponibilité qui vérifie si l'application renvoie un code d'état HTTP 200.
  • Créez une alerte qui vous envoie un e-mail en cas d'échec du test de disponibilité.
  • Redémarrez l'application pour déclencher l'alerte.

Coûts

Monitoring est actuellement offert gratuitement aux utilisateurs bêta.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

Cloner l'exemple d'application

L'exemple d'application est disponible sur GitHub à l'adresse GoogleCloudPlatform/getting-started-python.

  1. Clonez le dépôt.

    git clone https://github.com/GoogleCloudPlatform/getting-started-python.git
    
  2. Accédez au répertoire de l'exemple :

    cd getting-started-python/gce
    
  3. Comme l'application ne renvoie que "Hello World!", elle ne nécessite aucune configuration et vous pouvez l'exécuter immédiatement.

    gcloud app deploy
    
  4. Pour afficher le message renvoyé, saisissez l'URL suivante dans votre navigateur :

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Remplacez l'élément suivant :

Configurer Cloud Monitoring pour votre projet

Une fois que vous avez configuré Monitoring et que vous avez déployé votre application, vous pouvez utiliser Monitoring pour créer un test de disponibilité. Le test pingue en permanence votre application déployée pour s'assurer qu'elle renvoie une réponse opérationnelle.

Pour accéder à Cloud Monitoring, procédez comme suit :
  1. Dans Cloud Console, sélectionnez votre projet Google Cloud.
    Accéder à Cloud Console
  2. Dans le volet de navigation, sélectionnez Surveillance.

Créer un test de disponibilité

  1. Dans Cloud Console, accédez à Monitoring :

    Accéder à Monitoring

  2. Dans le volet de navigation, cliquez sur Tests de disponibilité, puis sur Créer un test de disponibilité.

  3. Attribuez un titre à votre test, tel que Check Hello World, puis cliquez sur Suivant.

  4. Dans la section Cible, spécifiez le test de disponibilité à surveiller :

    1. Étant donné que vous avez déployé l'application sur App Engine, remplacez Type de ressource par App Engine au lieu de URL. (URL permet de générer une URL personnalisée sur une instance Compute Engine.)
    2. Sélectionnez le Service à surveiller par le test de disponibilité.
    3. Laissez le champ Chemin vide pour accéder par défaut à la page d'index principale.
    4. Laissez le champ Vérifier la fréquence à la valeur par défaut de 1 minute.
    5. Cliquez sur Next (Suivant).
  5. Conservez les valeurs par défaut des champs Validation de la réponse et cliquez sur Suivant.

  6. Dans la section Alertes et notifications, spécifiez la manière dont vous êtes notifié en cas d'alerte:

    • Assurez-vous que le libellé du bouton bascule est Alerting is enabled (Les alertes sont activées).
    • Conservez les valeurs par défaut des champs de nom et de durée.
    • Pour ajouter un canal de notification à la règle d'alerte, dans la zone de texte intitulée Notification channels (Canaux de notification), cliquez sur Menu . Sélectionnez les canaux à ajouter, puis cliquez sur OK. Les notifications sont regroupées par ordre alphabétique pour chaque type de canal.

      Pour ajouter une entrée à la liste des cases à cocher, cliquez sur Manage notification channels (Gérer les canaux de notification) et suivez les instructions. Lorsque vous revenez à cette boîte de dialogue, cliquez sur Refresh (Actualiser) .

  7. Cliquez sur Create (Créer). Lorsque l'opération de création aboutit, le message Check and alert created (Test et alerte créés) s'affiche, puis la page du tableau de bord Tests de disponibilité s'affiche.

    Le nouveau test de disponibilité est répertorié dans le tableau de bord des tests de disponibilité. Si vous cliquez sur le nom du test, vous ouvrez la vue détaillée de ce test de disponibilité. Cette vue affiche plusieurs graphiques, indique le pourcentage de temps d'activité et les informations de configuration, et répertorie les règles d'alerte configurées. Pour afficher une règle, cliquez sur son nom.

    Vous pouvez également afficher la règle d'alerte sur la page Alertes. Le volet Règles de la page "Alertes" répertorie un sous-ensemble de règles. Pour afficher la liste de toutes les règles, cliquez sur Afficher toutes les règles.

Simuler une panne

Maintenant que le test de disponibilité est créé, vous pouvez simuler une panne en modifiant votre application pour qu'elle renvoie une erreur HTTP 404 Sorry, we can't find that page plutôt qu'une réponse HTTP 200 OK.

  1. Le code suivant montre où l'application Hello World ne renvoie qu'un message "Hello World!" et le code d'état de la réponse est défini par défaut sur 200 OK. Pour afficher ce code dans l'application Hello World, utilisez la fonction d'affichage.

    # Copyright 2019 Google LLC All Rights Reserved.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/', methods=['GET'])
    def say_hello():
        return "Hello, world!"
    
    if __name__ == '__main__':
        app.run(host='127.0.0.1', port=8080, debug=True)
    
  2. Pour que l'application Hello World renvoie un code d'erreur HTTP 404, modifiez la ligne de retour en ajoutant une valeur 404 à la deuxième partie de la valeur renvoyée.

    return 'Hello World', 404
  3. Déployez la nouvelle application délibérément défectueuse.

    gcloud app deploy

    Dans un délai d'une demi-heure, vous recevrez un e-mail indiquant que votre test de disponibilité a échoué.

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.