Cómo configurar Stackdriver Error Reporting para Go

Puedes enviar informes de errores a Stackdriver Error Reporting desde aplicaciones de Go con el paquete de Stackdriver Error Reporting para Go.

Stackdriver Error Reporting se integra en algunos productos, como App Engine. Stackdriver Error Reporting muestra los errores que las aplicaciones que se ejecutan en esos productos registran en Stackdriver Logging. Consulta Cómo ejecutar en Google Cloud Platform para obtener más información.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En GCP Console, en la página de selección de proyecto, selecciona o crea un proyecto de GCP.

    Ir a la página de selección de proyecto

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

    Descubre cómo puedes habilitar la facturación

  4. Habilita lasStackdriver Error Reporting APIAPInecesarias.

    Habilita lasAPI

Cómo instalar la biblioteca cliente

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

  1. Utiliza go get para instalar el paquete:

    go get -u cloud.google.com/go/errorreporting

Para obtener más información sobre la instalación, consulta la documentación sobre el paquete de Stackdriver Error Reporting para Go. También puedes informar problemas con el seguimiento de problemas.

Cómo configurar la biblioteca cliente

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

Cómo informar errores

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

import (
	"context"
	"log"
	"net/http"

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

var errorClient *errorreporting.Client

func main() {
	ctx := context.Background()

	// Sets your Google Cloud Platform project ID.
	projectID := "YOUR_PROJECT_ID"

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

	resp, err := http.Get("not-a-valid-url")
	if err != nil {
		logAndPrintError(err)
		return
	}
	log.Print(resp.Status)
}

func logAndPrintError(err error) {
	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.

Cómo ejecutar en Google Cloud Platform

El uso del paquete de Stackdriver Error Reporting para Go requiere la función de escritor de Error Reporting de Cloud IAM. La mayoría de las plataformas de procesamiento de Google Cloud Platform ofrecen esta función de forma predeterminada.

Entorno flexible de App Engine

Google App Engine otorga la función de escritor de Error Reporting de forma predeterminada.

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

Stackdriver Error Reporting está habilitado automáticamente para las aplicaciones de entorno de App Engine. No se requiere ninguna configuración adicional.

Kubernetes Engine

En Google Kubernetes Engine debes agregar el nivel de acceso cloud-platform cuando creas el clúster, como se muestra en el siguiente comando de ejemplo:

gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform

Compute Engine

Cuando uses las instancias de VM de Google Compute Engine, agrega el nivel de acceso cloud-platform a cada instancia. Cuando crees una instancia nueva con Google Cloud Platform Console, puedes hacerlo en la sección Identidad y acceso a la API del panel Crear instancia. Usa la cuenta de servicio predeterminada de Compute Engine, o bien otra cuenta de servicio de tu elección, y selecciona Permitir acceso completo a todas las API de Cloud en la sección Identidad y acceso a la API. Independientemente de la cuenta de servicio que selecciones, asegúrate de que se otorgue la función de escritor de Error Reporting en la sección IAM y administrador de GCP Console.

Cómo ejecutar de manera local y en otro lugar

Si deseas usar el paquete de Stackdriver Error Reporting para Go fuera de Google Cloud Platform, debes proporcionar el ID del proyecto de GCP y las credenciales de la cuenta de servicio correspondientes directamente al paquete de Stackdriver Error Reporting para Go. Esto se aplica a la ejecución de la biblioteca en tu estación de trabajo, en las computadoras de tus centros de datos o en las instancias de VM de otro proveedor de servicios en la nube. Para obtener más información, consulta Cómo obtener y proporcionar las credenciales de la cuenta de servicio de forma manual.

Cómo visualizar informes de errores

Después de la implementación, podrás ver los informes de errores en el panel Error Reporting en GCP Console.

Ir al panel de Error Reporting

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