Knihovna instrumentace Azure OpenTelemetry pro JavaScript
Začínáme
Aktuálně podporovaná prostředí
- LTS verze Node.js
- Nejnovější verze Safari, Chrome, Edge a Firefox.
Další podrobnosti najdete v našich zásadách podpory .
Požadavky
- Předplatné Azure.
- Balíček @opentelemetry/instrumentace.
Abyste mohli vytvářet telemetrická data, budete muset nakonfigurovat sadu OpenTelemetry SDK. Při konfiguraci OpenTelemetry je mimo rozsah tohoto souboru README, doporučujeme vám projít si dokumentaci OpenTelemetry, abyste mohli začít používat OpenTelemetry.
Instalace balíčku @azure/opentelemetry-instrumentation-azure-sdk
Nainstalujte klientskou knihovnu Azure OpenTelemetry Instrumentation s npm
:
npm install @azure/opentelemetry-instrumentation-azure-sdk
Podpora prohlížeče
JavaScript Bundle
Pokud chcete tuto klientskou knihovnu použít v prohlížeči, musíte nejprve použít bundler. Podrobnosti o tom, jak to udělat, najdete v naší dokumentaci sdružování.
Klíčové koncepty
- Funkce createAzureSdkInstrumentation je hlavní hákem exportovaný touto knihovnou, která poskytuje způsob, jak vytvořit objekt instrumentace sady Azure SDK pro registraci pomocí OpenTelemetry.
Příklady
Povolení instrumentace 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,
},
});
}
Řešení problémů
Protokolování
Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL
na info
. Případně můžete protokolování povolit za běhu voláním setLogLevel
v @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Podrobnější pokyny k povolení protokolů najdete v dokumentaci k @azure/protokolovacímu balíčku.
Instrumentace pro moduly ES
Tento balíček využívá @opentelemetry/instrumentaci k nastavení potřebných háků a zavaděčů. Pokyny ke konfiguraci trasování pro balíčky ESM najdete v
Přispívající
Pokud chcete přispívat do této knihovny, přečtěte si průvodce přispívání a přečtěte si další informace o vytváření a testování kódu.
Související projekty
Azure SDK for JavaScript