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:

Cuplikan layar yang menunjukkan nama operasi dengan jalur penuh

Nama operasi di Application Insights Java 3.x berubah menjadi umumnya memberikan tampilan agregat yang lebih baik di U/X Portal Application Insights, misalnya:

Cuplikan layar yang menunjukkan nama operasi yang diberi parameter

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):

  1. Prosesor telemetri pertama adalah prosesor atribut (memiliki jenis attribute), yang berarti berlaku untuk semua telemetri yang memiliki atribut (saat ini requests dan dependencies, tetapi segera traces juga).

    Ini cocok dengan telemetri apa pun yang memiliki atribut bernama http.request.method dan url.path.

    Kemudian mengekstrak url.path atribut ke dalam atribut baru bernama tempName.

  2. Prosesor telemetri kedua adalah prosesor span (memiliki jenis span), yang berarti berlaku untuk requests dan dependencies.

    Ini cocok dengan rentang apa pun yang memiliki atribut bernama tempPath.

    Kemudian memperbarui nama rentang dari atribut tempPath.

  3. 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" }
        ]
      }
    ]
  }
}