Azure OpenTelemetry Instrumentation-bibliotek för JavaScript
Komma igång
Miljöer som stöds för närvarande
- LTS-versioner av Node.js
- De senaste versionerna av Safari, Chrome, Edge och Firefox.
Mer information finns i vår supportprincip.
Förutsättningar
- En Azure-prenumeration.
- Paketet @opentelemetry/instrumentation.
Du måste konfigurera OpenTelemetry SDK för att kunna producera telemetridata. Även om konfigurationen av OpenTelemetry ligger utanför readme-omfånget rekommenderar vi att du läser OpenTelemetry-dokumentationen för att komma igång med OpenTelemetry.
Installera @azure/opentelemetry-instrumentation-azure-sdk
-paketet
Installera Azure OpenTelemetry Instrumentation-klientbiblioteket med npm
:
npm install @azure/opentelemetry-instrumentation-azure-sdk
Stöd för webbläsare
JavaScript-paket
Om du vill använda det här klientbiblioteket i webbläsaren måste du först använda en bundler. Mer information om hur du gör detta finns i vår paketeringsdokumentation.
Viktiga begrepp
- Funktionen createAzureSdkInstrumentation är huvudkroken som exporteras av det här biblioteket, vilket ger ett sätt att skapa ett Azure SDK Instrumentation-objekt som ska registreras med OpenTelemetry.
Exempel
Aktivera OpenTelemetry-instrumentation
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,
},
});
}
Felsökning
Skogsavverkning
Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg med HTTP-begäranden och svar anger du AZURE_LOG_LEVEL
miljövariabeln till info
. Du kan också aktivera loggning vid körning genom att anropa setLogLevel
i @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Mer detaljerade anvisningar om hur du aktiverar loggar finns i @azure/logger-paketdokumenten.
Instrumentation för ES-moduler
Det här paketet använder @opentelemetry/instrumentation för att konfigurera nödvändiga krokar och lastare. Mer information om hur du konfigurerar spårning för ESM-paket finns i README- för
Bidragande
Om du vill bidra till det här biblioteket kan du läsa bidragsguide för att lära dig mer om hur du skapar och testar koden.
Relaterade projekt
Azure SDK for JavaScript