Menyiapkan di Google Kubernetes Engine

Anda dapat mengirim error dari aplikasi Google Kubernetes Engine ke Error Reporting dengan salah satu dari dua cara berikut:

Menggunakan Logging untuk melaporkan error

Agen logging default GKE menyediakan solusi terkelola untuk men-deploy dan mengelola agen yang mengirim log untuk cluster Anda ke Cloud Logging. Struktur agen bergantung pada versi cluster. Untuk mengetahui informasi tentang agen ini, lihat Mengelola log GKE.

Error Reporting mengharuskan pengecualian atau stack trace dimuat dalam satu entri log. Sebagian besar agen logging mampu mengenali bahwa beberapa baris log—frame stack yang dicetak masing-masing di baris baru—mewakili stack trace dan mengirimkannya ke Cloud Logging sebagai satu entri log. Jika agen tidak dapat merekonstruksi beberapa baris sebagai satu error, gunakan endpoint API projects.events.report, yang memungkinkan Anda mengontrol konten error.

Menggunakan Error Reporting API untuk menulis error

Error Reporting API menyediakan endpoint report untuk menulis informasi error ke layanan.

  1. Enable the Error Reporting API.

    Enable the API

  2. Laporkan error ke API menggunakan REST API atau library klien.

Sampel

ASP.NET

Paket ASP.NET NuGet melaporkan pengecualian yang tidak tertangkap dari aplikasi web ASP.NET ke Error Reporting.

Menginstal paket NuGet

Untuk menginstal paket Stackdriver ASP.NET NuGet di Visual Studio:

  1. Klik kanan solusi Anda, lalu pilih Manage NuGet packages for solution.
  2. Centang kotak Sertakan pra-rilis.
  3. Telusuri dan instal paket bernama Google.Cloud.Diagnostics.AspNet.

Penggunaan

Setelah menginstal paket Stackdriver ASP.NET NuGet, tambahkan pernyataan berikut ke kode aplikasi Anda untuk mulai mengirim error ke Stackdriver:

using Google.Cloud.Diagnostics.AspNet;

Tambahkan kode HttpConfiguration berikut ke metode Register aplikasi web .NET Anda (ganti your-project-id dengan project ID yang sebenarnya untuk mengaktifkan pelaporan pengecualian:

public static void Register(HttpConfiguration config)
{
    string projectId = "YOUR-PROJECT-ID";
    string serviceName = "NAME-OF-YOUR-SERVICE";
    string version = "VERSION-OF-YOUR-SERVCICE";
    // ...
    // Add a catch all for the uncaught exceptions.
    config.Services.Add(typeof(IExceptionLogger),
        ErrorReportingExceptionLogger.Create(projectId, serviceName, version));
    // ...
}

Setelah menambahkan metode ini ke aplikasi ASP.NET, Anda dapat melihat setiap pengecualian tidak tertangkap yang terjadi saat dilaporkan ke Google Cloud di bagian Error Reporting pada Konsol Google Cloud.

C#

Contoh berikut dapat ditemukan di repositori GoogleCloudPlatform/dotnet-docs-samples. Untuk menggunakannya, setelah membuat project, tentukan project ID Anda:

C:\...\bin\Debug> set GOOGLE_PROJECT_ID=[YOUR_PROJECT_ID]

Pastikan untuk mengganti [YOUR_PROJECT_ID] dengan nilai yang benar dari Konsol Google Cloud.

Kemudian, kirim data pengecualian dengan kode yang mirip dengan berikut ini:

public class ErrorReportingSample
{
    public static void Main(string[] args)
    {
        try
        {
            throw new Exception("Generic exception for testing Stackdriver Error Reporting");
        }
        catch (Exception e)
        {
            report(e);
            Console.WriteLine("Stackdriver Error Report Sent");
        }
    }

    /// <summary>
    /// Create the Error Reporting service (<seealso cref="ClouderrorreportingService"/>)
    /// with the Application Default Credentials and the proper scopes.
    /// See: https://developers.google.com/identity/protocols/application-default-credentials.
    /// </summary>
    private static ClouderrorreportingService CreateErrorReportingClient()
    {
        // Get the Application Default Credentials.
        GoogleCredential credential = GoogleCredential.GetApplicationDefaultAsync().Result;

        // Add the needed scope to the credentials.
        credential.CreateScoped(ClouderrorreportingService.Scope.CloudPlatform);

        // Create the Error Reporting Service.
        ClouderrorreportingService service = new ClouderrorreportingService(new BaseClientService.Initializer
        {
            HttpClientInitializer = credential,
        });
        return service;
    }

    /// <summary>
    /// Creates a <seealso cref="ReportRequest"/> from a given exception.
    /// </summary>
    private static ReportRequest CreateReportRequest(Exception e)
    {
        // Create the service.
        ClouderrorreportingService service = CreateErrorReportingClient();

        // Get the project ID from the environement variables.
        string projectId = Environment.GetEnvironmentVariable("GOOGLE_PROJECT_ID");

        // Format the project id to the format Error Reporting expects. See:
        // https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.events/report
        string formattedProjectId = string.Format("projects/{0}", projectId);

        // Add a service context to the report.  For more details see:
        // https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.events#ServiceContext
        ServiceContext serviceContext = new ServiceContext()
        {
            Service = "myapp",
            Version = "8c1917a9eca3475b5a3686d1d44b52908463b989",
        };
        ReportedErrorEvent errorEvent = new ReportedErrorEvent()
        {
            Message = e.ToString(),
            ServiceContext = serviceContext,
        };
        return new ReportRequest(service, errorEvent, formattedProjectId);
    }

    /// <summary>
    /// Report an exception to the Error Reporting service.
    /// </summary>
    private static void report(Exception e)
    {
        // Create the report and execute the request.
        ReportRequest request = CreateReportRequest(e);
        request.Execute();
    }
}

Go

Lihat Menyiapkan Error Reporting untuk Go.

Java

Lihat Menyiapkan Error Reporting untuk Java.

Node.js

Lihat Menyiapkan Error Reporting untuk Node.js.

Ruby

Lihat Menyiapkan Error Reporting untuk Ruby.

Python

Lihat Menyiapkan Error Reporting untuk Python.

PHP

Lihat artikel Menyiapkan Error Reporting untuk PHP.

Lihat grup error

Di panel navigasi konsol Google Cloud, pilih Error Reporting, lalu pilih project Google Cloud Anda:

Buka Error Reporting