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.x bağımlılığı Eylem Açıklamalar
applicationinsights-core Sürümü veya sonraki bir sürüme 3.4.3 güncelleştirme
applicationinsights-web Sürümü veya sonraki bir sürüme 3.4.3 güncelleştirin ve Application Insights web filtresini web.xml kaldırın.
applicationinsights-web-auto şununla veya daha sonraki bir sürümle 3.4.3 değiştir: applicationinsights-web
applicationinsights-logging-log4j1_2 Bağımlılığı kaldırın ve Application Insights ekleyicisini Log4j yapılandırmanızdan kaldırın. Log4j 1.2, 3.x Java aracısında otomatik olarak dağıtıldığından artık gerekli değildir.
applicationinsights-logging-log4j2 Bağımlılığı kaldırın ve Application Insights ekleyicisini Log4j yapılandırmanızdan kaldırın. Log4j 2, 3.x Java aracısında otomatik olarak dağıtıldığından artık gerekli değildir.
applicationinsights-logging-logback Bağımlılığı kaldırın ve Application Insights ekleyicisini Logback yapılandırmanızdan kaldırın. Logback, 3.x Java aracısında otomatik olarak dağıtıldığından artık gerekli değildir.
applicationinsights-spring-boot-starter şununla veya daha sonraki bir sürümle 3.4.3 değiştir: applicationinsights-web Bulut rolü adı artık varsayılan değeri spring.application.namedeğildir. Bulut rolü adını yapılandırmayı öğrenmek için 3.x yapılandırma belgelerine bakın.

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:

Tam yolu olan işlem adlarını gösteren ekran görüntüsü

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:

Parametreli işlem adlarını gösteren ekran görüntüsü

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

  1. İlk telemetri işlemcisi bir öznitelik işlemcisidir (türüne attributesahiptir), yani öznitelikleri olan tüm telemetri için geçerlidir (şu anda requests ve dependencies, ancak yakında da traces).

    ve url.pathadlı http.request.method öznitelikleri olan telemetri verileriyle eşleşir.

    Ardından özniteliği adlı tempNameyeni bir özniteliğine ayıklarurl.path.

  2. İkinci telemetri işlemcisi, ve için requests dependenciesgeçerli olduğu anlamına gelen bir span işlemcidir (türüne spansahiptir).

    adlı tempPathözniteliği olan herhangi bir span ile eşleşir.

    Ardından özniteliğinden tempPathspan adını güncelleştirir.

  3. Son telemetri işlemcisi, ilk telemetri işlemcisi ile aynı türde bir öznitelik işlemcisidir.

    adlı tempPathbir ö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.