Aracılığıyla paylaş


JavaScript için Azure OpenTelemetry Instrumentation kitaplığı

Başlarken

Şu anda desteklenen ortamlar

  • Node.js LTS sürümleri
  • Safari, Chrome, Edge ve Firefox'un en son sürümleri.

Daha fazla bilgi için bkz. destek ilkesi.

Önkoşullar

Telemetri verileri üretmek için OpenTelemetry SDK'sını yapılandırmanız gerekir. OpenTelemetry yapılandırması bu BENİOKU kapsamının dışında olsa da, OpenTelemetry kullanmaya başlamak için OpenTelemetry belgelerini gözden geçirmenizi öneririz.

@azure/opentelemetry-instrumentation-azure-sdk paketini yükleme

npmile Azure OpenTelemetry Instrumentation istemci kitaplığını yükleyin:

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

Tarayıcı desteği

JavaScript Paketi

Bu istemci kitaplığını tarayıcıda kullanmak için önce bir paketleyici kullanmanız gerekir. Bunun nasıl yapılacağının ayrıntıları için lütfenpaketleme belgelerimize bakın.

Temel kavramlar

  • createAzureSdkInstrumentation işlevi , OpenTelemetry ile kaydedilecek bir Azure SDK İzleme nesnesi oluşturmanın bir yolunu sağlayan bu kitaplık tarafından dışarı aktarılan ana kancadır.

Örnekler

OpenTelemetry izlemesini etkinleştirme

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";
import { trace, context } from "@opentelemetry/api";

// 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 = trace.getTracer("my-tracer");
const span = tracer.startSpan("main");
const ctx = trace.setSpan(context.active(), span);

await keyClient.getKey("MyKeyName", {
  tracingOptions: {
    // ctx will be used as the parent context for all operations.
    tracingContext: ctx,
  },
});

Sorun giderme

Günlük tutmak

Günlüğe kaydetmeyi etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için AZURE_LOG_LEVEL ortam değişkenini infoolarak ayarlayın. Alternatif olarak, setLogLevel@azure/logger çağrılarak günlükler çalışma zamanında etkinleştirilebilir:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Günlükleri etkinleştirme hakkında daha ayrıntılı yönergeler için@azure/günlükçü paketi belgelerine bakabilirsiniz.

ES Modülleri için İzleme

Bu paket, gerekli kancaları ve yükleyicileri ayarlamak için @opentelemetry/izleme kullanır. ESM paketleri için izlemeyi yapılandırma yönergeleri için lütfen @opentelemetry/izleme aracının README bakın.

Katkıda

Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.

  • Javascript için Microsoft Azure SDK'sını