Vom Trace-Exporteur zum OTLP-Endpunkt migrieren

Sie können manuell instrumentierte Java-, Go-, Python- und Node.js-Anwendungen von einem Trace-Exporter von Google Cloud zu einem prozessinternen OpenTelemetry-OTLP-Exporter migrieren. Der OTLP-Exporter sendet Trace-Daten direkt an die Telemetrie (OTLP) API in Ihrem Google Cloud -Projekt. Dazu werden unterstützte Exportprotokolle (gRPC oder http/protobuf) verwendet.

Bei dieser Konfiguration werden nur Trace-Daten exportiert. Sie gilt nur für prozessinterne Exporteure. Wenn Ihre Anwendung einen OpenTelemetry-Collector verwendet, finden Sie weitere Informationen unter Collector-basierte Instrumentierungsbeispiele und Von Google erstellter OpenTelemetry-Collector.

Warum Sie migrieren sollten

Die OpenTelemetry SDKs generieren Log-, Messwert- und Trace-Daten in einem Format, das im Allgemeinen mit den Proto-Dateien des OpenTelemetry-Protokolls übereinstimmt. Felder können jedoch vor dem Speichern von einem OpenTelemetry-spezifischen Datentyp in einen JSON-Datentyp konvertiert werden.

Wenn eine Anwendung diese Daten mithilfe eines Google Cloud -Exporters in ein Google Cloud -Projekt exportiert, führt dieser Exporter die folgenden Schritte aus:

  1. Die aufgezeichneten Daten werden vom OTLP-Format in ein proprietäres Format umgewandelt, das von der Cloud Logging API, der Cloud Monitoring API oder der Cloud Trace API definiert wird.
  2. Die transformierten Daten werden an die entsprechende API gesendet und dann in Ihrem Google Cloud -Projekt gespeichert.

Für Trace-Daten empfehlen wir, Ihre Anwendung so zu migrieren, dass die Telemetry (OTLP) API zum Exportieren von Daten verwendet wird, da für diesen Export keine Datentransformation erforderlich ist. Die Datentransformation kann zu einem Verlust einiger Daten führen. Beispielsweise kann das proprietäre Format niedrigere Limits für bestimmte Felder haben oder einige OTLP-Felder werden möglicherweise nicht einem Feld im proprietären Format zugeordnet.

Verfügbare Beispiele

Die auf dieser Seite genannten Beispielanwendungen sind auf GitHub verfügbar. Die meisten Anwendungen sind so konfiguriert, dass Trace-Daten mithilfe von gRPC exportiert werden. Das bedeutet, dass sie protobuf-codierte Daten im gRPC-Wire-Format über HTTP/2-Verbindungen senden. Beispielcode wird auch für Anwendungen bereitgestellt, die so konfiguriert sind, dass Trace-Daten als protobuf-codierte Daten über HTTP-Verbindungen exportiert werden:

  • Java-Anwendung

    Die Beispielanwendung ist so konfiguriert, dass Traces als protobuf-codierte Daten über HTTP-Verbindungen exportiert werden. Wenn Sie gRPC verwenden möchten, ist die Instrumentierung in diesem Beispiel anwendbar. Sie müssen jedoch die Systemattribute ändern, die das Autokonfigurationsmodul verwendet. In der Beispielanwendung wird der Exporter http/protobuf angegeben. Wenn Sie gRPC verwenden möchten, ändern Sie diese Einstellung in grpc.

    Wir empfehlen, dass Ihre Java-Anwendungen, wie die Beispielanwendung, das OpenTelemetry SDK Autoconfigure-Modul verwenden, um das SDK zu konfigurieren.

  • Go-Anwendung, die gRPC verwendet und Go-Anwendung, die HTTP verwendet

    Es gibt zwei Go-Repositories. In einem Repository verwendet die Beispielanwendung gRPC. Das Beispiel im anderen Repository verwendet protobuf-codierte Daten über HTTP-Verbindungen.

  • Python-Repository

    Dieses Repository enthält zwei Beispiele, eines für gRPC und eines, das protobuf-codierte Daten über HTTP-Verbindungen verwendet.

  • Node.js-Anwendung

    Dieses Repository enthält zwei Beispiele, eines für gRPC und eines, das protobuf-codierte Daten über HTTP-Verbindungen verwendet.

Hinweis

Bevor Sie Ihre Anwendung migrieren, um Trace-Daten an den OTLP-Endpunkt zu senden, aktivieren Sie die Telemetry API und prüfen Sie, ob Ihnen die erforderlichen IAM-Rollen (Identity and Access Management) zugewiesen wurden. Möglicherweise müssen Sie einem Dienstkonto auch IAM-Rollen zuweisen.

Abrechnung und Telemetry API aktivieren

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  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, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

Berechtigungen konfigurieren

Migrationsanleitung für die manuelle Instrumentierung

In diesem Abschnitt wird beschrieben, wie Sie Ihre Anwendung so ändern, dass Ihre Trace-Daten mithilfe der Telemetry API an Ihr Google Cloud -Projekt gesendet werden.

Abhängigkeiten hinzufügen

Als Erstes müssen Sie in Ihrer Anwendung Abhängigkeiten für den OTLP-Trace-Exporter von OpenTelemetry hinzufügen. Wählen Sie die für Ihre Anwendung und Ihr Build-System geeigneten Abhängigkeitsversionen aus.

Java

Fügen Sie für eine Java-Anwendung im build.gradle-Skript die folgenden Abhängigkeiten hinzu:

implementation("io.opentelemetry:opentelemetry-exporter-otlp:1.62.0")
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.62.0")

Go

In diesem Abschnitt werden die Änderungen beschrieben, die Sie an Ihren Abhängigkeiten vornehmen müssen, wenn Sie gRPC für den Export verwenden. Wenn Sie protobuf-codierte Daten über HTTP-Verbindungen für den Export verwenden, fügen Sie das Paket otlptracehttp als Abhängigkeit hinzu. Weitere Informationen finden Sie unter Go-Anwendung, die HTTP verwendet.

Aktualisieren Sie für eine Go-Anwendung, die gRPC für den Export verwendet, die Datei go.mod, um die folgende Abhängigkeit einzuschließen:

require (
	// ...
	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.44.0
)

Python

In diesem Abschnitt werden die Änderungen beschrieben, die Sie an Ihren Abhängigkeiten vornehmen müssen, wenn Sie gRPC für den Export verwenden. Wenn Sie protobuf-codierte Daten über HTTP-Verbindungen für den Export verwenden, fügen Sie das Paket opentelemetry-exporter-otlp-proto-http als Anforderung hinzu. Weitere Informationen finden Sie im Python-Repository.

Installieren Sie für eine Python-Anwendung, die gRPC für den Export verwendet, die folgenden Abhängigkeiten oder aktualisieren Sie die Datei requirements.txt:

opentelemetry-exporter-otlp-proto-grpc==1.42.1
grpcio==1.80.0

Node.js

In diesem Abschnitt werden die Änderungen beschrieben, die Sie an Ihren Abhängigkeiten vornehmen müssen, wenn Sie gRPC für den Export verwenden. Wenn Sie protobuf-codierte Daten über HTTP-Verbindungen für den Export verwenden, fügen Sie das Paket @opentelemetry/exporter-trace-otlp-proto als Abhängigkeit hinzu. Weitere Informationen finden Sie unter Node.js-Anwendung.

Fügen Sie für eine Node.js-Anwendung, die Trace-Daten mit gRPC exportiert, die folgenden Abhängigkeiten hinzu:

"@opentelemetry/exporter-trace-otlp-grpc": "0.221.0",
"@grpc/grpc-js": "1.14.4"

Ersetzen Sie die Verwendung von Google Cloud -Exportern durch OTLP-Exporter.

Aktualisieren Sie Ihren Anwendungscode so, dass das OpenTelemetry SDK so konfiguriert ist, dass die OpenTelemetry-OTLP-Exporter anstelle eines Google Cloud Trace-Exporters verwendet werden. Die erforderlichen Änderungen sind sprachspezifisch.

Java

Gehen Sie bei einer Java-Anwendung so vor:

  1. Fügen Sie die folgenden Importanweisungen hinzu:

    import io.opentelemetry.sdk.OpenTelemetrySdk;
    import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
  2. Aktualisieren Sie den Anwendungscode, um das OpenTelemetry SDK Autoconfigure-Modul zum Konfigurieren des SDK zu verwenden:

    public static void main(String[] args) {
      // Configure the OpenTelemetry pipeline with Auto configuration
      openTelemetrySdk = AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk();
    
      // ...
    }
  3. Konfigurieren Sie die Systemeigenschaften, die das Autokonfigurationsmodul zur Laufzeit verwendet. Dieses Modul verwendet diese Properties, um das SDK zu bootstrappen. Sie können auch Umgebungsvariablen anstelle von Systemeigenschaften verwenden. Weitere Informationen finden Sie unter Umgebungsvariablen und Systemeigenschaften.

    In der Beispielanwendung werden die Systemattribute im Skript build.gradle definiert:

    // 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=otlptrace-example',
    	'-Dotel.exporter.otlp.protocol=http/protobuf',
    	'-Dotel.java.global-autoconfigure.enabled=true',
    ]

    Übergeben Sie die Konfiguration außerdem als JVM-Argumente:

    application {
    	mainClassName = 'com.google.cloud.opentelemetry.samples.otlptrace.OTLPTraceExample'
    	// Pass the config as JVM arguments to the Java application
    	applicationDefaultJvmArgs = autoconf_config
    }

    Wenn Sie Trace-Daten lieber mit gRPC exportieren möchten, legen Sie das OTLP-Protokoll auf grpc statt auf http/protobuf fest.

Go

In diesem Abschnitt werden die Änderungen beschrieben, die Sie vornehmen müssen, wenn Sie gRPC für den Export verwenden. Wenn Sie protobuf-codierte Daten über HTTP-Verbindungen für den Export verwenden, müssen Sie das Paket otlptracehttp importieren und den Exporter mit den entsprechenden Optionen konfigurieren. Weitere Informationen finden Sie unter Go-Anwendung, die HTTP verwendet.

Fügen Sie für eine Go-Anwendung, die gRPC für den Export verwendet, die folgenden Importanweisungen hinzu:

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

	// ...
)

Aktualisieren Sie außerdem den Initialisierungscode, um den TraceProvider mit dem gRPC-Exporter zu konfigurieren:

// Initializes OpenTelemetry with OTLP exporters
ctx := context.Background()

// Configure gRPC client with 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>"
// Configure exporter to use the credentials
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

In diesem Abschnitt werden die Änderungen beschrieben, die Sie vornehmen müssen, wenn Sie gRPC für den Export verwenden. Wenn Sie protobuf-codierte Daten über HTTP-Verbindungen für den Export verwenden, müssen Sie das Paket opentelemetry.exporter.otlp.proto.http importieren und den Exporter mit den entsprechenden Optionen konfigurieren. Weitere Informationen finden Sie im Python-Repository.

Fügen Sie für eine Python-Anwendung, die gRPC für den Export verwendet, die folgenden Importe hinzu:

from opentelemetry import trace
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import (
    OTLPSpanExporter,
)

Aktualisieren Sie außerdem den Initialisierungscode, um den TraceProvider mit dem gRPC-Exporter zu konfigurieren:

# 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

In diesem Abschnitt werden die Änderungen beschrieben, die Sie vornehmen müssen, wenn Sie gRPC für den Export verwenden. Wenn Sie protobuf-codierte Daten über HTTP-Verbindungen für den Export verwenden, importieren Sie das Paket @opentelemetry/exporter-trace-otlp-proto. Weitere Informationen finden Sie unter Node.js-Anwendung.

Fügen Sie für eine Node.js-Anwendung, die gRPC für den Export verwendet, die folgenden Importe hinzu:

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

Aktualisieren Sie außerdem den Initialisierungscode, um den TraceProvider mit dem gRPC-Exporter zu konfigurieren:

const sdk = new NodeSDK({
  traceExporter: new OTLPTraceExporter({
    credentials: credentials.combineChannelCredentials(
      credentials.createSsl(),
      credentials.createFromGoogleCredential({
        async getRequestHeaders(
          url?: string,
        ): Promise<{[index: string]: string}> {
          const rawHeaders = await authenticatedClient.getRequestHeaders(url);
          return Object.fromEntries(rawHeaders.entries());
        },
      }),
    ),
  }),
});
sdk.start();

Authentifizierung konfigurieren

Mit den vorherigen Änderungen an der OpenTelemetry SDK-Konfiguration ist Ihre Anwendung so konfiguriert, dass Traces mit den OpenTelemetry-OTLP-Exportern entweder über gRPC oder HTTP exportiert werden. Als Nächstes müssen Sie die Exporter so konfigurieren, dass diese Traces an Ihr Google Cloud -Projekt gesendet werden.

So konfigurieren Sie die Authentifizierung:

  1. Authentifizierungsheader für die Exportaufrufe konfigurieren
  2. Konfigurieren Sie die erforderlichen OpenTelemetry-Ressourcenattribute und OTLP-Header.
  3. Exporter-Endpunkt konfigurieren.

In diesem Abschnitt werden die einzelnen Schritte im Detail beschrieben.

Authentifizierungsheader für die Exportaufrufe konfigurieren

Wenn Sie den Exporter mit Ihren Google Cloud-Standardanmeldedaten für Anwendungen konfigurieren möchten, fügen Sie eine sprachspezifische Google Auth-Bibliothek hinzu.

Java

Für eine Java-Anwendung, die das OpenTelemetry SDK Autoconfigure-Modul verwendet, empfehlen wir, auch die Google Cloud Authentication Extension zu verwenden.

implementation("io.opentelemetry.contrib:opentelemetry-gcp-auth-extension:1.56.0-alpha")

Go

Aktualisieren Sie für eine Go-Anwendung, die gRPC für den Export verwendet, die Datei go.mod, um die folgende Abhängigkeit einzuschließen:

// When using gRPC based OTLP exporter, the auth is built in.
google.golang.org/grpc v1.82.1

Aktualisieren Sie für eine Go-Anwendung, die HTTP für den Export verwendet, die Datei go.mod, um die folgende Abhängigkeit einzufügen:

// When using http based OTLP exporter, use explicit auth library
golang.org/x/oauth2 v0.36.0

Python

Fügen Sie für eine Python-Anwendung die folgenden Abhängigkeiten zur Datei requirements.txt hinzu:

# Google Auth Library
google-auth==2.53.0

Node.js

Fügen Sie für eine Node.js-Anwendung die folgende Abhängigkeit hinzu:

"google-auth-library": "10.5.0"

Aktualisieren Sie als Nächstes den Anwendungscode, der den OTLP-Span-Exporter erstellt, sodass die aus der Bibliothek abgerufenen Autorisierungstokens den Headern hinzugefügt werden. Dieser Schritt ist sprachspezifisch, die Implementierung ist jedoch für alle Sprachen ähnlich.

Java

Wenn Sie eine Java-Anwendung haben, die das OpenTelemetry SDK Autoconfigure-Modul und die Google Cloud Authentication Extension verwendet, müssen Sie während der Initialisierung Ihrer Anwendung keine besonderen Schritte ausführen. Das Modul „autoconfigure“ führt automatisch die Schritte aus, die zum Konfigurieren von Standardanmeldedaten für Anwendungen erforderlich sind.

Go

In diesem Abschnitt werden die Änderungen beschrieben, die Sie vornehmen müssen, wenn Sie gRPC für den Export verwenden. Wenn Sie protobuf-codierte Daten über HTTP-Verbindungen für den Export verwenden, müssen Sie das Paket otlptracehttp importieren und den Exporter als otlptracehttp-Objekt konfigurieren. Weitere Informationen finden Sie unter Go-Anwendung, die HTTP verwendet.

Fügen Sie für eine Go-Anwendung, die gRPC für den Export verwendet, die folgenden Importanweisungen hinzu:

"google.golang.org/grpc"
"google.golang.org/grpc/credentials/oauth"

Aktualisieren Sie außerdem den Initialisierungscode, um die Standardanmeldedaten für Anwendungen zu konfigurieren, bevor Sie den gRPC-Exporter instanziieren:

// Initializes OpenTelemetry with OTLP exporters
ctx := context.Background()

// Configure gRPC client with 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>"
// Configure exporter to use the credentials
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

In diesem Abschnitt werden die Änderungen beschrieben, die Sie vornehmen müssen, wenn Sie gRPC für den Export verwenden. Wenn Sie protobuf-codierte Daten über HTTP-Verbindungen für den Export verwenden, verwenden Sie die Standardanmeldedaten. Sie müssen diese Anmeldedaten auch übergeben, wenn Sie die BatchSpanProcessor instanziieren. Weitere Informationen finden Sie im Python-Repository.

Fügen Sie für eine Python-Anwendung, die gRPC für den Export verwendet, die folgenden Importe hinzu:

import google.auth
import google.auth.transport.grpc
import google.auth.transport.requests
import grpc
from google.auth.transport.grpc import AuthMetadataPlugin

Aktualisieren Sie außerdem den Initialisierungscode, um die Standardanmeldedaten für Anwendungen zu konfigurieren, bevor Sie den gRPC-Exporter instanziieren:

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),
)

Node.js

In diesem Abschnitt werden die Änderungen beschrieben, die Sie vornehmen müssen, wenn Sie gRPC für den Export verwenden. Wenn Sie protobuf-codierte Daten über HTTP-Verbindungen für den Export verwenden, unterscheiden sich die erforderlichen Änderungen geringfügig von den hier beschriebenen. Weitere Informationen finden Sie in der Datei app-http-proto-export.ts, die in der Node.js-Anwendung enthalten ist.

Fügen Sie für eine Node.js-Anwendung, die gRPC für den Export verwendet, die folgenden Importe hinzu:

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

Aktualisieren Sie außerdem den Initialisierungscode, um die Standardanmeldedaten für Anwendungen zu konfigurieren, bevor Sie den gRPC-Exporter instanziieren:

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();

  // ...
}

Erforderliche OpenTelemetry-Ressourcenattribute konfigurieren

Fügen Sie der Umgebungsvariablen OTEL_RESOURCE_ATTRIBUTES das Schlüssel/Wert-Paar hinzu, das Ihr Projekt angibt. Verwenden Sie als Schlüssel gcp.project_id. Verwenden Sie als Wert die ID Ihres Google Cloud -Projekts.

Beispiel:

export OTEL_RESOURCE_ATTRIBUTES="gcp.project_id=PROJECT_ID"

Wenn Sie Java verwenden und Ihre Anwendung so konfigurieren, dass sie die Google Cloud-Authentifizierungserweiterung verwendet, wie es in der Java-Beispielanwendung der Fall ist, müssen Sie die Projekt-ID nicht als Teil der OpenTelemetry-Ressourcenattribute festlegen. Das Festlegen dieses Attributs ist jedoch nicht schädlich.

Weitere Informationen zu OpenTelemetry-Umgebungsvariablen finden Sie unter Allgemeine SDK-Konfiguration.

Kontingentprojekt-ID festlegen

Das Kontingentprojekt ist das Google Cloud -Projekt, in dem Ihre Nutzung von API-Anfragen erfasst wird. Da die Telemetry API eine clientbasierte API ist, hängt es von der Authentifizierungsmethode ab, ob das Kontingentprojekt automatisch identifiziert wird. Sie müssen beispielsweise das Kontingentprojekt nicht angeben, wenn Sie ein Dienstkonto zur Authentifizierung verwenden. Sie müssen jedoch das Kontingentprojekt angeben, wenn Nutzeranmeldedaten für die Authentifizierung verwendet werden.

Sie können ein Kontingentprojekt mithilfe einer Umgebungsvariablen festlegen. Informationen dazu, welche Umgebungsvariable für Ihre Programmiersprache festgelegt werden muss, finden Sie unter Kontingentprojekt mit einer Umgebungsvariablen festlegen.

In Go können Sie das Kontingentprojekt beispielsweise so festlegen:

export GOOGLE_CLOUD_QUOTA_PROJECT="QUOTA_PROJECT_ID"

Informationen zur Behebung von Authentifizierungsfehlern finden Sie unter Nutzeranmeldedaten funktionieren nicht.

Exporter-Endpunkt konfigurieren

Legen Sie den Wert der Umgebungsvariablen OTEL_EXPORTER_OTLP_ENDPOINT auf den OTLP-Endpunkt für Google Cloudfest.

Beispiel:

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

Wenn Sie Java und das Autokonfigurationsmodul verwenden, können Sie den Exporter-Endpunkt mithilfe von Systemeigenschaften festlegen, wie es in der Java-Beispielanwendung der Fall ist. Sie müssen die Umgebungsvariable für den Exporter für diese Konfiguration nicht festlegen.

Weitere Informationen zu OpenTelemetry-Umgebungsvariablen finden Sie unter Allgemeine SDK-Konfiguration.