Klientská knihovna exportéru OpenTelemetry pro Azure Monitor pro JavaScript – verze 1.0.0-beta.27

verze npm

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.

imprese