Библиотека инструментирования Azure OpenTelemetry для JavaScript
Начало работы
Поддерживаемые в настоящее время среды
- версии LTS Node.js
- Последние версии Safari, Chrome, Edge и Firefox.
Дополнительные сведения см. в политике поддержки .
Необходимые условия
Для создания данных телеметрии необходимо настроить пакет 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
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
import { SimpleSpanProcessor, ConsoleSpanExporter } from "@opentelemetry/tracing";
import { registerInstrumentations } from "@opentelemetry/instrumentation";
import { createAzureSdkInstrumentation } from "@azure/opentelemetry-instrumentation-azure-sdk";
import { KeyClient } from "@azure/keyvault-keys";
import { DefaultAzureCredential } from "@azure/identity";
// Set-up and configure a Node Tracer Provider using OpenTelemetry SDK.
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.
// import { KeyClient } from "@azure/keyvault-keys";
// import { DefaultAzureCredential } from "@azure/identity";
const keyClient = new KeyClient("https://my.keyvault.azure.net", new DefaultAzureCredential());
// 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
:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Дополнительные инструкции по включению журналов см. в документации по пакету @azure/loger.
Инструментирование для модулей ES
Этот пакет использует @opentelemetry/инструментирование для настройки необходимых перехватчиков и загрузчиков. Инструкции по настройке трассировки пакетов ESM см. в
Способствует
Если вы хотите внести свой вклад в эту библиотеку, ознакомьтесь с руководством по вкладу, чтобы узнать больше о том, как создавать и тестировать код.
Связанные проекты
Azure SDK for JavaScript