Instrumenta las apps de Go para que Error Reporting

Puedes enviar informes de errores a Error Reporting desde aplicaciones de Go con el paquete de Error Reporting para Go. Usa el paquete de Error Reporting para Go a fin de crear grupos de errores en los siguientes casos:

  • Tu bucket de registros tiene claves de encriptación administradas por el cliente (CMEK).
  • Tus buckets de registros no están en la región global.
  • Deseas informar eventos de error personalizados.

Error Reporting está integrado a algunos servicios de Google Cloud, como App Engine, Compute Engine y Google Kubernetes Engine. Error Reporting muestra los errores que registran las aplicaciones que se ejecutan en esos servicios en Cloud Logging. Para obtener más información, ve a Ejecuta en Google Cloud en esta página.

También puedes enviar datos de errores a Error Reporting mediante Logging. Para obtener información sobre los requisitos de formato de datos, consulta Dale formato a los mensajes de error en Logging.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Habilita Error Reporting API .

    Habilita la API

  5. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  7. Habilita Error Reporting API .

    Habilita la API

Instala la biblioteca cliente

El paquete de Error Reporting para Go te permite supervisar y ver los errores que informan las aplicaciones de Go que se ejecutan prácticamente en cualquier sitio.

  1. Usa go get para instalar el paquete:

    go get cloud.google.com/go/errorreporting

Para obtener más información sobre la instalación, lee la documentación del paquete de Error Reporting para Go. También puedes informar problemas con la herramienta de seguimiento de errores.

Configura la biblioteca cliente

Puedes personalizar el comportamiento del paquete de Error Reporting para Go. Consulta godoc.

Ejecuta apps en Google Cloud

Para crear grupos de errores con projects.events.report, tu cuenta de servicio requiere la función de escritor de Error Reporting (roles/errorreporting.writer).

Algunos servicios de Google Cloud otorgan de forma automática la función de escritor de Error Reporting (roles/errorreporting.writer) a la cuenta de servicio adecuada. Sin embargo, debes otorgar esta función a la cuenta de servicio correspondiente para algunos servicios.

Entorno flexible de App Engine

App Engine otorga la función de escritor de Error Reporting (roles/errorreporting.writer) a la cuenta de servicio predeterminada de forma automática.

El paquete de Error Reporting para Go se puede usar sin necesidad de proporcionar credenciales de forma explícita.

Error Reporting se habilita de manera automática para las aplicaciones del entorno flexible de App Engine. No se requiere ninguna configuración adicional.

Google Kubernetes Engine

Para usar Error Reporting con Google Kubernetes Engine, haz lo siguiente:

  1. Asegúrate de que a la cuenta de servicio que usará tu contenedor se le haya otorgado la función de escritor de Error Reporting (roles/errorreporting.writer).

    Puedes usar la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio personalizada.

    Para obtener información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

  2. Crea tu clúster y otórgale el permiso de acceso cloud-platform.

    Por ejemplo, en el siguiente comando de creación, se especifica el permiso de acceso cloud-platform y una cuenta de servicio:

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

Compute Engine

Para usar Error Reporting con instancias de VM de Compute Engine, haz lo siguiente:

  1. Asegúrate de que a la cuenta de servicio que usará tu instancia de VM se le haya otorgado la función de escritor de Error Reporting (roles/errorreporting.writer).

    Puedes usar la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio personalizada.

    Para obtener información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

  2. En el panel de navegación de la consola de Google Cloud, elige Compute Engine y, luego, Instancias de VM.

    Ir a Instancias de VM

  3. Selecciona la instancia de VM en la que deseas recibir el permiso de acceso de cloud-platform.

  4. Haz clic en Detener y, luego, en Editar.

  5. En la sección Identidad y acceso a la API, selecciona una cuenta de servicio que tenga la función de escritor de Error Reporting (roles/errorreporting.writer).

  6. En la sección Permisos de acceso, selecciona Permitir el acceso total a todas las API de Cloud y, luego, guarda los cambios.

  7. Haz clic en Iniciar/Reanudar.

Ejemplo

En el siguiente ejemplo, se muestra cómo usar la biblioteca cliente de Go para informar un evento de error personalizado:


// 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)
}

Consulta godoc para obtener más ejemplos sobre cómo informar los errores y problemas importantes.

Ejecuta apps en un entorno de desarrollo local

Si deseas usar el paquete de Error Reporting para Go en un entorno de desarrollo local, como ejecutar la biblioteca en tu propia estación de trabajo, debes proporcionar el paquete de Error Reporting para Go con las credenciales predeterminadas de la aplicación local. Para obtener más información, consulta Autentícate en Error Reporting.

Para usar las muestras de Go de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

  1. Instala Google Cloud CLI.
  2. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  3. Crea credenciales de autenticación locales para tu Cuenta de Google:

    gcloud auth application-default login

Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

El método projects.events.report también admite claves de API. Si deseas usar claves de API para la autenticación, no necesitas configurar un archivo local de credenciales predeterminadas de la aplicación. Para obtener más información, consulta Crea una clave de API en la documentación de autenticación de Google Cloud.

Ve informes de errores

En el panel de navegación de la consola de Google Cloud, selecciona Error Reporting y, luego, tu proyecto de Google Cloud:

Ir a Error Reporting

Para obtener más información, consulta Cómo visualizar errores.