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:
Å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:
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):
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ärvaranderequests
ochdependencies
, men snart ocksåtraces
).Den matchar all telemetri som har attribut med namnet
http.request.method
ochurl.path
.Sedan extraheras
url.path
attributet till ett nytt attribut med namnettempName
.Den andra telemetriprocessorn är en span-processor (har typen
span
), vilket innebär att den gäller förrequests
ochdependencies
.Den matchar alla intervall som har ett attribut med namnet
tempPath
.Sedan uppdateras span-namnet från attributet
tempPath
.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.