Application Insights Java 2.x SDK'dan yükseltme
3.x sürümüne yükseltirken genellikle kod değişikliği olmaz. 3.x SDK bağımlılıkları, 2.x SDK bağımlılıklarının api olmayan sürümleridir. Ancak, 3.x Java aracısı ile kullanıldığında, 3.x Java aracısı onlar için uygulamayı sağlar. Sonuç olarak, özel izlemeniz 3.x Java aracısı tarafından sağlanan tüm yeni otomatik yetkisiz erişimle ilişkilendirilir.
1. Adım: Bağımlılıkları güncelleştirme
2. Adım: 3.x Java aracısını ekleme
Java Sanal Makinesi (JVM) komut satırı args'nize 3.x Java aracısını ekleyin, örneğin:
-javaagent:path/to/applicationinsights-agent-3.6.2.jar
Application Insights 2.x Java aracısını kullanıyorsanız mevcut -javaagent:...
örneğinizi önceki örnekle değiştirmeniz yeter.
Not
Spring-boot-starter kullanıyorsanız ve tercih ederseniz Java aracısını kullanmanın bir alternatifi vardır. Bkz . 3.x Spring Boot.
3. Adım: Application Insights bağlantı dizesi yapılandırma
Bkz. bağlantı dizesi yapılandırma.
Diğer notlar
Bu belgenin geri kalanında, 2.x'ten 3.x'e yükseltirken karşılaşabileceğiniz sınırlamalar ve değişiklikler ve yararlı bulabileceğiniz bazı geçici çözümler açıklanmaktadır.
TelemetryInitializers
2.x SDK TelemetriSiyelleştiricileri 3.x aracısını kullanırken çalışmaz.
Daha önce yazması TelemetryInitializer
gereken kullanım örneklerinin çoğu Application Insights Java 3.x'te özel boyutlar yapılandırılarak çözülebilir.
Veya devralınan öznitelikleri kullanma.
TelemetryProcessors
2.x SDK Telemetri İşlemcileri, 3.x aracısını kullanırken çalışmaz.
Daha önce yazması TelemetryProcessor
gereken kullanım örneklerinin çoğu Application Insights Java 3.x'te örnekleme geçersiz kılmaları yapılandırılarak çözülebilir.
Tek bir JVM'de birden çok uygulama
Bu kullanım örneği, Bulut rolü adı geçersiz kılmaları (önizleme) ve/veya Bağlantı dizesi geçersiz kılmaları (önizleme) kullanılarak Application Insights Java 3.x'te desteklenir.
İşlem adları
Application Insights Java 2.x SDK'sında, bazı durumlarda işlem adları tam yolu içerir, örneğin:
Application Insights Java 3.x'teki işlem adları genellikle Application Insights Portalı U/X'te daha iyi bir toplu görünüm sağlayacak şekilde değiştirildi, örneğin:
Ancak, bazı uygulamalar için yine de önceki işlem adları tarafından sağlanan U/X'te toplu görünümü tercih edebilirsiniz. Bu durumda, önceki davranışı çoğaltmak için 3.x'teki telemetri işlemcileri (önizleme) özelliğini kullanabilirsiniz.
Aşağıdaki kod parçacığı, önceki davranışı çoğaltmak için birleştirilen üç telemetri işlemcisi yapılandırılır. Telemetri işlemcileri aşağıdaki eylemleri gerçekleştirir (sırayla):
İlk telemetri işlemcisi bir öznitelik işlemcisidir (türüne
attribute
sahiptir), yani öznitelikleri olan tüm telemetri için geçerlidir (şu andarequests
vedependencies
, ancak yakında datraces
).ve
url.path
adlıhttp.request.method
öznitelikleri olan telemetri verileriyle eşleşir.Ardından özniteliği adlı
tempName
yeni bir özniteliğine ayıklarurl.path
.İkinci telemetri işlemcisi, ve için
requests
dependencies
geçerli olduğu anlamına gelen bir span işlemcidir (türünespan
sahiptir).adlı
tempPath
özniteliği olan herhangi bir span ile eşleşir.Ardından özniteliğinden
tempPath
span adını güncelleştirir.Son telemetri işlemcisi, ilk telemetri işlemcisi ile aynı türde bir öznitelik işlemcisidir.
adlı
tempPath
bir özniteliği olan telemetri verileriyle eşleşir.Ardından adlı
tempPath
özniteliği siler ve özniteliği özel bir boyut olarak görünür.
{
"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" }
]
}
]
}
}
Proje örneği
Bu Java 2.x SDK projesi, 3.x Java aracısı kullanılarak yeni bir projeye geçirilir.