Sdílet prostřednictvím


Klientská knihovna exportéru OpenTelemetry služby Azure Monitor pro JavaScript – verze 1.0.0-beta.36

Verze npm

Začínáme

Tento balíček exportéru předpokládá, že vaše aplikace je již instrumentována pomocí sady OpenTelemetry SDK. Jakmile budete připraveni exportovat data OpenTelemetry, můžete tento exportér přidat do své aplikace.

Nainstalujte balíček

npm install @azure/monitor-opentelemetry-exporter

Aktuálně podporovaná prostředí

Další podrobnosti najdete v zásadách podpory.

Varování: Tato sada SDK funguje pouze pro Node.js prostředí. Použijte sadu Application Insights JavaScript SDK pro prostředí prohlížeče.

Požadavky

Distribuované trasování

Přidání exportéru do stávajícího poskytovatele sledování OpenTelemetry (NodeTracerProvider / BasicTracerProvider)

import { AzureMonitorTraceExporter } from "@azure/monitor-opentelemetry-exporter";
import { NodeTracerProvider, BatchSpanProcessor } from "@opentelemetry/sdk-trace-node";
import { resourceFromAttributes } from "@opentelemetry/resources";
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";

// Create an exporter instance
const exporter = new AzureMonitorTraceExporter({
  connectionString: "<connection string>",
});

// Create and configure the Node Tracer provider
const tracerProvider = new NodeTracerProvider({
  resource: resourceFromAttributes({
    [ATTR_SERVICE_NAME]: "basic-service",
  }),
  spanProcessors: [
    new BatchSpanProcessor(exporter, {
      exportTimeoutMillis: 15000,
      maxQueueSize: 1000,
    }),
  ],
});

// Register Tracer Provider as global
tracerProvider.register();

Metodiky

Přidání exportéru do stávajícího poskytovatele měřičů OpenTelemetry (MeterProvider)

import { AzureMonitorMetricExporter } from "@azure/monitor-opentelemetry-exporter";
import { PeriodicExportingMetricReader, MeterProvider } from "@opentelemetry/sdk-metrics";
import { metrics } from "@opentelemetry/api";

// Add the exporter into the MetricReader and register it with the MeterProvider
const exporter = new AzureMonitorMetricExporter({
  connectionString: "<connection string>",
});

const metricReaderOptions = {
  exporter: exporter,
};
const metricReader = new PeriodicExportingMetricReader(metricReaderOptions);
const meterProvider = new MeterProvider({
  readers: [metricReader],
});

// Register Meter Provider as global
metrics.setGlobalMeterProvider(meterProvider);

Záznamy

Přidání exportéru protokolů do stávajícího poskytovatele protokolovacího nástroje OpenTelemetry (LoggerProvider)

import { AzureMonitorLogExporter } from "@azure/monitor-opentelemetry-exporter";
import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs";
import { logs } from "@opentelemetry/api-logs";

// Add the Log exporter into the logRecordProcessor and register it with the LoggerProvider
const exporter = new AzureMonitorLogExporter({
  connectionString: "<connection string>",
});

const logRecordProcessor = new BatchLogRecordProcessor(exporter);
const loggerProvider = new LoggerProvider();
loggerProvider.addLogRecordProcessor(logRecordProcessor);

// Register logger Provider as global
logs.setGlobalLoggerProvider(loggerProvider);

Vzorkování

Povolením vzorkování můžete omezit množství přijatých záznamů telemetrie. Pokud chcete povolit správné vzorkování v Application Insights, použijte následující postup ApplicationInsightsSampler .

import { ApplicationInsightsSampler } from "@azure/monitor-opentelemetry-exporter";
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
import { resourceFromAttributes } from "@opentelemetry/resources";
import { ATTR_SERVICE_NAME } from "@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: resourceFromAttributes({
    [ATTR_SERVICE_NAME]: "basic-service",
  }),
});

provider.register();

Příklady

Kompletní ukázky několika scénářů se šampiony najdete ve samples/ složce.

Klíčové koncepty

Další informace o projektu OpenTelemetry najdete ve specifikacích OpenTelemetry.

Řešení problémů

Povolte protokolování ladění

Protokolování ladění můžete povolit změnou úrovně protokolování vašeho poskytovatele.

import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api";

const provider = new NodeTracerProvider();
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.ALL);
provider.register();

Logování

Povolení protokolování Azure může také pomoci odhalit užitečné informace o selháních. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL na info. Případně můžete protokolování povolit za běhu voláním setLogLevel v @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Podrobnější pokyny k povolení protokolů najdete v dokumentaci k @azure/protokolovacímu balíčku.

Další kroky

Tento exportér je určen pro použití s OpenTelemetry JS.

Registr pluginů

Pokud chcete zjistit, jestli už byl modul plug-in vytvořen pro knihovnu, kterou používáte, podívejte se na registr OpenTelemetry.

Pokud nemůžete svou knihovnu v registru, neváhejte navrhnout nový požadavek na plugin na opentelemetry-js-contrib.

Přispění

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.