Klientská knihovna exportéru OpenTelemetry pro Azure Monitor pro JavaScript – verze 1.0.0-beta.27
Začínáme
Tento balíček exportéru předpokládá, že vaše aplikace je již instrumentovaná se sadou OpenTelemetry SDK. Jakmile budete připraveni exportovat data OpenTelemetry, můžete do své aplikace přidat tohoto vývozce.
Instalace balíčku
npm install @azure/monitor-opentelemetry-exporter
Aktuálně podporovaná prostředí
Další podrobnosti najdete v našich zásadách podpory .
upozornění : Tato sada SDK funguje jenom pro prostředí Node.js. Pro prostředí prohlížeče použijte sadu Application Insights JavaScript SDK.
Požadavky
- Předplatné Azure
- pracovního prostoru
Application Insights
Distribuované trasování
Přidejte vývozce k vašemu stávajícímu poskytovateli OpenTelemetry Tracer (NodeTracerProvider
/ BasicTracerProvider
)
const { AzureMonitorTraceExporter } = require("@azure/monitor-opentelemetry-exporter");
const { BatchSpanProcessor } = require("@opentelemetry/sdk-trace-base");
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const { Resource } = require("@opentelemetry/resources");
const { SemanticResourceAttributes } = require("@opentelemetry/semantic-conventions");
const tracerProvider = new NodeTracerProvider({
resource: new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: "basic-service",
}),
});
// Register Tracer Provider as global
tracerProvider.register();
// Create an exporter instance
const exporter = new AzureMonitorTraceExporter({
connectionString:
process.env["APPLICATIONINSIGHTS_CONNECTION_STRING"] || "<your connection string>"
});
// Add the exporter to the Provider
tracerProvider.addSpanProcessor(
new BatchSpanProcessor(exporter, {
bufferTimeout: 15000,
bufferSize: 1000
})
);
Metrika
Přidejte vývozce k vašemu stávajícímu poskytovateli měřičů OpenTelemetry (MeterProvider
)
const { metrics } = require("@opentelemetry/api");
const { MeterProvider, PeriodicExportingMetricReader } = require("@opentelemetry/sdk-metrics");
const { AzureMonitorMetricExporter } = require("@azure/monitor-opentelemetry-exporter");
// Add the exporter into the MetricReader and register it with the MeterProvider
const exporter = new AzureMonitorMetricExporter({
connectionString:
process.env["APPLICATIONINSIGHTS_CONNECTION_STRING"] || "<your connection string>",
});
const metricReaderOptions = {
exporter: exporter,
};
const metricReader = new PeriodicExportingMetricReader(metricReaderOptions);
const meterProvider = new MeterProvider();
meterProvider.addMetricReader(metricReader);
// Register Meter Provider as global
metrics.setGlobalMeterProvider(meterProvider);
Polena
Přidejte exportér protokolu k vašemu stávajícímu poskytovateli protokolovacího nástroje OpenTelemetry (LoggerProvider
).
const { logs } = require("@opentelemetry/api-logs");
const { LoggerProvider, BatchLogRecordProcessor } = require("@opentelemetry/sdk-logs");
const { AzureMonitorLogExporter } = require("@azure/monitor-opentelemetry-exporter");
// Add the Log exporter into the logRecordProcessor and register it with the LoggerProvider
const exporter = new AzureMonitorLogExporter({
connectionString:
process.env["APPLICATIONINSIGHTS_CONNECTION_STRING"] || "<your connection string>",
});
const logRecordProcessor = new BatchLogRecordProcessor(exporter);
const loggerProvider = new LoggerProvider();
loggerProvider.addLogRecordProcessor(logRecordProcessor);
// Register logger Provider as global
logs.setGlobalLoggerProvider(loggerProvider);
Vzorkování
Můžete povolit vzorkování, abyste omezili množství záznamů telemetrie, které obdržíte. Pokud chcete povolit správné vzorkování v Application Insights, použijte ApplicationInsightsSampler
, jak je znázorněno níže.
const { ApplicationInsightsSampler } = require("@azure/monitor-opentelemetry-exporter");
const { BatchSpanProcessor } = require("@opentelemetry/sdk-trace-base");
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const { Resource } = require("@opentelemetry/resources");
const { SemanticResourceAttributes } = require("@opentelemetry/semantic-conventions");
// Sampler expects a sample rate of between 0 and 1 inclusive
// A rate of 0.75 means approximately 75 % of your traces will be sent
const aiSampler = new ApplicationInsightsSampler(0.75);
const provider = new NodeTracerProvider({
sampler: aiSampler,
resource: new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: "basic-service",
}),
});
provider.register();
Příklady
Kompletní ukázky několika scénářů šampionů najdete ve složce samples/
.
Klíčové koncepty
Další informace o projektu OpenTelemetry naleznete v Specifikace OpenTelemetry.
Řešení problémů
Povolení protokolování ladění
Protokolování ladění můžete povolit změnou úrovně protokolování poskytovatele.
const { DiagConsoleLogger, DiagLogLevel, diag } = require("@opentelemetry/api");
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const provider = new NodeTracerProvider();
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.ALL);
provider.register();
Další kroky
Tento vývozce se používá s OpenTelemetry JS.
Registr modulů plug-in
Pokud chcete zjistit, jestli již byl modul plug-in pro knihovnu, kterou používáte, podívejte se na OpenTelemetry Registry.
Pokud nemůžete svou knihovnu v registru, můžete navrhnout novou žádost o modul plug-in na opentelemetry-js-contrib
.
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.
Azure SDK for JavaScript