Upgrade uitvoeren van Application Insights Java 2.x SDK
Er zijn doorgaans geen codewijzigingen bij het upgraden naar 3.x. De 3.x SDK-afhankelijkheden zijn geen API-versies van de 2.x SDK-afhankelijkheden. Wanneer de Java-agent 3.x wordt gebruikt, biedt de 3.x Java-agent echter de implementatie ervan. Als gevolg hiervan wordt uw aangepaste instrumentatie gecorreleerd met alle nieuwe automatische instrumentatie die wordt geleverd door de 3.x Java-agent.
Stap 1: Afhankelijkheden bijwerken
2.x-afhankelijkheid | Actie | Opmerkingen |
---|---|---|
applicationinsights-core |
De versie bijwerken naar 3.4.3 of hoger |
|
applicationinsights-web |
Werk de versie bij naar 3.4.3 of hoger en verwijder het Application Insights-webfilter voor uw web.xml bestand. |
|
applicationinsights-web-auto |
Vervangen door 3.4.3 of hoger van applicationinsights-web |
|
applicationinsights-logging-log4j1_2 |
Verwijder de afhankelijkheid en verwijder de Application Insights-toevoegfunctie uit uw Log4j-configuratie. | Niet meer nodig omdat Log4j 1.2 automatisch wordt geïn instrumenteerd in de 3.x Java-agent. |
applicationinsights-logging-log4j2 |
Verwijder de afhankelijkheid en verwijder de Application Insights-toevoegfunctie uit uw Log4j-configuratie. | Niet meer nodig omdat Log4j 2 automatisch wordt geïntenseerd in de 3.x Java-agent. |
applicationinsights-logging-logback |
Verwijder de afhankelijkheid en verwijder de Application Insights-toevoegfunctie uit uw Logback-configuratie. | Niet meer nodig omdat Logback automatisch wordt geïntenseerd in de 3.x Java-agent. |
applicationinsights-spring-boot-starter |
Vervangen door 3.4.3 of hoger van applicationinsights-web |
De naam van de cloudrol wordt niet meer standaard ingesteld op spring.application.name . Zie de configuratiedocumenten voor 3.x voor meer informatie over het configureren van de naam van de cloudrol. |
Stap 2: De 3.x Java-agent toevoegen
Voeg de 3.x Java-agent toe aan uw JVM-opdrachtregelargumenten (Java Virtual Machine), bijvoorbeeld:
-javaagent:path/to/applicationinsights-agent-3.6.2.jar
Als u de Application Insights 2.x Java-agent gebruikt, vervangt u uw bestaande -javaagent:...
door het vorige voorbeeld.
Notitie
Als u spring-boot-starter gebruikt en als u wilt, is er een alternatief voor het gebruik van de Java-agent. Zie 3.x Spring Boot.
Stap 3: Uw Application Insights-verbindingsreeks configureren
Zie het configureren van de verbindingsreeks.
Overige notities
In de rest van dit document worden beperkingen en wijzigingen beschreven die kunnen optreden bij het upgraden van 2.x naar 3.x, en enkele tijdelijke oplossingen die u mogelijk nuttig vindt.
TelemetryInitializers
2.x SDK TelemetryInitializers worden niet uitgevoerd wanneer u de 3.x-agent gebruikt.
Veel van de gebruiksvoorbeelden die eerder vereist waren om een TelemetryInitializer
te schrijven, kunnen worden opgelost in Application Insights Java 3.x door aangepaste dimensies te configureren.
Of met overgenomen kenmerken.
TelemetryProcessors
2.x SDK TelemetryProcessors worden niet uitgevoerd wanneer u de 3.x-agent gebruikt.
Veel van de gebruiksvoorbeelden die eerder vereist waren om een TelemetryProcessor
te schrijven, kunnen worden opgelost in Application Insights Java 3.x door steekproeven te configureren.
Meerdere toepassingen in één JVM
Deze use case wordt ondersteund in Application Insights Java 3.x met behulp van overschrijvingen van cloudrollen (preview) en/of onderdrukkingen van verbindingsreeksen (preview).>
Bewerkingsnamen
In de Application Insights Java 2.x SDK bevatten in sommige gevallen de namen van de bewerkingen het volledige pad, bijvoorbeeld:
Bewerkingsnamen in Application Insights Java 3.x zijn gewijzigd om over het algemeen een betere geaggregeerde weergave te bieden in de Application Insights-portal-U/X, bijvoorbeeld:
Voor sommige toepassingen geeft u echter de voorkeur aan de geaggregeerde weergave in de U/X die is opgegeven door de vorige bewerkingsnamen. In dit geval kunt u de functie telemetrieprocessors (preview) in 3.x gebruiken om het vorige gedrag te repliceren.
Het volgende codefragment configureert drie telemetrieprocessors die combineren om het vorige gedrag te repliceren. De telemetrieprocessors voeren de volgende acties uit (in volgorde):
De eerste telemetrieprocessor is een kenmerkprocessor (heeft type
attribute
), wat betekent dat het van toepassing is op alle telemetrie die kenmerken heeft (momenteelrequests
endependencies
, maar binnenkort ooktraces
).Het komt overeen met alle telemetriegegevens met kenmerken met de naam
http.request.method
enurl.path
.Vervolgens wordt het kenmerk geëxtraheerd
url.path
in een nieuw kenmerk met de naamtempName
.De tweede telemetrieprocessor is een spanprocessor (heeft type
span
), wat betekent dat deze van toepassing is oprequests
endependencies
.Deze komt overeen met een bereik met een kenmerk met de naam
tempPath
.Vervolgens wordt de spannaam van het kenmerk
tempPath
bijgewerkt.De laatste telemetrieprocessor is een kenmerkprocessor, hetzelfde type als de eerste telemetrieprocessor.
Deze komt overeen met alle telemetriegegevens met een kenmerk met de naam
tempPath
.Vervolgens wordt het kenmerk met de naam
tempPath
verwijderd en wordt het kenmerk weergegeven als een aangepaste dimensie.
{
"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" }
]
}
]
}
}
Projectvoorbeeld
Dit Java 2.x SDK-project wordt gemigreerd naar een nieuw project met behulp van de 3.x Java-agent.