Dela via


Uppgradera från Application Insights Java 2.x SDK

Det finns vanligtvis inga kodändringar när du uppgraderar till 3.x. 3.x SDK-beroenden är no-op API-versioner av 2.x SDK-beroenden. Men när den används med 3.x Java-agenten tillhandahåller 3.x Java-agenten implementeringen för dem. Därför korreleras din anpassade instrumentation med all ny autoinstrumentation som tillhandahålls av 3.x Java-agenten.

Steg 1: Uppdatera beroenden

2.x-beroende Åtgärd Kommentarer
applicationinsights-core Uppdatera versionen till 3.4.3 eller senare
applicationinsights-web Uppdatera versionen till 3.4.3 eller senare och ta bort Application Insights-webbfiltret för filen web.xml .
applicationinsights-web-auto Ersätt med 3.4.3 eller senare av applicationinsights-web
applicationinsights-logging-log4j1_2 Ta bort beroendet och ta bort Application Insights-tillägget från Log4j-konfigurationen. Behövs inte längre eftersom Log4j 1.2 automatiskt instrumenteras i 3.x Java-agenten.
applicationinsights-logging-log4j2 Ta bort beroendet och ta bort Application Insights-tillägget från Log4j-konfigurationen. Behövs inte längre eftersom Log4j 2 automatiskt instrumenteras i 3.x Java-agenten.
applicationinsights-logging-logback Ta bort beroendet och ta bort Application Insights-tillägget från logback-konfigurationen. Behövs inte längre eftersom Logback automatiskt instrumenteras i 3.x Java-agenten.
applicationinsights-spring-boot-starter Ersätt med 3.4.3 eller senare av applicationinsights-web Namnet på molnrollen är inte längre standardvärdet spring.application.name. Information om hur du konfigurerar namnet på molnrollen finns i 3.x-konfigurationsdokumenten.

Steg 2: Lägg till 3.x Java-agenten

Lägg till 3.x Java-agenten i java-kommandoraden (JVM), till exempel:

-javaagent:path/to/applicationinsights-agent-3.6.2.jar

Om du använder Application Insights 2.x Java-agenten ersätter du bara din befintliga -javaagent:... med föregående exempel.

Kommentar

Om du använder spring-boot-starter och om du föredrar det finns det ett alternativ till att använda Java-agenten. Se 3.x Spring Boot.

Steg 3: Konfigurera din Application Insights-anslutningssträng

Se konfigurera anslutningssträng.

Andra noteringar

Resten av det här dokumentet beskriver begränsningar och ändringar som du kan stöta på när du uppgraderar från 2.x till 3.x och några lösningar som du kan ha nytta av.

TelemetryInitializers

2.x SDK TelemetryInitializers körs inte när du använder 3.x-agenten. Många av de användningsfall som tidigare krävde att skriva en TelemetryInitializer kan lösas i Application Insights Java 3.x genom att konfigurera anpassade dimensioner. Eller använda ärvda attribut.

TelemetryProcessors

2.x SDK TelemetryProcessors körs inte när du använder 3.x-agenten. Många av de användningsfall som tidigare krävde att skriva en TelemetryProcessor kan lösas i Application Insights Java 3.x genom att konfigurera samplings åsidosättningar.

Flera program i en enda JVM

Det här användningsfallet stöds i Application Insights Java 3.x med åsidosättningar av molnrollnamn (förhandsversion) och/eller åsidosättningar av anslutningssträngar (förhandsversion).

Åtgärdsnamn

I Application Insights Java 2.x SDK innehöll åtgärdsnamnen i vissa fall den fullständiga sökvägen, till exempel:

Skärmbild som visar åtgärdsnamn med fullständig sökväg

Åtgärdsnamn i Application Insights Java 3.x har ändrats för att i allmänhet ge en bättre aggregerad vy i Application Insights Portal U/X, till exempel:

Skärmbild som visar åtgärdsnamn parametriserade

Men för vissa program kanske du fortfarande föredrar den aggregerade vyn i U/X som tillhandahölls av de tidigare åtgärdsnamnen. I det här fallet kan du använda telemetriprocessorfunktionen (förhandsversion) i 3.x för att replikera det tidigare beteendet.

Följande kodfragment konfigurerar tre telemetriprocessorer som kombineras för att replikera det tidigare beteendet. Telemetriprocessorerna utför följande åtgärder (i ordning):

  1. Den första telemetriprocessorn är en attributprocessor (har typen attribute), vilket innebär att den gäller för all telemetri som har attribut (för närvarande requests och dependencies, men snart också traces).

    Den matchar all telemetri som har attribut med namnet http.request.method och url.path.

    Sedan extraheras url.path attributet till ett nytt attribut med namnet tempName.

  2. Den andra telemetriprocessorn är en span-processor (har typen span), vilket innebär att den gäller för requests och dependencies.

    Den matchar alla intervall som har ett attribut med namnet tempPath.

    Sedan uppdateras span-namnet från attributet tempPath.

  3. Den sista telemetriprocessorn är en attributprocessor, samma typ som den första telemetriprocessorn.

    Den matchar all telemetri som har ett attribut med namnet tempPath.

    Sedan tas attributet med namnet tempPath, och attributet visas som en anpassad dimension.

{
  "preview": {
    "processors": [
      {
        "type": "attribute",
        "include": {
          "matchType": "strict",
          "attributes": [
            { "key": "http.request.method" },
            { "key": "url.path" }
          ]
        },
        "actions": [
          {
            "key": "url.path",
            "pattern": "https?://[^/]+(?<tempPath>/[^?]*)",
            "action": "extract"
          }
        ]
      },
      {
        "type": "span",
        "include": {
          "matchType": "strict",
          "attributes": [
            { "key": "tempPath" }
          ]
        },
        "name": {
          "fromAttributes": [ "http.request.method", "tempPath" ],
          "separator": " "
        }
      },
      {
        "type": "attribute",
        "include": {
          "matchType": "strict",
          "attributes": [
            { "key": "tempPath" }
          ]
        },
        "actions": [
          { "key": "tempPath", "action": "delete" }
        ]
      }
    ]
  }
}

Projektexempel

Det här Java 2.x SDK-projektet migreras till ett nytt projekt med hjälp av 3.x Java-agenten.