Azure Monitor OpenTelemetry Exporter-Clientbibliothek für JavaScript – Version 1.0.0-beta.28
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 zu Ihrer Anwendung hinzufügen.
Installieren des Pakets
npm install @azure/monitor-opentelemetry-exporter
Derzeit unterstützte Umgebungen
Weitere Informationen finden Sie in unserer 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 Tracer Provider (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,
}),
);
Metrik
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);
Baumstämme
Hinzufügen des Protokollexportierers zu Ihrem vorhandenen OpenTelemetry Logger Provider (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);
Probenahme
Sie können das Sampling aktivieren, um die Anzahl der empfangenen Telemetriedatensätze einzuschränken. Um das richtige Sampling in Application Insights zu aktivieren, verwenden Sie die ApplicationInsightsSampler
wie unten dargestellt.
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 Champion-Szenarien finden Sie im Ordner "samples/
".
Schlüsselkonzepte
Weitere Informationen zum OpenTelemetry-Projekt finden Sie in den OpenTelemetry Specifications.
Fehlerbehebung
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 wird mit dem OpenTelemetry JSverwendet.
Plug-In-Registrierung
Um festzustellen, ob ein Plug-In bereits für eine bibliothek erstellt wurde, die Sie verwenden, lesen Sie bitte die OpenTelemetry Registry.
Wenn Sie Ihre Bibliothek in der Registrierung nicht verwenden können, können Sie unter opentelemetry-js-contrib
eine neue Plug-In-Anforderung vorschlagen.
Beitragend
Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie bitte den mitwirkenden Leitfaden, um mehr über das Erstellen und Testen des Codes zu erfahren.
Azure SDK for JavaScript