Sdílet prostřednictvím


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

verze npm

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.

Imprese