Dela via


Azure OpenTelemetry Instrumentation-bibliotek för JavaScript

Komma igång

Miljöer som stöds för närvarande

Mer information finns i vår supportprincip.

Förutsättningar

Du måste konfigurera OpenTelemetry SDK för att kunna producera telemetridata. Även om konfigurationen av OpenTelemetry ligger utanför readme-omfånget rekommenderar vi att du läser OpenTelemetry-dokumentationen för att komma igång med OpenTelemetry.

Installera @azure/opentelemetry-instrumentation-azure-sdk-paketet

Installera Azure OpenTelemetry Instrumentation-klientbiblioteket med npm:

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

Stöd för webbläsare

JavaScript-paket

Om du vill använda det här klientbiblioteket i webbläsaren måste du först använda en bundler. Mer information om hur du gör detta finns i vår paketeringsdokumentation.

Viktiga begrepp

  • Funktionen createAzureSdkInstrumentation är huvudkroken som exporteras av det här biblioteket, vilket ger ett sätt att skapa ett Azure SDK Instrumentation-objekt som ska registreras med OpenTelemetry.

Exempel

Aktivera OpenTelemetry-instrumentation

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

Felsökning

Skogsavverkning

Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg med HTTP-begäranden och svar anger du AZURE_LOG_LEVEL miljövariabeln till info. Du kan också aktivera loggning vid körning genom att anropa setLogLevel i @azure/logger:

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

setLogLevel("info");

Mer detaljerade anvisningar om hur du aktiverar loggar finns i @azure/logger-paketdokumenten.

Instrumentation för ES-moduler

Det här paketet använder @opentelemetry/instrumentation för att konfigurera nödvändiga krokar och lastare. Mer information om hur du konfigurerar spårning för ESM-paket finns i README- för @opentelemetry/instrumentation.

Bidragande

Om du vill bidra till det här biblioteket kan du läsa bidragsguide för att lära dig mer om hur du skapar och testar koden.

visningar