Klientská knihovna exportéru OpenTelemetry pro Azure Monitor pro JavaScript – verze 1.0.0-beta.23
Začínáme
Tento balíček exportéru předpokládá, že vaše aplikace je již instrumentovaná pomocí sady OpenTelemetry SDK. Jakmile budete připraveni exportovat data OpenTelemetry, můžete tohoto exportéru přidat do své aplikace.
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 Node.js prostředí. Pro prostředí prohlížeče použijte sadu Application Insights JavaScript SDK .
Požadavky
Distribuované trasování
Přidání exportéru do stávajícího poskytovatele Trasovacího nástroje OpenTelemetry (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
})
);
Metriky
Přidejte vývozce do stávajícího poskytovatele měřiče 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);
Protokoly
Přidání exportéru protokolů do stávajícího zprostředkovatele 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í
Pokud chcete omezit množství telemetrických záznamů, které obdržíte, můžete povolit vzorkování. Pokud chcete ve službě Application Insights povolit správné vzorkování, použijte ApplicationInsightsSampler
následující příkaz.
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 samples/
složce.
Klíčové koncepty
Další informace o projektu OpenTelemetry najdete v části Specifikace OpenTelemetry.
Poradce při potížích
Povolení protokolování ladění
Protokolování ladění můžete povolit změnou úrovně protokolování vašeho 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 je určen k použití s OpenTelemetry JS.
Registr modulů plug-in
Pokud chcete zjistit, jestli už není vytvořený modul plug-in pro knihovnu, kterou používáte, projděte si registr OpenTelemetry.
Pokud nemůžete knihovnu v registru použít, můžete navrhnout nový požadavek na modul plug-in na adrese opentelemetry-js-contrib
.
Přispívání
Pokud chcete přispívat do této knihovny, přečtěte si prosím průvodce přispívání , kde se dozvíte více o tom, jak sestavit a otestovat kód.
Azure SDK for JavaScript