Azure Monitor OpenTelemetry Exporter-Clientbibliothek für JavaScript – Version 1.0.0-beta.23
Erste Schritte
Dieses Exporterpaket setzt voraus, dass Ihre Anwendung bereits mit dem OpenTelemetry SDK instrumentiert ist. Sobald Sie bereit sind, OpenTelemetry-Daten zu exportieren, können Sie diesen Exporter ihrer Anwendung hinzufügen.
Installieren des Pakets
npm install @azure/monitor-opentelemetry-exporter
Die derzeitig unterstützten Umgebungen
Ausführlichere Informationen finden Sie in der Supportrichtlinie.
Warnung: Dieses SDK funktioniert nur für Node.js Umgebungen. Verwenden Sie das Application Insights JavaScript SDK für Browserumgebungen.
Voraussetzungen
Verteilte Ablaufverfolgung
Hinzufügen des Exporters zu Ihrem vorhandenen OpenTelemetry-Ablaufverfolgungsanbieter (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
})
);
Metriken
Hinzufügen des Exporters zu Ihrem vorhandenen OpenTelemetry Meter Provider (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);
Protokolle
Hinzufügen des Protokollexportierers zu Ihrem vorhandenen OpenTelemetry-Protokollanbieter (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);
Stichproben
Sie können die Stichprobenentnahme aktivieren, um die Anzahl der empfangenen Telemetriedatensätze zu begrenzen. Um die richtige Stichprobenerstellung in Application Insights zu aktivieren, verwenden Sie die ApplicationInsightsSampler
wie unten gezeigt.
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();
Beispiele
Vollständige Beispiele für einige Championszenarien finden Sie im samples/
Ordner.
Wichtige Begriffe
Weitere Informationen zum OpenTelemetry-Projekt finden Sie in den OpenTelemetry-Spezifikationen.
Problembehandlung
Debugprotokollierung aktivieren
Sie können die Debugprotokollierung aktivieren, indem Sie die Protokollierungsebene Ihres Anbieters ändern.
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();
Nächste Schritte
Dieser Exporter ist für die Verwendung mit dem OpenTelemetry JS gemacht.
Plug-In-Registrierung
Um festzustellen, ob bereits ein Plug-In für eine Bibliothek erstellt wurde, die Sie verwenden, sehen Sie sich die OpenTelemetry-Registrierung an.
Wenn Sie Ihre Bibliothek nicht in der Registrierung verwenden können, können Sie eine neue Plug-In-Anforderung unter vorschlagen opentelemetry-js-contrib
.
Mitwirken
Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie die Anleitung für Mitwirkende, um mehr darüber zu erfahren, wie Sie den Code erstellen und testen können.
Azure SDK for JavaScript