Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Memulai Langkah Pertama
Paket pengekspor ini mengasumsikan aplikasi Anda sudah diinstrumentasikan dengan OpenTelemetry SDK. Setelah Anda siap untuk mengekspor data OpenTelemetry, Anda dapat menambahkan eksportir ini ke aplikasi Anda.
Pasang paketnya
npm install @azure/monitor-opentelemetry-exporter
Lingkungan yang didukung saat ini
Lihat kebijakan dukungan kami untuk detail selengkapnya.
Peringatan: SDK ini hanya berfungsi untuk lingkungan Node.js. Gunakan Application Insights JavaScript SDK untuk lingkungan browser.
Prasyarat
Pelacakan Terdistribusi
Tambahkan eksportir ke Penyedia Pelacak OpenTelemetry yang ada (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();
Metode pengukuran
Tambahkan eksportir ke Penyedia Pengukur OpenTelemetry Anda yang ada (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);
Catatan
Tambahkan Pengekspor Log ke Penyedia Pencatat OpenTelemetry Anda yang ada (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({
processors: [logRecordProcessor],
});
// Register logger Provider as global
logs.setGlobalLoggerProvider(loggerProvider);
Pengambilan sampel
Anda dapat mengaktifkan pengambilan sampel untuk membatasi jumlah rekaman telemetri yang Anda terima. Untuk mengaktifkan pengambilan sampel yang benar di Application Insights, gunakan seperti yang ApplicationInsightsSampler ditunjukkan di bawah ini.
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();
Contoh
Untuk sampel lengkap dari beberapa skenario juara, lihat samples/ folder.
Konsep utama
Untuk informasi lebih lanjut tentang proyek OpenTelemetry, silakan tinjau Spesifikasi OpenTelemetry.
Batas Ukuran Dimensi Kustom
Secara default, nilai dimensi kustom dipotong menjadi 64KB. Ini melindungi dari muatan besar yang tidak terduga.
Penyelesaian Masalah
Mengaktifkan pengelogan debug
Anda dapat mengaktifkan pengelogan debug dengan mengubah tingkat pengelogan penyedia Anda.
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();
Penebangan kayu
Mengaktifkan pengelogan Azure juga dapat membantu mengungkap informasi berguna tentang kegagalan. Untuk melihat log permintaan dan respons HTTP, atur variabel lingkungan AZURE_LOG_LEVEL ke info. Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel di @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Untuk instruksi lebih rinci tentang cara mengaktifkan log, Anda dapat melihat dokumen paket @azure/logger.
Langkah selanjutnya
Eksportir ini dibuat untuk digunakan dengan OpenTelemetry JS.
Registri Plugin
Untuk melihat apakah plugin telah dibuat untuk perpustakaan yang Anda gunakan, silakan lihat OpenTelemetry Registry.
Jika Anda tidak dapat membuka perpustakaan Anda di registri, jangan ragu untuk menyarankan permintaan plugin baru di opentelemetry-js-contrib.
Berpartisipasi
Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.
Azure SDK for JavaScript