Instrumentez les applications Go pour Error Reporting

Vous pouvez envoyer des rapports d'erreurs à Error Reporting depuis Go des applications à l'aide du Package Error Reporting pour Go. Utilisez le package Error Reporting pour Go afin de créer des groupes d'erreurs dans les cas suivants:

  • Votre bucket de journaux comporte des clés de chiffrement gérées par le client(CMEK).
  • Vos buckets de journaux ne se trouvent pas dans la région global.
  • Vous souhaitez signaler des événements d'erreur personnalisés.

Error Reporting est intégré à certains services Google Cloud, tels que App Engine, Compute Engine et Google Kubernetes Engine. Error Reporting vous permet d'afficher les erreurs qui sont consignées dans Cloud Logging par les applications exécutées sur ces services. Pour en savoir plus, consultez Exécution sur Google Cloud sur ce .

Vous pouvez également envoyer des données d'erreur à Error Reporting à l'aide de Logging. Pour en savoir plus sur les exigences en matière de mise en forme des données, consultez la page Formater les messages d'erreur dans Logging.

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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activez Error Reporting API .

    Activer l'API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  7. Activez Error Reporting API .

    Activer l'API

Installer la bibliothèque cliente

Le package Error Reporting pour Go vous permet de surveiller et d'afficher les erreurs signalées par Des applications Go exécutées depuis presque n'importe quel environnement

  1. Installez le package à l'aide de go get :

    go get cloud.google.com/go/errorreporting

Pour en savoir plus sur l'installation, consultez la documentation sur le package Error Reporting pour Go. Vous pouvez également signaler d'éventuels problèmes à l'aide de l'outil de suivi des problèmes.

Configurer la bibliothèque cliente

Vous pouvez personnaliser le comportement du package Error Reporting pour Go. Pour cela, consultez godoc.

Exécuter des applications sur Google Cloud

Pour créer des groupes d'erreurs en utilisant projects.events.report, votre compte de service requiert Rôle de rédacteur pour Error Reporting (roles/errorreporting.writer).

Certains services Google Cloud accordent automatiquement Rédacteur Error Reporting (roles/errorreporting.writer) au niveau approprié de service géré. Toutefois, vous devez attribuer ce rôle au service approprié pour certains services.

Environnement flexible App Engine

App Engine accorde le rôle Rôle de rédacteur pour Error Reporting (roles/errorreporting.writer) automatiquement à votre compte de service par défaut.

Le package Error Reporting pour Go peut être utilisé sans avoir à fournir explicitement des identifiants.

Error Reporting est automatiquement activé pour les applications de l'environnement flexible App Engine. Aucune configuration supplémentaire n'est requise.

Google Kubernetes Engine

Pour utiliser Error Reporting avec Google Kubernetes Engine, effectuer les opérations suivantes:

  1. Assurez-vous que le compte de service que votre conteneur doit utiliser a été accordé le Rôle de rédacteur pour Error Reporting (roles/errorreporting.writer).

    Vous pouvez utiliser le compte de service Compute Engine par défaut ou un compte de service personnalisé.

    Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations

  2. Créez votre cluster et accordez-lui le rôle cloud-platform niveau d'accès.

    Par exemple, la commande "create" suivante spécifie le champ : cloud-platform niveau d'accès et un compte de service:

    gcloud container clusters create CLUSTER_NAME --service-account  SERVICE_ACCT_NAME --scopes=cloud-platform
    

Compute Engine

Pour utiliser Error Reporting avec des instances de VM Compute Engine, effectuer les opérations suivantes:

  1. Assurez-vous que le compte de service que doit utiliser votre instance de VM a été accordé le Rôle de rédacteur pour Error Reporting (roles/errorreporting.writer).

    Vous pouvez utiliser le compte de service Compute Engine par défaut ou un compte de service personnalisé.

    Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations

  2. Dans la console Google Cloud, accédez à la page Instances de VM :

    Accéder à la page Instances de VM

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Compute Engine.

  3. Sélectionnez l'instance de VM sur laquelle vous souhaitez recevoir le cloud-platform niveau d'accès.

  4. Cliquez sur Arrêter, puis sur Modifier.

  5. Dans la section Identité et accès à l'API, sélectionnez un compte de service dispose du rôle "Rédacteur Error Reporting" (roles/errorreporting.writer).

  6. Dans la section Niveaux d'accès, Sélectionnez Allow full access to all Cloud APIs (Autoriser l'accès complet à l'ensemble des API Cloud), puis enregistrez vos modifications.

  7. Cliquez sur Démarrer/Réactiver.

Exemple

L'exemple suivant illustre l'utilisation de la bibliothèque cliente Go pour signaler un événement d'erreur personnalisé:


// Sample errorreporting_quickstart contains is a quickstart
// example for the Google Cloud Error Reporting API.
package main

import (
	"context"
	"errors"
	"log"
	"os"

	"cloud.google.com/go/errorreporting"
)

var errorClient *errorreporting.Client

func main() {
	// Set your Google Cloud Platform project ID via environment or explicitly
	projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
	args := os.Args[1:]
	if len(args) > 0 && args[0] != "" {
		projectID = args[0]
	}

	ctx := context.Background()
	var err error
	errorClient, err = errorreporting.NewClient(ctx, projectID, errorreporting.Config{
		ServiceName:    "errorreporting_quickstart",
		ServiceVersion: "0.0.0",
		OnError: func(err error) {
			log.Printf("Could not report the error: %v", err)
		},
	})
	if err != nil {
		log.Fatal(err)
	}
	defer errorClient.Close()

	err = errors.New("something went wrong")
	if err != nil {
		logAndPrintError(err)
		return
	}
}

func logAndPrintError(err error) {
	/// Client autopopulates the error context of the error. For more details about the context see:
	/// https://cloud.google.com/error-reporting/reference/rest/v1beta1/ErrorContext
	errorClient.Report(errorreporting.Entry{
		Error: err,
	})
	log.Print(err)
}

Consultez godoc pour découvrir, à l'aide d'exemples, comment signaler des problèmes et des erreurs.

Exécuter des applications dans un environnement de développement local

Afin d'utiliser le package Error Reporting pour Go dans un environnement de développement local, procédez comme suit : par exemple en exécutant la bibliothèque sur votre propre poste de travail, vous devez fournir votre package Error Reporting pour Go avec les identifiants par défaut de l'application locale. Pour en savoir plus, consultez S'authentifier auprès d'Error Reporting.

Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

  1. Installez Google Cloud CLI.
  2. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  3. Créez des identifiants d'authentification locaux pour votre compte Google :

    gcloud auth application-default login

Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.

La méthode projects.events.report est également compatible avec les clés API. Si vous souhaitez utiliser des clés API pour l'authentification, vous n'avez pas besoin de configurer un fichier d'identifiants par défaut de l'application local. Pour en savoir plus, consultez la page Créer une clé API dans la documentation sur l'authentification Google Cloud

Afficher les rapports d'erreurs

Dans la console Google Cloud, accédez à la page Error Reporting:

Accéder à Error Reporting

Vous pouvez également accéder à cette page à l'aide de la barre de recherche.

Pour en savoir plus, consultez la page Afficher les erreurs.