Sdílet prostřednictvím


Knihovna instrumentace Azure OpenTelemetry pro JavaScript

Začínáme

Aktuálně podporovaná prostředí

Další podrobnosti najdete v našich zásadách podpory .

Požadavky

Abyste mohli vytvářet telemetrická data, budete muset nakonfigurovat sadu OpenTelemetry SDK. Při konfiguraci OpenTelemetry je mimo rozsah tohoto souboru README, doporučujeme vám projít si dokumentaci OpenTelemetry, abyste mohli začít používat OpenTelemetry.

Instalace balíčku @azure/opentelemetry-instrumentation-azure-sdk

Nainstalujte klientskou knihovnu Azure OpenTelemetry Instrumentation s npm:

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

Podpora prohlížeče

JavaScript Bundle

Pokud chcete tuto klientskou knihovnu použít v prohlížeči, musíte nejprve použít bundler. Podrobnosti o tom, jak to udělat, najdete v naší dokumentaci sdružování.

Klíčové koncepty

  • Funkce createAzureSdkInstrumentation je hlavní hákem exportovaný touto knihovnou, která poskytuje způsob, jak vytvořit objekt instrumentace sady Azure SDK pro registraci pomocí OpenTelemetry.

Příklady

Povolení instrumentace OpenTelemetry

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

Řešení problémů

Protokolování

Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL na info. Případně můžete protokolování povolit za běhu voláním setLogLevel v @azure/logger:

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

setLogLevel("info");

Podrobnější pokyny k povolení protokolů najdete v dokumentaci k @azure/protokolovacímu balíčku.

Instrumentace pro moduly ES

Tento balíček využívá @opentelemetry/instrumentaci k nastavení potřebných háků a zavaděčů. Pokyny ke konfiguraci trasování pro balíčky ESM najdete v @opentelemetry/instrumentace.

Přispívající

Pokud chcete přispívat do této knihovny, přečtěte si průvodce přispívání a přečtěte si další informace o vytváření a testování kódu.

imprese