Bermigrasi dari Eksporter trace ke endpoint OTLP

Dokumen ini menjelaskan cara mengonfigurasi ekspor data rekaman aktivitas dalam proses oleh OpenTelemetry SDK ke project Google Cloud Anda. Contoh untuk Java, Go, Python, dan Node.js menunjukkan cara mengonfigurasi SDK untuk mengirim data trace ke Telemetry (OTLP) API saat Anda menggunakan instrumentasi manual. Untuk setiap bahasa, halaman ini memberikan informasi tentang cara menggunakan eksportir OTLP untuk mengirim data rekaman aktivitas menggunakan protokol ekspor yang didukung.

Instrumentasi yang dijelaskan di halaman ini hanya berlaku untuk data rekaman aktivitas. Agen ini tidak mengirimkan data log atau metrik ke project Google Cloud Anda.

Jika aplikasi Anda mengandalkan pengumpul OpenTelemetry untuk mengirim data rekaman aktivitas ke project Anda, dokumen ini tidak berlaku: Google Cloud

Alasan Anda harus bermigrasi

SDK OpenTelemetry menghasilkan data log, metrik, dan trace dalam format yang umumnya konsisten dengan file proto yang ditentukan oleh OpenTelemetry OTLP Protocol. Namun, kolom dapat dikonversi dari jenis data khusus OpenTelemetry ke jenis data JSON sebelum penyimpanan.

Saat aplikasi mengekspor data tersebut ke project Google Cloud dengan menggunakan Google Cloud pengekspor, pengekspor tersebut akan melakukan langkah-langkah berikut:

  1. Mengubah data yang direkam dari format OTLP menjadi format eksklusif yang ditentukan oleh Cloud Logging API, Cloud Monitoring API, atau Cloud Trace API.
  2. Mengirim data yang telah diubah ke API yang sesuai, yang kemudian disimpan di project Google Cloud Anda.

Untuk data rekaman aktivitas, sebaiknya migrasikan aplikasi Anda untuk menggunakan Telemetry (OTLP) API untuk mengekspor data, karena ekspor ini tidak memerlukan transformasi data. Transformasi data dapat menyebabkan hilangnya beberapa data. Misalnya, format eksklusif mungkin memiliki batas yang lebih rendah untuk kolom tertentu, atau beberapa kolom OTLP mungkin tidak dipetakan ke kolom dalam format eksklusif.

Sampel yang tersedia

Aplikasi contoh yang dirujuk di halaman ini tersedia di GitHub. Sebagian besar aplikasi dikonfigurasi untuk mengekspor data rekaman aktivitas menggunakan gRPC, yang berarti bahwa aplikasi tersebut menggunakan data yang dienkode protobuf menggunakan format wire gRPC melalui koneksi HTTP/2. Contoh kode juga disediakan untuk aplikasi yang dikonfigurasi untuk mengekspor data rekaman aktivitas sebagai data yang dienkode protobuf melalui koneksi HTTP:

  • Aplikasi Java

    Aplikasi contoh dikonfigurasi untuk mengekspor rekaman aktivitas sebagai data yang dienkode protobuf melalui koneksi HTTP. Jika Anda lebih suka menggunakan gRPC, maka instrumentasi dalam sampel ini dapat diterapkan. Namun, Anda perlu mengubah properti sistem yang digunakan oleh modul konfigurasi otomatis. Aplikasi contoh menentukan eksportir http/protobuf. Untuk menggunakan gRPC, ubah setelan ini ke grpc.

    Sebaiknya aplikasi Java Anda, seperti aplikasi contoh, menggunakan modul Autoconfigure OpenTelemetry SDK untuk mengonfigurasi SDK.

  • Aplikasi Go yang menggunakan gRPC dan Aplikasi Go yang menggunakan HTTP

    Ada dua repositori Go. Dalam satu repositori, aplikasi contoh menggunakan gRPC. Contoh di repositori lain menggunakan data yang dienkode protobuf melalui koneksi HTTP.

  • Aplikasi Python

    Repositori ini berisi dua sampel, satu untuk gRPC dan satu yang menggunakan data yang dienkode protobuf melalui koneksi HTTP.

  • Aplikasi Node.js

    Repositori ini berisi dua sampel, satu untuk gRPC dan satu yang menggunakan data yang dienkode protobuf melalui koneksi HTTP.

Sebelum memulai

Sebelum memigrasikan aplikasi untuk mengirim data rekaman aktivitas ke endpoint OTLP, aktifkan Telemetry API dan pastikan Anda telah diberi peran Identity and Access Management (IAM) yang diperlukan. Anda mungkin juga perlu memberikan peran IAM ke akun layanan.

Mengaktifkan penagihan dan Telemetry API

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Telemetry, Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Telemetry, Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Konfigurasikan izin

    Panduan migrasi untuk instrumentasi manual

    Bagian ini menjelaskan cara mengubah aplikasi Anda sehingga aplikasi tersebut mengirimkan data rekaman aktivitas ke project Anda menggunakan Telemetry API. Google Cloud Anda tidak dapat mengirim data metrik atau log ke endpoint ini.

    Menambahkan dependensi

    Langkah pertama adalah menambahkan dependensi untuk pengekspor rekaman aktivitas OTLP OpenTelemetry di aplikasi Anda. Pilih versi dependensi yang sesuai untuk aplikasi dan sistem build Anda.

    Java

    Untuk aplikasi Java, di skrip build.gradle, tambahkan dependensi berikut:

    // use the latest versions
    implementation("io.opentelemetry:opentelemetry-exporter-otlp:1.56.0")
    implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.56.0")
    

    Go

    Bagian ini mengilustrasikan perubahan yang perlu Anda lakukan pada dependensi saat menggunakan gRPC untuk ekspor. Jika Anda menggunakan data yang dienkode protobuf melalui koneksi HTTP untuk diekspor, sertakan paket otlptracehttp sebagai dependensi. Untuk mengetahui informasi selengkapnya, lihat Aplikasi Go yang menggunakan HTTP.

    Untuk aplikasi Go yang menggunakan gRPC untuk ekspor, perbarui file go.mod untuk menyertakan dependensi berikut:

    // go.mod file
    require(
      // OTLP exporter that uses grpc protocol for export
      go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0
    )
    

    Python

    Bagian ini mengilustrasikan perubahan yang perlu Anda lakukan pada dependensi saat menggunakan gRPC untuk ekspor. Jika Anda menggunakan data yang dienkode protobuf melalui koneksi HTTP untuk diekspor, sertakan paket opentelemetry-exporter-otlp-proto-http sebagai persyaratan. Untuk mengetahui informasi selengkapnya, lihat Aplikasi Python.

    Untuk aplikasi Python yang menggunakan gRPC untuk ekspor, instal dependensi berikut atau perbarui file requirements.txt:

    # Requirements.txt - use appropriate versions
    #
    # OTLP exporter that uses grcp protocol for export
    opentelemetry-exporter-otlp-proto-grpc==1.39.0
    grpcio==1.76.0
    

    Node.js

    Bagian ini mengilustrasikan perubahan yang perlu Anda lakukan pada dependensi saat menggunakan gRPC untuk ekspor. Jika Anda menggunakan data yang dienkode protobuf melalui koneksi HTTP untuk diekspor, sertakan paket @opentelemetry/exporter-trace-otlp-proto sebagai dependensi. Untuk mengetahui informasi selengkapnya, lihat Aplikasi Node.js.

    Untuk aplikasi Node.js yang mengekspor menggunakan gRPC, tambahkan dependensi berikut.

    "@opentelemetry/exporter-trace-otlp-grpc": "0.203.0",
    "@grpc/grpc-js": "1.13.4",
    

    Mengganti penggunaan pengekspor Google Cloud dengan pengekspor OTLP

    Perbarui kode aplikasi Anda sehingga OpenTelemetry SDK dikonfigurasi untuk menggunakan pengekspor OTLP OpenTelemetry, bukan pengekspor rekaman aktivitas Google Cloud . Perubahan yang diperlukan bergantung pada bahasa.

    Java

    Untuk aplikasi Java, lakukan hal berikut:

    1. Tambahkan pernyataan impor berikut:

      import io.opentelemetry.sdk.OpenTelemetrySdk;
      import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
      
    2. Perbarui kode aplikasi untuk menggunakan modul Autoconfigure OpenTelemetry SDK untuk mengonfigurasi SDK:

      public static void main(String[] args) {
          // Configure the OpenTelemetry pipeline with Auto configuration
          openTelemetrySdk = AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk();
          ...
      }
      
    3. Konfigurasi properti sistem yang digunakan modul konfigurasi otomatis saat runtime. Modul tersebut menggunakan properti tersebut untuk mem-bootstrap SDK. Anda juga dapat menggunakan variabel lingkungan, bukan properti sistem. Untuk mengetahui informasi selengkapnya, lihat Variabel lingkungan dan properti sistem.

      Aplikasi contoh menentukan properti sistem dalam skrip build.gradle:

      // You can switch the desired protocol here by changing `otel.exporter.otlp.protocol`.
      def autoconf_config = [
        '-Dotel.exporter.otlp.endpoint=https://telemetry.googleapis.com',
        '-Dotel.traces.exporter=otlp',
        '-Dotel.logs.exporter=none',
        '-Dotel.metrics.exporter=none',
        '-Dotel.service.name=my-service',
        '-Dotel.exporter.otlp.protocol=http/protobuf',
        '-Dotel.java.global-autoconfigure.enabled=true',
        // ID of your Google Cloud Project, required by the auth extension
        '-Dgoogle.cloud.project=PROJECT_ID',
      ]
      
      // Now pass the config as JVM arguments to your java application:
      application {
              // Replace with the fully qualified name of your Main class.
        mainClassName = 'com.example.Main'
        applicationDefaultJvmArgs = autoconf_config
      }
      

      Jika Anda lebih suka mengekspor data rekaman aktivitas menggunakan gRPC, tetapkan protokol OTLP ke grpc, bukan http/protobuf.

    Go

    Bagian ini mengilustrasikan perubahan yang perlu Anda lakukan saat menggunakan gRPC untuk pengeksporan. Jika Anda menggunakan data yang dienkode protobuf melalui koneksi HTTP untuk diekspor, Anda harus mengimpor paket otlptracehttp dan juga mengonfigurasi pengekspor dengan opsi yang sesuai. Untuk mengetahui informasi selengkapnya, lihat Aplikasi Go yang menggunakan HTTP.

    Untuk aplikasi Go yang menggunakan gRPC untuk ekspor, tambahkan pernyataan impor berikut:

    import (
        "context"
        "go.opentelemetry.io/otel"
        "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
        sdktrace "go.opentelemetry.io/otel/sdk/trace"
        // other dependencies
    )
    

    Selain itu, perbarui kode inisialisasi untuk mengonfigurasi TraceProvider dengan pengekspor gRPC:

    
    // Initializes OpenTelemetry with OTLP exporters
    ctx := context.Background()
    
    // creds: configure Application Default Credentials
    
    // Initialize the OTLP gRPC exporter
    exporter, err := otlptracegrpc.New(ctx)
    if err != nil {
      panic(err)
    }
    
    // set OTEL_RESOURCE_ATTRIBUTES="gcp.project_id=<project_id>"
    // set endpoint with OTEL_EXPORTER_OTLP_ENDPOINT=https://<endpoint>
    // set OTEL_EXPORTER_OTLP_HEADERS="x-goog-user-project=<project_id>"
    exporter, err := otlptracegrpc.New(ctx, otlptracegrpc.WithDialOption(grpc.WithPerRPCCredentials(creds)))
    if err != nil {
      panic(err)
    }
    
    tp := sdktrace.NewTracerProvider(
      // For this example code we use sdktrace.AlwaysSample sampler to sample all traces.
      // In a production application, use sdktrace.TraceIDRatioBased with a desired probability.
      sdktrace.WithSampler(sdktrace.AlwaysSample()),
      sdktrace.WithBatcher(exporter))
    
    otel.SetTracerProvider(tp)
    

    Python

    Bagian ini mengilustrasikan perubahan yang perlu Anda lakukan saat menggunakan gRPC untuk pengeksporan. Jika Anda menggunakan data yang dienkode protobuf melalui koneksi HTTP untuk diekspor, Anda harus mengimpor dari paket opentelemetry.exporter.otlp.proto.http dan juga mengonfigurasi pengekspor dengan opsi yang sesuai. Untuk mengetahui informasi selengkapnya, lihat Aplikasi Python.

    Untuk aplikasi Python yang menggunakan gRPC untuk ekspor, tambahkan impor berikut:

    from opentelemetry import trace
    from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import (
        OTLPSpanExporter,
    )
    from opentelemetry.sdk.resources import SERVICE_NAME, Resource
    

    Selain itu, perbarui kode inisialisasi untuk mengonfigurasi TraceProvider dengan pengekspor gRPC:

    # Initialize OpenTelemetry with OTLP exporters
    
    # channel_creds: configure Application Default Credentials
    
    trace_provider = TracerProvider(resource=resource)
    processor = BatchSpanProcessor(
        OTLPSpanExporter(
            credentials=channel_creds,
            endpoint="https://telemetry.googleapis.com:443/v1/traces",
        )
    )
    trace_provider.add_span_processor(processor)
    trace.set_tracer_provider(trace_provider)
    tracer = trace.get_tracer("my.tracer.name")
    

    Node.js

    Bagian ini mengilustrasikan perubahan yang perlu Anda lakukan saat menggunakan gRPC untuk pengeksporan. Jika Anda menggunakan data yang dienkode protobuf melalui koneksi HTTP untuk diekspor, impor paket @opentelemetry/exporter-trace-otlp-proto. Untuk mengetahui informasi selengkapnya, lihat Aplikasi Node.js.

    Untuk aplikasi Node.js yang menggunakan gRPC untuk ekspor, tambahkan impor berikut:

    import {OTLPTraceExporter} from '@opentelemetry/exporter-trace-otlp-grpc';
    

    Selain itu, perbarui kode inisialisasi untuk mengonfigurasi TraceProvider dengan pengekspor gRPC:

    
    // Express App that exports traces via gRPC with protobuf
    async function main() {
      // authenticatedClient: configure Application Default Credentials
    
      // Configure the TraceExporter
      const sdk = new NodeSDK({
        traceExporter: new OTLPTraceExporter({
          credentials: credentials.combineChannelCredentials(
            credentials.createSsl(),
            credentials.createFromGoogleCredential(authenticatedClient),
          ),
        }),
      });
      sdk.start();
    }
    

    Mengonfigurasi autentikasi

    Dengan perubahan sebelumnya pada konfigurasi OpenTelemetry SDK, aplikasi Anda dikonfigurasi untuk mengekspor rekaman aktivitas menggunakan eksportir OTLP OpenTelemetry menggunakan gRPC atau HTTP. Selanjutnya, Anda perlu mengonfigurasi pengekspor untuk mengirim rekaman aktivitas tersebut ke project Google Cloud Anda.

    Untuk mengonfigurasi autentikasi, lakukan hal berikut:

    1. Konfigurasi header autentikasi untuk panggilan ekspor.
    2. Konfigurasi atribut resource OpenTelemetry dan header OTLP yang diperlukan.
    3. Konfigurasi endpoint eksportir.

    Bagian ini menjelaskan setiap langkah tersebut.

    Mengonfigurasi header autentikasi untuk panggilan ekspor

    Untuk mengonfigurasi eksportir dengan Google Cloud Kredensial Default Aplikasi (ADC), tambahkan Google Auth Library khusus bahasa.

    Java

    Untuk melakukan autentikasi ke Trace, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

    Untuk aplikasi Java yang menggunakan modul Autoconfigure SDK OpenTelemetry, sebaiknya Anda juga menggunakan Ekstensi Autentikasi Google Cloud.

    // build.gradle
    implementation("io.opentelemetry.contrib:opentelemetry-gcp-auth-extension:1.52.0-alpha")
    

    Go

    Untuk melakukan autentikasi ke Trace, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

    Untuk aplikasi Go yang menggunakan gRPC untuk ekspor, perbarui file go.mod untuk menyertakan dependensi berikut:

    // go.mod file
    require (
        // When using gRPC based OTLP exporter, auth is built-in
        google.golang.org/grpc v1.75.1
    )
    

    Untuk aplikasi Go yang menggunakan HTTP untuk ekspor, perbarui file go.mod untuk menyertakan dependensi berikut:

    // go.mod file
    require (
        // When using http based OTLP exported, use explicit auth library
      golang.org/x/oauth2 v0.31.0
    )
    

    Python

    Untuk melakukan autentikasi ke Trace, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

    Untuk aplikasi Python, tambahkan impor berikut:

    # requirements.txt
    # Google Auth Library
    google-auth==2.38.0
    

    Node.js

    Untuk melakukan autentikasi ke Trace, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

    Untuk aplikasi Node.js, tambahkan dependensi berikut:

    "google-auth-library": "9.15.1",
    

    Selanjutnya, perbarui kode aplikasi yang membuat eksportir rentang OTLP sehingga menambahkan token otorisasi yang diambil dari library ke header. Langkah ini khusus untuk bahasa tertentu, tetapi implementasinya serupa untuk semua bahasa.

    Java

    Jika Anda memiliki aplikasi Java yang menggunakan modul Autoconfigure OpenTelemetry SDK dan Ekstensi Autentikasi Google Cloud, Anda tidak perlu melakukan langkah-langkah khusus selama inisialisasi aplikasi. Modul konfigurasi otomatis akan otomatis melakukan langkah-langkah yang diperlukan untuk mengonfigurasi ADC.

    Go

    Bagian ini mengilustrasikan perubahan yang perlu Anda lakukan saat menggunakan gRPC untuk pengeksporan. Jika Anda menggunakan data yang dienkode protobuf melalui koneksi HTTP untuk diekspor, Anda harus mengimpor paket otlptracehttp dan mengonfigurasi pengekspor agar menjadi objek otlptracehttp. Untuk mengetahui informasi selengkapnya, lihat Aplikasi Go yang menggunakan HTTP.

    Untuk aplikasi Go yang menggunakan gRPC untuk ekspor, tambahkan pernyataan impor berikut:

    import (
        "context"
        "go.opentelemetry.io/otel"
        "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
        sdktrace "go.opentelemetry.io/otel/sdk/trace"
        // other dependencies
        "google.golang.org/grpc"
        "google.golang.org/grpc/credentials/oauth"
    )
    

    Selain itu, perbarui kode inisialisasi untuk mengonfigurasi ADC sebelum Anda membuat instance eksportir gRPC:

    // Initializes OpenTelemetry with OTLP exporters
    ctx := context.Background()
    
    // Retrieve and store Google application-default credentials
    creds, err := oauth.NewApplicationDefault(ctx)
    if err != nil {
      panic(err)
    }
    
    // set OTEL_RESOURCE_ATTRIBUTES="gcp.project_id=<project_id>"
    // set endpoint with OTEL_EXPORTER_OTLP_ENDPOINT=https://<endpoint>
    // set OTEL_EXPORTER_OTLP_HEADERS="x-goog-user-project=<project_id>"
    exporter, err := otlptracegrpc.New(ctx, otlptracegrpc.WithDialOption(grpc.WithPerRPCCredentials(creds)))
    if err != nil {
      panic(err)
    }
    
    // Other OpenTelemetry configuration remains unaffected.
    

    Python

    Bagian ini mengilustrasikan perubahan yang perlu Anda lakukan saat menggunakan gRPC untuk pengeksporan. Jika Anda menggunakan data yang dienkode protobuf melalui koneksi HTTP untuk diekspor, gunakan kredensial default. Anda juga harus meneruskan kredensial ini saat membuat instance BatchSpanProcessor. Untuk mengetahui informasi selengkapnya, lihat Aplikasi Python.

    Untuk aplikasi Python yang menggunakan gRPC untuk ekspor, tambahkan impor berikut:

    from opentelemetry import trace
    from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import (
        OTLPSpanExporter,
    )
    from opentelemetry.sdk.resources import SERVICE_NAME, Resource
    
    import google.auth
    import google.auth.transport.grpc
    import google.auth.transport.requests
    import grpc
    from google.auth.transport.grpc import AuthMetadataPlugin
    

    Selain itu, perbarui kode inisialisasi untuk mengonfigurasi ADC sebelum Anda membuat instance eksportir gRPC:

    credentials, _ = google.auth.default()
    request = google.auth.transport.requests.Request()
    resource = Resource.create(attributes={SERVICE_NAME: "otlp-gcp-grpc-sample"})
    
    auth_metadata_plugin = AuthMetadataPlugin(credentials=credentials, request=request)
    channel_creds = grpc.composite_channel_credentials(
        grpc.ssl_channel_credentials(),
        grpc.metadata_call_credentials(auth_metadata_plugin),
    )
    
    # Configure the TraceProvider
    

    Node.js

    Bagian ini mengilustrasikan perubahan yang perlu Anda lakukan saat menggunakan gRPC untuk pengeksporan. Jika Anda menggunakan data yang dienkode protobuf melalui koneksi HTTP untuk diekspor, perubahan yang perlu Anda lakukan sedikit berbeda dengan yang dijelaskan di sini. Untuk mempelajari lebih lanjut, lihat file app-http-proto-export.ts yang disertakan dalam aplikasi Node.js.

    Untuk aplikasi Node.js yang menggunakan gRPC untuk ekspor, tambahkan impor berikut:

    import {AuthClient, GoogleAuth} from 'google-auth-library';
    import {credentials} from '@grpc/grpc-js';
    

    Selain itu, perbarui kode inisialisasi untuk mengonfigurasi ADC sebelum Anda membuat instance eksportir gRPC:

    async function getAuthenticatedClient(): Promise<AuthClient> {
      const auth: GoogleAuth = new GoogleAuth({
        scopes: 'https://www.googleapis.com/auth/cloud-platform',
      });
      return await auth.getClient();
    }
    
    // Express App that exports traces via gRPC with protobuf
    async function main() {
      const authenticatedClient: AuthClient = await getAuthenticatedClient();
    
      // Configure the TraceExporter
    }
    

    Mengonfigurasi atribut resource OpenTelemetry yang diperlukan

    Tambahkan pasangan nilai kunci yang menentukan project Anda ke variabel lingkungan OTEL_RESOURCE_ATTRIBUTES. Untuk kunci, gunakan gcp.project_id. Untuk nilai, gunakan ID project Google Cloud Anda.

    Contoh:

    export OTEL_RESOURCE_ATTRIBUTES="gcp.project_id=PROJECT_ID"
    

    Jika Anda menggunakan Java dan mengonfigurasi aplikasi untuk menggunakan Ekstensi Autentikasi Google Cloud, seperti yang dilakukan aplikasi Java contoh, Anda tidak perlu menetapkan project ID sebagai bagian dari atribut resource OpenTelemetry. Namun, menetapkan atribut ini tidak berbahaya.

    Untuk mengetahui informasi selengkapnya tentang variabel lingkungan OpenTelemetry, lihat Konfigurasi SDK Umum.

    Menetapkan ID project kuota

    Project kuota adalah Google Cloud project yang melacak penggunaan permintaan API Anda. Karena Telemetry API adalah API berbasis klien, cara Anda melakukan autentikasi menentukan apakah project kuota diidentifikasi secara otomatis. Misalnya, Anda tidak perlu menentukan project kuota saat menggunakan akun layanan untuk autentikasi. Namun, Anda perlu menentukan project kuota saat kredensial pengguna digunakan untuk autentikasi.

    Anda dapat menetapkan project kuota menggunakan variabel lingkungan. Untuk menentukan variabel lingkungan mana yang akan ditetapkan untuk bahasa pemrograman Anda, lihat Menetapkan project kuota menggunakan variabel lingkungan.

    Misalnya, untuk Go, Anda dapat menetapkan project kuota sebagai berikut:

    export GOOGLE_CLOUD_QUOTA_PROJECT="QUOTA_PROJECT_ID"
    

    Untuk mengetahui informasi tentang cara mengatasi error autentikasi, lihat Kredensial pengguna tidak berfungsi.

    Mengonfigurasi endpoint pengekspor

    Tetapkan nilai variabel lingkungan OTEL_EXPORTER_OTLP_ENDPOINT ke endpoint OTLP untuk Google Cloud.

    Contoh:

    export OTEL_EXPORTER_OTLP_ENDPOINT=https://telemetry.googleapis.com
    

    Jika Anda menggunakan Java dan modul autoconfigure, Anda dapat menetapkan endpoint pengekspor menggunakan properti sistem, seperti yang dilakukan aplikasi Java contoh. Anda tidak perlu menyetel variabel lingkungan eksportir untuk konfigurasi tersebut.

    Untuk mengetahui informasi selengkapnya tentang variabel lingkungan OpenTelemetry, lihat Konfigurasi SDK Umum.