Udostępnij za pośrednictwem


Biblioteka instrumentacji azure OpenTelemetry dla języka JavaScript

Wprowadzenie

Obecnie obsługiwane środowiska

  • wersje Node.js LTS
  • Najnowsze wersje przeglądarek Safari, Chrome, Edge i Firefox.

Aby uzyskać więcej informacji, zobacz nasze zasad pomocy technicznej.

Warunki wstępne

Aby utworzyć dane telemetryczne, należy skonfigurować zestaw SDK OpenTelemetry. Podczas konfigurowania biblioteki OpenTelemetry znajduje się poza zakresem tego pliku README, zachęcamy do przejrzenia dokumentacji OpenTelemetry, aby rozpocząć korzystanie z biblioteki OpenTelemetry.

Instalowanie pakietu @azure/opentelemetry-instrumentation-azure-sdk

Zainstaluj bibliotekę klienta instrumentacji Azure OpenTelemetry przy użyciu npm:

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

Obsługa przeglądarki

Pakiet JavaScript

Aby użyć tej biblioteki klienta w przeglądarce, najpierw należy użyć pakietu. Aby uzyskać szczegółowe informacje o tym, jak to zrobić, zapoznaj się z naszą dokumentacją dotyczącą tworzenia pakietów .

Kluczowe pojęcia

  • Funkcja createAzureSdkInstrumentation to główny punkt zaczepienia wyeksportowany przez tę bibliotekę, który umożliwia utworzenie obiektu instrumentacji zestawu Azure SDK do zarejestrowania w usłudze OpenTelemetry.

Przykłady

Włączanie instrumentacji 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,
    },
  });
}

Rozwiązywanie problemów

Wyrąb

Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną środowiskową AZURE_LOG_LEVEL na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel w @azure/logger:

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

setLogLevel("info");

Aby uzyskać bardziej szczegółowe instrukcje dotyczące włączania dzienników, zapoznaj się z dokumentami dotyczącymi pakietów @azure/rejestratora.

Instrumentacja modułów ES

Ten pakiet wykorzystuje @opentelemetry/instrumentację do konfigurowania niezbędnych punktów zaczepienia i modułów ładujących. Aby uzyskać instrukcje dotyczące konfigurowania śledzenia pakietów ESM, zapoznaj się z README @opentelemetry/instrumentacji.

Przyczyniając się

Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik dotyczący współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.

wrażenia