Java 2.x SDK'Analizler Uygulamadan 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 Analizler 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 Log4j yapılandırmanızdan Application Analizler ekleyicisini 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 Log4j yapılandırmanızdan Application Analizler ekleyicisini 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 Logback yapılandırmanızdan Application Analizler ekleyicisini 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.5.2.jar

Application Analizler 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: Uygulama Analizler 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, özel boyutlar yapılandırılarak Application Analizler Java 3.x'te çö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, örnekleme geçersiz kılmaları yapılandırılarak Java 3.x Analizler Uygulama'da çö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ğlan dize geçersiz kılmaları (önizleme) kullanılarak Java 3.x Analizler desteklenir.

İşlem adları

Uygulama Analizler 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 Analizler Java 3.x'teki işlem adları genellikle Uygulama Analizler 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 requestsdependenciesgeç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" }
        ]
      }
    ]
  }
}