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
- Untuk contoh instrumentasi, lihat Contoh instrumentasi berbasis pengumpul.
- Untuk mengetahui informasi tentang pengumpul, lihat Pengumpul OpenTelemetry Buatan Google.
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:
- Mengubah data yang direkam dari format OTLP menjadi format eksklusif yang ditentukan oleh Cloud Logging API, Cloud Monitoring API, atau Cloud Trace API.
- 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 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 kegrpc.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.
-
Repositori ini berisi dua sampel, satu untuk gRPC dan satu yang menggunakan data yang dienkode protobuf melalui koneksi HTTP.
-
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
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. Berikan peran IAM berikut ke akun layanan yang digunakan aplikasi Anda:
- Cloud Telemetry Traces Writer (
roles/telemetry.tracesWriter) - Logs Writer (
roles/logging.logWriter) | - Monitoring Metric Writer (
roles/monitoring.metricWriter)
Untuk mempelajari Kredensial Default Aplikasi (ADC), lihat Cara kerja Kredensial Default Aplikasi dan Menyiapkan Kredensial Default Aplikasi (ADC) untuk lingkungan pengembangan lokal.
- Cloud Telemetry Traces Writer (
-
Untuk mendapatkan izin yang diperlukan untuk melihat data log, metrik, dan rekaman aktivitas, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
-
Logs Viewer (
roles/logging.viewer) -
Monitoring Viewer (
roles/monitoring.viewer) -
Cloud Trace User (
roles/cloudtrace.user)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
-
Logs Viewer (
Tambahkan pernyataan impor berikut:
import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;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(); ... }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, bukanhttp/protobuf.- Konfigurasi header autentikasi untuk panggilan ekspor.
- Konfigurasi atribut resource OpenTelemetry dan header OTLP yang diperlukan.
- Konfigurasi endpoint eksportir.
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:
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:
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.