Meningkatkan dari Application Insights Java 2.x SDK
Biasanya tidak ada perubahan kode saat meningkatkan ke 3.x. Dependensi SDK 3.x adalah versi API no-op dari dependensi SDK 2.x. Namun, ketika digunakan dengan agen Java 3.x, agen Java 3.x menyediakan implementasi untuk mereka. Akibatnya, instrumentasi kustom Anda berkorelasi dengan semua autoinstrumentasi baru yang disediakan oleh agen Java 3.x.
Langkah 1: Perbarui dependensi
Dependensi 2.x | Perbuatan | Keterangan |
---|---|---|
applicationinsights-core |
Perbarui versi ke 3.4.3 atau yang lebih baru |
|
applicationinsights-web |
Perbarui versi ke 3.4.3 atau yang lebih baru, dan hapus filter web Application Insights file Anda web.xml . |
|
applicationinsights-web-auto |
Ganti dengan 3.4.3 atau yang lebih baru applicationinsights-web |
|
applicationinsights-logging-log4j1_2 |
Hapus dependensi dan hapus appender Application Insights dari konfigurasi Log4j Anda. | Tidak lagi diperlukan karena Log4j 1.2 secara otomatis disusupi di agen Java 3.x. |
applicationinsights-logging-log4j2 |
Hapus dependensi dan hapus appender Application Insights dari konfigurasi Log4j Anda. | Tidak lagi diperlukan karena Log4j 2 secara otomatis disusupi di agen Java 3.x. |
applicationinsights-logging-logback |
Hapus dependensi dan hapus appender Application Insights dari konfigurasi Logback Anda. | Tidak lagi diperlukan karena Logback secara otomatis disusupi di agen Java 3.x. |
applicationinsights-spring-boot-starter |
Ganti dengan 3.4.3 atau yang lebih baru applicationinsights-web |
Nama peran cloud tidak lagi default ke spring.application.name . Untuk mempelajari cara mengonfigurasi nama peran cloud, lihat dokumen konfigurasi 3.x. |
Langkah 2: Tambahkan agen Java 3.x
Tambahkan agen Java 3.x ke arg baris perintah Java Virtual Machine (JVM) Anda, misalnya:
-javaagent:path/to/applicationinsights-agent-3.5.2.jar
Jika Anda menggunakan agen Java Application Insights 2.x, cukup ganti yang sudah ada -javaagent:...
dengan contoh sebelumnya.
Catatan
Jika Anda menggunakan spring-boot-starter dan jika Anda mau, ada alternatif untuk menggunakan agen Java. Lihat Spring Boot 3.x.
Langkah 3: Konfigurasikan string koneksi Application Insights Anda
Lihat mengonfigurasi string koneksi.
Catatan lain
Sisa dokumen ini menjelaskan batasan dan perubahan yang mungkin Anda temui saat memutakhirkan dari 2.x ke 3.x, dan beberapa solusi yang mungkin berguna bagi Anda.
TelemetryInitializers
2.x SDK TelemetryInitializers tidak berjalan saat menggunakan agen 3.x.
Banyak kasus penggunaan yang sebelumnya memerlukan penulisan TelemetryInitializer
dapat diselesaikan dalam Application Insights Java 3.x dengan mengonfigurasi dimensi kustom.
Atau menggunakan atribut yang diwariskan.
TelemetryProcessors
2.x SDK TelemetryProcessors tidak berjalan saat menggunakan agen 3.x.
Banyak kasus penggunaan yang sebelumnya mengharuskan penulisan TelemetryProcessor
dapat diselesaikan di Application Insights Java 3.x dengan mengonfigurasi penggantian pengambilan sampel.
Beberapa aplikasi dalam satu JVM
Kasus penggunaan ini didukung di Application Insights Java 3.x menggunakan penimpaan nama peran Cloud (pratinjau) dan/atau penimpaan string Koneksi ion (pratinjau).
Nama operasi
Dalam Application Insights Java 2.x SDK, dalam beberapa kasus, nama operasi berisi jalur lengkap, misalnya:
Nama operasi di Application Insights Java 3.x berubah menjadi umumnya memberikan tampilan agregat yang lebih baik di U/X Portal Application Insights, misalnya:
Namun, untuk beberapa aplikasi, Anda mungkin masih lebih suka tampilan agregat di U/X yang disediakan oleh nama operasi sebelumnya. Dalam hal ini, Anda dapat menggunakan fitur prosesor telemetri (pratinjau) di 3.x untuk mereplikasi perilaku sebelumnya.
Cuplikan berikut mengonfigurasi tiga prosesor telemetri yang digabungkan untuk mereplikasi perilaku sebelumnya. Prosesor telemetri melakukan tindakan berikut (secara berurutan):
Prosesor telemetri pertama adalah prosesor atribut (memiliki jenis
attribute
), yang berarti berlaku untuk semua telemetri yang memiliki atribut (saat inirequests
dandependencies
, tetapi segeratraces
juga).Ini cocok dengan telemetri apa pun yang memiliki atribut bernama
http.request.method
danurl.path
.Kemudian mengekstrak
url.path
atribut ke dalam atribut baru bernamatempName
.Prosesor telemetri kedua adalah prosesor span (memiliki jenis
span
), yang berarti berlaku untukrequests
dandependencies
.Ini cocok dengan rentang apa pun yang memiliki atribut bernama
tempPath
.Kemudian memperbarui nama rentang dari atribut
tempPath
.Prosesor telemetri terakhir adalah prosesor atribut, jenis yang sama dengan prosesor telemetri pertama.
Ini cocok dengan telemetri apa pun yang memiliki atribut bernama
tempPath
.Kemudian menghapus atribut bernama
tempPath
, dan atribut muncul sebagai dimensi kustom.
{
"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" }
]
}
]
}
}