Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wprowadzenie
Ten pakiet eksportera zakłada, że aplikacja jest już instrumentowana przy użyciu zestawu SDK OpenTelemetry. Gdy wszystko będzie gotowe do wyeksportowania danych OpenTelemetry, możesz dodać ten eksporter do aplikacji.
Instalowanie pakietu
npm install @azure/monitor-opentelemetry-exporter
Obecnie obsługiwane środowiska
- Wersje LTS systemu Node.js
Aby uzyskać więcej informacji, zobacz nasze zasad pomocy technicznej.
Ostrzeżenie: Ten zestaw SDK działa tylko w Node.js środowiskach. Użyj zestawu SDK języka JavaScript usługi Application Insights dla środowisk przeglądarki.
Wymagania wstępne
Śledzenie rozproszone
Dodawanie eksportera do istniejącego dostawcy śledzenia 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();
Wskaźniki
Dodawanie eksportera do istniejącego dostawcy miernika 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);
Dzienniki
Dodawanie eksportera dzienników do istniejącego dostawcy rejestratora 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);
Pobieranie próbek
Możesz włączyć próbkowanie, aby ograniczyć liczbę odbieranych rekordów telemetrii. Aby włączyć poprawne próbkowanie w usłudze Application Insights, użyj polecenia, jak pokazano ApplicationInsightsSampler poniżej.
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();
Przykłady
Pełne przykłady kilku scenariuszy bohaterów można znaleźć w samples/ folderze.
Najważniejsze pojęcia
Aby uzyskać więcej informacji na temat projektu OpenTelemetry, zapoznaj się ze specyfikacjami OpenTelemetry.
Rozwiązywanie problemów
Włącz logowanie debugowania
Rejestrowanie debugowania można włączyć, zmieniając poziom rejestrowania dostawcy.
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();
Logowanie
Włączenie rejestrowania na platformie Azure może również pomóc w odkrywaniu przydatnych informacji o awariach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną środowiskową AZURE_LOG_LEVEL na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel w @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Aby uzyskać bardziej szczegółowe instrukcje dotyczące włączania dzienników, zapoznaj się z dokumentami dotyczącymi pakietów @azure/rejestratora.
Dalsze kroki
Ten eksporter jest przeznaczony do użycia z kodem JS OpenTelemetry.
Rejestr wtyczek
Aby sprawdzić, czy wtyczka została już utworzona dla używanej biblioteki, zapoznaj się z rejestrem OpenTelemetry.
Jeśli nie możesz znaleźć swojej biblioteki w rejestrze, możesz zasugerować nowe żądanie wtyczki pod adresem opentelemetry-js-contrib.
Wkład
Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik dotyczący współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.
Azure SDK for JavaScript