Aracılığıyla paylaş


JavaScript için Azure İzleyici OpenTelemetry Exporter istemci kitaplığı - sürüm 1.0.0-beta.36

NPM sürümü

Başlangıç Yapmak

Bu dışarı aktarıcı paketi, uygulamanızın OpenTelemetry SDK'sı ile zaten izlendiğini varsayar. OpenTelemetry verilerini dışarı aktarmaya hazır olduğunuzda, bu dışarı aktarıcıyı uygulamanıza ekleyebilirsiniz.

Paketi yükle

npm install @azure/monitor-opentelemetry-exporter

Şu anda desteklenen ortamlar

Daha fazla bilgi için bkz. destek ilkesi.

Uyarı: Bu SDK yalnızca Node.js ortamlarda çalışır. Tarayıcı ortamları için Application Insights JavaScript SDK'sını kullanın.

Önkoşullar

Dağıtılmış İzleme

Dışarı aktarıcıyı mevcut OpenTelemetry Tracer Provider'ınıza ekleyin (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();

Ölçümler

Dışarı aktarıcıyı mevcut OpenTelemetri Ölçüm Sağlayıcınıza ekleyin (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);

Kayıtlar

Günlük Dışarı Aktarıcı'yı mevcut OpenTelemetry Logger Sağlayıcınıza ekleyin (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);

Örnekleme

Aldığınız telemetri kayıtlarının miktarını sınırlamak için örneklemeyi etkinleştirebilirsiniz. Application Insights'ta doğru örneklemeyi etkinleştirmek için aşağıda gösterildiği gibi kullanın 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();

Örnekler

Birkaç şampiyon senaryosunun tam örnekleri için klasöre bakın samples/ .

Temel kavramlar

OpenTelemetry projesi hakkında daha fazla bilgi için lütfen OpenTelemetry Belirtimleri'ni gözden geçirin.

Sorun giderme

Hata ayıklama kaydını etkinleştir.

Sağlayıcınızın günlük düzeyini değiştirerek hata ayıklama günlüğünü etkinleştirebilirsiniz.

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();

Ağaç kesimi

Azure günlüğünü etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkarılmasına da yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL olarak infoayarlayın. Alternatif olarak, çalışma zamanında setLogLevel@azure/logger çağrılarak günlük tutma etkinleştirilebilir.

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

setLogLevel("info");

Günlükleri etkinleştirme hakkında daha ayrıntılı yönergeler için @azure/günlükçü paketi belgelerine bakabilirsiniz.

Sonraki Adımlar

Bu dışa aktarıcı, OpenTelemetry JS ile kullanılmak üzere yapılmıştır.

Eklenti Kayıt Defteri

Kullanmakta olduğunuz bir kitaplık için zaten bir eklenti yapılıp yapılmadığını görmek için lütfen OpenTelemetry Kayıt Defteri'ne bakın.

Kitaplığınızı kayıt defterinde bulamıyorsanız, adresinden opentelemetry-js-contribyeni bir eklenti isteği önermekten çekinmeyin.

Katkıda Bulunmak

Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.