Freigeben über


Azure OpenTelemetry Instrumentation-Bibliothek für JavaScript

Erste Schritte

Derzeit unterstützte Umgebungen

Weitere Informationen finden Sie in unserer Supportrichtlinie.

Voraussetzungen

Sie müssen das OpenTelemetry SDK konfigurieren, um Telemetriedaten zu erzeugen. Während der Konfiguration von OpenTelemetry außerhalb des Umfangs dieser README liegt, empfehlen wir Ihnen, die OpenTelemetry-Dokumentation zu überprüfen,, um mit der Verwendung von OpenTelemetry zu beginnen.

Installieren des @azure/opentelemetry-instrumentation-azure-sdk-Pakets

Installieren Sie die Azure OpenTelemetry Instrumentation-Clientbibliothek mit npm:

npm install @azure/opentelemetry-instrumentation-azure-sdk

Browserunterstützung

JavaScript-Bündel

Um diese Clientbibliothek im Browser zu verwenden, müssen Sie zuerst einen Bundler verwenden. Ausführliche Informationen dazu finden Sie in unserer Bündelungsdokumentation.

Schlüsselkonzepte

  • Die createAzureSdkInstrumentation-Funktion ist der Haupthaken, der von dieser Bibliothek exportiert wird und eine Möglichkeit zum Erstellen eines Azure SDK Instrumentation-Objekts bietet, das bei OpenTelemetry registriert werden soll.

Beispiele

Aktivieren der OpenTelemetry-Instrumentierung

const { registerInstrumentations } = require("@opentelemetry/instrumentation");
const { createAzureSdkInstrumentation } = require("@azure/opentelemetry-instrumentation-azure-sdk");

// Set-up and configure a Node Tracer Provider using OpenTelemetry
const opentelemetry = require("@opentelemetry/api");
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const { SimpleSpanProcessor, ConsoleSpanExporter } = require("@opentelemetry/tracing");

const provider = new NodeTracerProvider();
provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
provider.register();

registerInstrumentations({
  instrumentations: [createAzureSdkInstrumentation()],
});

// Continue to import any Azure SDK client libraries after registering the instrumentation.

const { KeyClient } = require("@azure/keyvault-keys");
const { DefaultAzureCredential } = require("@azure/identity"); 

const keyClient = new KeyClient(url, new DefaultAzureCredential()); 

async function main() {
  // Tracing is now enabled using automatic span propagation with an active context.
  await keyClient.getKey("MyKeyName");

  // If your scenario requires manual span propagation, all Azure client libraries
  // support explicitly passing a parent context via an `options` parameter.
  // Get a tracer from a registered provider, create a span, and get the current context.
  const tracer = opentelemetry.trace.getTracer("my-tracer");
  const span = tracer.startSpan("main");
  const ctx = opentelemetry.trace.setSpan(opentelemetry.context.active(), span);

  await keyClient.getKey("MyKeyName", {
    tracingOptions: {
      // ctx will be used as the parent context for all operations.
      tracingContext: ctx,
    },
  });
}

Fehlerbehebung

Protokollierung

Das Aktivieren der Protokollierung kann hilfreiche Informationen zu Fehlern aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die AZURE_LOG_LEVEL Umgebungsvariable auf infofest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel im @azure/loggeraktiviert werden:

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

Ausführlichere Anweisungen zum Aktivieren von Protokollen finden Sie in den @azure/Logger-Paketdokumenten.

Instrumentierung für ES-Module

Dieses Paket verwendet @opentelemetry/Instrumentation zum Einrichten der erforderlichen Hooks und Ladegeräte. Anweisungen zum Konfigurieren der Ablaufverfolgung für ESM-Pakete finden Sie im README- von @opentelemetry/Instrumentation.

Beitragend

Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie bitte den mitwirkenden Leitfaden, um mehr über das Erstellen und Testen des Codes zu erfahren.

Aufrufe