Share via


Azure Monitor OpenTelemetry Exporter-Clientbibliothek für JavaScript – Version 1.0.0-beta.23

NPM-Version

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.

Aufrufe