Error Reporting vous permet d'agréger les plantages et de diagnostiquer les exceptions d'exécution de vos applications Compute Engine. Vous pouvez envoyer des données d'erreur en diffusant des journaux vers Cloud Logging ou en appelant directement l'API Error Reporting. Si vous utilisez Logging, vos entrées de journal doivent respecter les exigences de mise en forme.
Utiliser Logging pour signaler des erreurs
Pour connecter vos applications Compute Engine à Error Reporting, envoyez vos exceptions ou autres erreurs à Logging à l'aide de l'un des agents suivants :
Agent Ops
Pour configurer Error Reporting de manière à utiliser l'agent Ops, procédez comme suit :
Installez l'agent Ops en fonction de votre environnement. Pour obtenir des instructions, consultez Installer l'agent Ops.
Configurez l'agent Ops pour qu'il collecte les journaux de votre application et les mette en forme correctement.
Pour les applications tierces compatibles : l'agent Ops fournit des récepteurs de journaux préconfigurés qui capturent et analysent automatiquement les entrées de journaux dans des formats structurés reconnus par Error Reporting. Pour en savoir plus sur les applications tierces compatibles, consultez Surveiller des applications tierces.
Pour les applications personnalisées : configurez un récepteur de journaux pour spécifier l'emplacement de vos fichiers journaux, puis associez-le à l'un des processeurs suivants :
- Utilisez un processeur
parse_multilinesi votre application écrit des traces de pile en texte brut sur plusieurs lignes. - Utilisez un processeur
parse_jsonsi votre application écrit des journaux sous forme de chaînes JSON.
Pour obtenir des instructions détaillées, consultez Configurer l'agent Ops.
- Utilisez un processeur
Si votre application ne génère pas de traces de pile standards, modifiez-la pour qu'elle enregistre les exceptions et leurs traces de pile dans Cloud Logging.
Vous devez inclure toutes les informations concernant une seule erreur ou exception dans la même entrée de journal, y compris tous les frames d'une trace de pile. Si toutes les informations ne sont pas regroupées, il est possible qu'Error Reporting ne détecte pas l'erreur. Vous pouvez utiliser le format JSON structuré pour les charges utiles d'entrée de journal afin d'inclure différents types d'informations pour chaque erreur.
Ancien agent Logging
Pour configurer Error Reporting afin qu'il utilise l'ancien agent Logging, procédez comme suit :
- Installez l'agent Logging
google-fluentdcomme il convient pour votre environnement. Pour obtenir des instructions, consultez Installer l'agent Logging. Modifiez votre application pour qu'elle enregistre les exceptions et leurs traces de pile dans Logging.
Vous devez inclure toutes les informations relatives à une seule erreur ou exception dans la même entrée de journal, y compris toutes les frames de toute trace de pile. Si toutes les informations ne sont pas regroupées, il est possible qu'Error Reporting ne détecte pas l'erreur. Vous pouvez utiliser le format JSON structuré pour les charges utiles des entrée de journal afin d'inclure différents types d'informations pour chaque erreur.
Java
Ajoutez le code ci-dessous à votre fichier pom.xml :
Exécutez ensuite le code suivant pour envoyer les données relatives aux exceptions :
Python
Commencez par installer la bibliothèque fluent-logger-python :
sudo pip install fluent-logger
Exécutez ensuite le code suivant pour envoyer les données relatives aux exceptions :
Node.js
Commencez par installer la bibliothèque fluent-logger-node :
npm install fluent-logger
Exécutez ensuite le code suivant pour envoyer les données relatives aux exceptions :
Go
Commencez par installer le package fluent-logger-golang :
go get github.com/fluent/fluent-logger-golang/
Exécutez ensuite le code suivant pour envoyer les données relatives aux erreurs :
Utiliser l'API Error Reporting pour écrire des erreurs
L'API Error Reporting fournit un point de terminaison report pour écrire les informations d'erreur à destination du service.
Activez l'API Error Reporting, si ce n'est pas déjà fait.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.Signalez les erreurs à l'API à l'aide de l'API REST ou d'une bibliothèque cliente.
Exemples
ASP.NET
Le package NuGet ASP.NET signale les exceptions non détectées depuis les applications Web ASP.NET à Error Reporting.
Installer le package NuGet
Pour installer le package NuGet ASP.NET Stackdriver dans Visual Studio :
- Cliquez avec le bouton droit sur votre solution, puis sélectionnez Gérer les packages NuGet pour la solution.
- Cochez la case Inclure la version préliminaire.
- Recherchez et installez le package nommé
Google.Cloud.Diagnostics.AspNet.
Utilisation
Une fois que vous avez installé le package NuGet ASP.NET Stackdriver, ajoutez la déclaration suivante à votre code d'application pour commencer à envoyer des erreurs à Stackdriver :
using Google.Cloud.Diagnostics.AspNet;
Ajoutez le code HttpConfiguration suivant à la méthode Register de votre application Web .NET après avoir remplacé your-project-id par votre ID de projet réel pour activer le signalement des exceptions :
Une fois que vous avez ajouté cette méthode à votre application ASP.NET, vous pouvez afficher toutes les exceptions non détectées qui se produisent lorsqu'elles sont signalées à Google Clouddans la section Error Reporting de la console Google Cloud .
C#
L'exemple suivant est disponible dans le dépôt GoogleCloudPlatform/dotnet-docs-samples. Pour l'utiliser, après avoir créé le projet, spécifiez votre ID de projet :
C:\...\bin\Debug> set GOOGLE_PROJECT_ID=[YOUR_PROJECT_ID]
Veillez à remplacer [YOUR_PROJECT_ID] par la valeur appropriée de la consoleGoogle Cloud .
Ensuite, envoyez les données d'exception avec le code suivant :
Go
Consultez la page Configurer Error Reporting pour Go.
Java
Consultez la page Configurer Error Reporting pour Java.
Node.js
Consultez la page Configurer Error Reporting pour Node.js.
Ruby
Consultez la page Configurer Error Reporting pour Ruby.
Python
Consultez la page Configurer Error Reporting pour Python.
PHP
Consultez la page Configurer Error Reporting pour PHP.
Afficher les groupes d'erreurs
Dans la console Google Cloud , accédez à la page Error Reporting :
Vous pouvez également accéder à cette page à l'aide de la barre de recherche.