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 informasi tentang agen ini, lihat Mengelola log GKE.

Error Reporting mewajibkan pengecualian atau pelacakan tumpukan untuk dimuat dalam satu entri log. Sebagian besar agen logging dapat mengenali bahwa beberapa baris log—frame stack yang dicetak di setiap 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 projects.events.report API, 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 NuGet ASP.NET melaporkan pengecualian yang tidak tertangkap dari aplikasi web ASP.NET ke Error Reporting.

Menginstal paket NuGet

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

  1. Klik kanan solusi Anda, lalu pilih Kelola paket NuGet untuk solusi.
  2. Centang kotak Include prerelease.
  3. Telusuri dan instal paket bernama Google.Cloud.Diagnostics.AspNet.

Penggunaan

Setelah menginstal paket NuGet ASP.NET Stackdriver, 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 dari aplikasi web .NET Anda (mengganti your-project-id dengan project ID 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 pengecualian yang tidak tertangkap yang terjadi saat dilaporkan ke Google Cloud di bagian Pelaporan Error pada konsol Google Cloud.

C#

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

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

Pastikan Anda 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 Pelaporan Error untuk Go.

Java

Lihat Menyiapkan Pelaporan Error untuk Java.

Node.js

Lihat Menyiapkan Pelaporan Error untuk Node.js.

Ruby

Lihat Menyiapkan Error Reporting untuk Ruby.

Python

Lihat Menyiapkan Error Reporting untuk Python.

PHP

Lihat Menyiapkan Pelaporan Error untuk PHP.

Melihat grup error

Di konsol Google Cloud, buka halaman Pelaporan Error:

Buka Error Reporting

Anda juga dapat menemukan halaman ini menggunakan kotak penelusuran.