Udostępnij za pośrednictwem


Migrowanie z zestawu NODE.JS Application Insights SDK 2.X do usługi Azure Monitor OpenTelemetry

Ten przewodnik zawiera dwie opcje uaktualniania z usługi Azure Monitor Application Insights Node.js SDK 2.X do biblioteki OpenTelemetry.

  • Wyczyść instalację Node.js dystrybucji OpenTelemetry usługi Azure Monitor.
    • Usuń zależności od klasycznego interfejsu API usługi Application Insights.
    • Zapoznaj się z interfejsami API i terminami OpenTelemetry.
    • Umieść się, aby korzystać z wszystkich ofert OpenTelemetry teraz i w przyszłości.
  • Uaktualnij zestaw SDK Node.js do wersji 3.X.
    • Odrocz zmiany kodu, zachowując zgodność z istniejącymi niestandardowymi zdarzeniami i metrykami.
    • Uzyskaj dostęp do bogatszych bibliotek instrumentacji OpenTelemetry.
    • Zachowaj uprawnienia do najnowszych poprawek usterek i zabezpieczeń.
  1. Uzyskaj wymaganą wiedzę na temat interfejsu Api (API) i zestawu SDK (Software Development Kit) openTelemetry JavaScript Application Programming Interface (API).

  2. Odinstaluj zależność applicationinsights z projektu.

    npm uninstall applicationinsights
    
  3. Usuń implementację zestawu SDK 2.X z kodu.

    Usuń wszystkie instrumentacje usługi Application Insights z kodu. Usuń wszystkie sekcje, w których klient usługi Application Insights jest inicjowany, modyfikowany lub wywoływany.

  4. Włącz usługę Application Insights za pomocą dystrybucji OpenTelemetry usługi Azure Monitor.

    Ważne

    Przed zaimportowanie czegokolwiek innego useAzureMonitor należy wywołać. Może wystąpić utrata danych telemetrycznych, jeśli inne biblioteki zostaną zaimportowane jako pierwsze. Postępuj zgodnie z wprowadzeniem do dołączenia do dystrybucji OpenTelemetry usługi Azure Monitor.

Zmiany i ograniczenia dystrybucji opentelemetrii usługi Azure Monitor

  • Interfejsy API z zestawu APPLICATION Insights SDK 2.X nie są dostępne w dystrybucji OpenTelemetry usługi Azure Monitor. Dostęp do tych interfejsów API można uzyskać za pośrednictwem niełamającej się ścieżki uaktualnienia w zestawie SDK usługi Application Insights 3.X.
  • Filtrowanie zależności, dzienników i wyjątków według nazwy operacji nie jest jeszcze obsługiwane.

Zmiany i ograniczenia

Następujące zmiany i ograniczenia dotyczą obu ścieżek uaktualniania.

Obsługa wersji Node.js

Aby wersja Node.js była obsługiwana przez zestaw SDK applicationInsights 3.X, musi mieć nakładające się wsparcie zarówno z zestawu Azure SDK, jak i biblioteki OpenTelemetry. Sprawdź obsługiwane środowiska uruchomieniowe OpenTelemetry, aby uzyskać najnowsze aktualizacje. Użytkownicy w starszych wersjach, takich jak Node 8, wcześniej obsługiwani przez zestaw SDK usługi ApplicationInsights, nadal mogą używać rozwiązań OpenTelemetry, ale mogą wystąpić nieoczekiwane lub powodujące niezgodność zachowanie. Zestaw SDK usługi ApplicationInsights zależy również od zestawu Azure SDK dla struktury JS, który nie gwarantuje obsługi żadnych Node.js wersji, które osiągnęły koniec użytkowania. Zobacz zasady pomocy technicznej zestawu Azure SDK dla języka JS. Aby wersja Node.js była obsługiwana przez zestaw SDK applicationInsights 3.X, musi mieć nakładające się wsparcie zarówno z zestawu Azure SDK, jak i biblioteki OpenTelemetry.

Opcje konfiguracji

Zestaw SDK usługi Application Insights w wersji 2.X oferuje opcje konfiguracji, które nie są dostępne w dystrybucji OpenTelemetry usługi Azure Monitor lub uaktualnieniu wersji głównej do zestawu SDK usługi Application Insights w wersji 3.X. Aby znaleźć te zmiany, wraz z opcjami, które nadal obsługujemy, zobacz dokumentację konfiguracji zestawu SDK.

Metryki rozszerzone

Metryki rozszerzone są obsługiwane w zestawie SDK usługi Application Insights 2.X; jednak obsługa tych metryk kończy się zarówno w wersji 3.X zestawu SDK usługi ApplicationInsights, jak i dystrybucji OpenTelemetry usługi Azure Monitor.

Procesory telemetrii

Chociaż dystrybucja opentelemetrii opentelemetrii usługi Azure Monitor i zestaw SDK usługi Application Insights 3.X nie obsługują procesorów telemetrii, umożliwiają one przekazywanie procesorów rekordów obejmujących zakres i dzienniki. Aby uzyskać więcej informacji na temat sposobu, zobacz Projekt dystrybucji dystrybucji opentelemetrii usługi Azure Monitor.

W tym przykładzie pokazano odpowiednik tworzenia i stosowania procesora telemetrii, który dołącza właściwość niestandardową w zestawie SDK usługi Application Insights 2.X.

const applicationInsights = require("applicationinsights");
applicationInsights.setup("YOUR_CONNECTION_STRING");
applicationInsights.defaultClient.addTelemetryProcessor(addCustomProperty);
applicationInsights.start();

function addCustomProperty(envelope: EnvelopeTelemetry) {
    const data = envelope.data.baseData;
    if (data?.properties) {
        data.properties.customProperty = "Custom Property Value";
    }
    return true;
}

W tym przykładzie pokazano, jak zmodyfikować implementację dystrybucji OpenTelemetry usługi Azure Monitor, aby przekazać moduł SpanProcessor do konfiguracji dystrybucji.

import { Context, Span} from "@opentelemetry/api";
import { ReadableSpan, SpanProcessor } from "@opentelemetry/sdk-trace-base";
const { useAzureMonitor } = require("@azure/monitor-opentelemetry");

class SpanEnrichingProcessor implements SpanProcessor {
    forceFlush(): Promise<void> {
        return Promise.resolve();
    }
    onStart(span: Span, parentContext: Context): void {
        return;
    }
    onEnd(span: ReadableSpan): void {
        span.attributes["custom-attribute"] = "custom-value";
    }
    shutdown(): Promise<void> {
        return Promise.resolve();
    }
}

const options = {
    azureMonitorExporterOptions: {
        connectionString: "YOUR_CONNECTION_STRING"
    },
    spanProcessors: [new SpanEnrichingProcessor()],
};
useAzureMonitor(options);