Uaktualnianie z zestawu SDK Szczegółowe informacje Java 2.x
Zazwyczaj podczas uaktualniania do wersji 3.x nie ma żadnych zmian w kodzie. Zależności zestawu SDK 3.x to wersje interfejsu API bez operacji zależności zestawu SDK 2.x. Jednak w przypadku użycia z agentem 3.x języka Java agent 3.x udostępnia ich implementację. W związku z tym instrumentacja niestandardowa jest skorelowana ze wszystkimi nowymi autoinstrumentacjami dostarczonymi przez agenta Java 3.x.
Krok 1. Aktualizowanie zależności
Krok 2. Dodawanie agenta Java 3.x
Dodaj agenta java 3.x do zestawu args wiersza polecenia java virtual machine (JVM), na przykład:
-javaagent:path/to/applicationinsights-agent-3.5.2.jar
Jeśli używasz agenta java application Szczegółowe informacje 2.x, po prostu zastąp istniejący -javaagent:...
poprzednim przykładem.
Uwaga
Jeśli używasz szablonu spring-boot-starter i jeśli wolisz, istnieje alternatywa dla korzystania z agenta Java. Zobacz 3.x Spring Boot.
Krok 3. Konfigurowanie Szczegółowe informacje parametry połączenia aplikacji
Zobacz konfigurowanie parametry połączenia.
Inne notatki
W pozostałej części tego dokumentu opisano ograniczenia i zmiany, które mogą wystąpić podczas uaktualniania z wersji 2.x do 3.x, a także niektóre obejścia, które mogą okazać się przydatne.
TelemetriaInitializers
2.x Zestaw SDK TelemetryInitializers nie jest uruchamiany podczas korzystania z agenta 3.x.
Wiele przypadków użycia, które wcześniej wymagały zapisuTelemetryInitializer
, można rozwiązać w aplikacji Szczegółowe informacje Java 3.x, konfigurując wymiary niestandardowe.
Lub przy użyciu atrybutów dziedziczynych.
Procesory telemetrii
2.x Zestaw SDK TelemetryProcessors nie jest uruchamiany podczas korzystania z agenta 3.x.
Wiele przypadków użycia, które wcześniej wymagały zapisu, TelemetryProcessor
można rozwiązać w aplikacji Szczegółowe informacje Java 3.x przez skonfigurowanie przesłonięć próbkowania.
Wiele aplikacji w jednej maszynie wirtualnej JVM
Ten przypadek użycia jest obsługiwany w środowisku Application Szczegółowe informacje Java 3.x przy użyciu przesłonięć nazw ról w chmurze (wersja zapoznawcza) i/lub przesłonięcia ciągu Połączenie ion (wersja zapoznawcza).
Nazwy operacji
W niektórych przypadkach w zestawie SDK aplikacji Szczegółowe informacje Java 2.x nazwy operacji zawierały pełną ścieżkę, na przykład:
Nazwy operacji w środowisku Application Szczegółowe informacje Java 3.x zmieniły się, aby ogólnie zapewnić lepszy zagregowany widok w aplikacji Szczegółowe informacje Portal U/X, na przykład:
Jednak w przypadku niektórych aplikacji nadal możesz preferować zagregowany widok w U/X, który został dostarczony przez poprzednie nazwy operacji. W takim przypadku można użyć funkcji procesorów telemetrycznych (wersja zapoznawcza) w wersji 3.x, aby zreplikować poprzednie zachowanie.
Poniższy fragment kodu konfiguruje trzy procesory telemetryczne, które łączą się w celu replikowania poprzedniego zachowania. Procesory telemetryczne wykonują następujące akcje (w kolejności):
Pierwszy procesor telemetrii jest procesorem atrybutów (ma typ
attribute
), co oznacza, że ma zastosowanie do wszystkich danych telemetrycznych, które mają atrybuty (obecnierequests
idependencies
, ale wkrótce takżetraces
).Pasuje do dowolnej telemetrii, która ma atrybuty o nazwach
http.request.method
iurl.path
.Następnie wyodrębnia
url.path
atrybut do nowego atrybutu o nazwietempName
.Drugi procesor telemetrii jest procesorem span (ma typ
span
), co oznacza, że ma zastosowanie dorequests
idependencies
.Pasuje do dowolnego zakresu, który ma atrybut o nazwie
tempPath
.Następnie aktualizuje nazwę zakresu z atrybutu
tempPath
.Ostatni procesor telemetrii jest procesorem atrybutów, takim samym typem jak pierwszy procesor telemetrii.
Pasuje do wszystkich danych telemetrycznych, które mają atrybut o nazwie
tempPath
.Następnie usuwa atrybut o nazwie
tempPath
, a atrybut jest wyświetlany jako wymiar niestandardowy.
{
"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" }
]
}
]
}
}