Поделиться через


Библиотека инструментирования Azure OpenTelemetry для JavaScript

Начало работы

Поддерживаемые в настоящее время среды

Дополнительные сведения см. в политике поддержки .

Необходимые условия

Для создания данных телеметрии необходимо настроить пакет SDK OpenTelemetry. При настройке OpenTelemetry находится вне области этого README, мы рекомендуем ознакомиться с документацией по OpenTelemetry, чтобы приступить к работе с OpenTelemetry.

Установка пакета @azure/opentelemetry-instrumentation-azure-sdk

Установите клиентская библиотека инструментирования Azure OpenTelemetry с npm:

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

Поддержка браузера

Пакет JavaScript

Чтобы использовать эту клиентную библиотеку в браузере, сначала необходимо использовать пакет. Дополнительные сведения о том, как это сделать, см. в нашей документации по .

Основные понятия

  • Функция createAzureSdkInstrumentation — это основной перехватчик, экспортированный этой библиотекой, который предоставляет способ создания объекта инструментирования пакета SDK Azure для регистрации в OpenTelemetry.

Примеры

Включение инструментирования 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,
    },
  });
}

Устранение неполадок

Лесозаготовка

Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL значение info. Кроме того, ведение журнала можно включить во время выполнения путем вызова setLogLevel в @azure/logger:

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

setLogLevel("info");

Дополнительные инструкции по включению журналов см. в документации по пакету @azure/loger.

Инструментирование для модулей ES

Этот пакет использует @opentelemetry/инструментирование для настройки необходимых перехватчиков и загрузчиков. Инструкции по настройке трассировки пакетов ESM см. в @opentelemetry/инструментирования.

Способствует

Если вы хотите внести свой вклад в эту библиотеку, ознакомьтесь с руководством по вкладу, чтобы узнать больше о том, как создавать и тестировать код.

впечатлений