Aracılığıyla paylaş


Yapılandırma seçenekleri: Java için Azure İzleyici Application Insights

Bu makalede Java için Azure İzleyici Application Insights'ı yapılandırma adımları gösterilmektedir.

Bağlantı dizesi ve rol adı

Başlamak için gereken en yaygın ayarlar bağlantı dizesi ve rol adıdır:

{
  "connectionString": "...",
  "role": {
    "name": "my cloud role name"
  }
}

Bağlantı dizesi gereklidir. Farklı uygulamalardan aynı Application Insights kaynağına veri gönderdiğiniz her zaman rol adı önemlidir.

Daha fazla bilgi ve yapılandırma seçenekleri aşağıdaki bölümlerde verilmiştir.

Yapılandırma dosyası yolu

Varsayılan olarak, Application Insights Java 3.x yapılandırma dosyasının olarak adlandırılmış applicationinsights.jsonolmasını ve ile aynı dizinde applicationinsights-agent-3.6.2.jaryer almayı bekler.

Şu iki seçenekten birini kullanarak kendi yapılandırma dosyası yolunuzu belirtebilirsiniz:

  • APPLICATIONINSIGHTS_CONFIGURATION_FILE ortam değişkeni
  • applicationinsights.configuration.file Java sistem özelliği

Göreli bir yol belirtirseniz, bulunduğu dizine applicationinsights-agent-3.6.2.jar göre çözümleniyor.

Alternatif olarak, bir yapılandırma dosyası kullanmak yerine JSON yapılandırmasının içeriğinin tamamını ortam değişkeni APPLICATIONINSIGHTS_CONFIGURATION_CONTENTaracılığıyla belirtebilirsiniz.

Connection string

Bağlantı dizesi gereklidir. bağlantı dizesi Application Insights kaynağınızda bulabilirsiniz.

Application Insights bağlantı dizesi gösteren ekran görüntüsü.

{
  "connectionString": "..."
}

ortam değişkenini APPLICATIONINSIGHTS_CONNECTION_STRINGkullanarak da bağlantı dizesi ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilen bağlantı dizesi önceliklidir.

Veya Java sistem özelliğini applicationinsights.connection.stringkullanarak bağlantı dizesi ayarlayabilirsiniz. Ayrıca JSON yapılandırmasında belirtilen bağlantı dizesi önceliklidir.

bağlantı dizesi yüklenecek dosyayı belirterek de bağlantı dizesi ayarlayabilirsiniz.

Göreli bir yol belirtirseniz, bulunduğu dizine applicationinsights-agent-3.6.2.jar göre çözümleniyor.

{
  "connectionString": "${file:connection-string-file.txt}"
}

Dosya yalnızca bağlantı dizesi içermeli ve başka hiçbir şey içermemelidir.

bağlantı dizesi ayarlanmaması Java aracısını devre dışı bırakır.

Aynı Java Sanal Makinesi'nde (JVM) dağıtılan birden çok uygulamanız varsa ve bunların farklı bağlantı dizesi telemetri göndermesini istiyorsanız bkz. Bağlantı dizesi geçersiz kılmaları (önizleme).

Bulut rolü adı

Bulut rolü adı, bileşeni uygulama haritasında etiketlemek için kullanılır.

Bulut rolü adını ayarlamak istiyorsanız:

{
  "role": {   
    "name": "my cloud role name"
  }
}

Bulut rolü adı ayarlanmadıysa Application Insights kaynağının adı, bileşeni uygulama haritasında etiketlemek için kullanılır.

Ortam değişkenini APPLICATIONINSIGHTS_ROLE_NAMEkullanarak bulut rolü adını da ayarlayabilirsiniz. Ardından JSON yapılandırmasında belirtilen bulut rolü adından önceliklidir.

Veya Java sistem özelliğini applicationinsights.role.namekullanarak bulut rolü adını ayarlayabilirsiniz. Ayrıca JSON yapılandırmasında belirtilen bulut rolü adından da önceliklidir.

Aynı JVM'de dağıtılan birden çok uygulamanız varsa ve bunların farklı bulut rolü adlarına telemetri göndermesini istiyorsanız bkz . Bulut rolü adı geçersiz kılmaları (önizleme).

Bulut rol örneği

Bulut rolü örneği varsayılan olarak makine adını kullanır.

Bulut rolü örneğini makine adı yerine farklı bir değere ayarlamak istiyorsanız:

{
  "role": {
    "name": "my cloud role name",
    "instance": "my cloud role instance"
  }
}

Ortam değişkenini APPLICATIONINSIGHTS_ROLE_INSTANCEkullanarak bulut rolü örneğini de ayarlayabilirsiniz. Ardından JSON yapılandırmasında belirtilen bulut rolü örneğinden önceliklidir.

Veya Java sistem özelliğini applicationinsights.role.instancekullanarak bulut rolü örneğini ayarlayabilirsiniz. Ayrıca JSON yapılandırmasında belirtilen bulut rolü örneğinden önceliklidir.

Örnekleme

Not

Örnekleme, Application Insights maliyetini düşürmenin harika bir yolu olabilir. Örnekleme yapılandırmanızı kullanım örneğiniz için uygun şekilde ayarladığınızdan emin olun.

Örnekleme isteği temel alır, yani bir istek yakalanırsa (örneklenir), bağımlılıkları, günlükleri ve özel durumları da öyle olur.

Örnekleme, farklı hizmetler arasında tutarlı örnekleme kararları alınmasına yardımcı olmak için izleme kimliğini de temel alır.

Örnekleme yalnızca isteğin içindeki günlükler için geçerlidir. Bir isteğin içinde olmayan günlükler (örneğin, başlangıç günlükleri) her zaman varsayılan olarak toplanır. Bu günlükleri örneklemek istiyorsanız Örnekleme geçersiz kılmalarını kullanabilirsiniz.

Hız sınırlı örnekleme

3.4.0'dan itibaren hız sınırlı örnekleme kullanılabilir ve artık varsayılandır.

Örnekleme yapılandırılmamışsa varsayılan değer, bu isteklerdeki tüm bağımlılıklar ve günlüklerle birlikte saniyede en fazla (yaklaşık) beş isteği yakalayacak şekilde yapılandırılmış hız sınırlı örneklemedir.

Bu yapılandırma, tüm istekleri yakalamak için önceki varsayılanın yerini alır. Yine de tüm istekleri yakalamak istiyorsanız, sabit yüzdeli örneklemeyi kullanın ve örnekleme yüzdesini 100 olarak ayarlayın.

Not

Hız sınırlı örnekleme yaklaşıktır çünkü dahili olarak her telemetri kaydında doğru öğe sayılarını yaymak için zaman içinde "sabit" örnekleme yüzdesini uyarlaması gerekir. Dahili olarak, hız sınırlı örnekleme, yeni uygulama yüklerine hızlı bir şekilde (0,1 saniye) uyum sağlayacak şekilde ayarlanır. Bu nedenle, yapılandırılan oranı çok fazla veya çok uzun süre aştığını görmemeniz gerekir.

Bu örnekte, örneklemenin saniyede en fazla bir istek (yaklaşık) yakalamak üzere nasıl ayarlanacağı gösterilmektedir:

{
  "sampling": {
    "requestsPerSecond": 1.0
  }
}

requestsPerSecond ondalık olabilir, bu nedenle isterseniz saniyede birden az istek yakalayacak şekilde yapılandırabilirsiniz. Örneğin değeri, 0.5 her 2 saniyede bir en fazla bir istek yakalama anlamına gelir.

Ortam değişkenini APPLICATIONINSIGHTS_SAMPLING_REQUESTS_PER_SECONDkullanarak örnekleme yüzdesini de ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilen hız sınırından önceliklidir.

Sabit yüzde örnekleme

Bu örnekte, örneklemenin tüm isteklerin yaklaşık üçte birini yakalayacak şekilde nasıl ayarlanacağı gösterilmektedir:

{
  "sampling": {
    "percentage": 33.333
  }
}

Ortam değişkenini APPLICATIONINSIGHTS_SAMPLING_PERCENTAGEkullanarak örnekleme yüzdesini de ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilen örnekleme yüzdesine göre önceliklidir.

Not

Örnekleme yüzdesi için 100/N'ye yakın bir yüzde seçin; burada N bir tamsayıdır. Şu anda örnekleme diğer değerleri desteklememektedir.

Örnekleme geçersiz kılmaları

Örnekleme geçersiz kılmaları, varsayılan örnekleme yüzdesini geçersiz kılmanıza olanak sağlar. Örneğin, şunları yapabilirsiniz:

  • Gürültülü sistem durumu denetimleri için örnekleme yüzdesini 0 veya küçük bir değer olarak ayarlayın.
  • Gürültülü bağımlılık çağrıları için örnekleme yüzdesini 0 veya küçük bir değer olarak ayarlayın.
  • Önemli bir istek türü için örnekleme yüzdesini 100 olarak ayarlayın. Örneğin, varsayılan örneklemeyi daha düşük bir değere yapılandırmış olsanız bile kullanabilirsiniz /login .

Daha fazla bilgi için Örnekleme geçersiz kılmaları belgelerine bakın.

Java Yönetim Uzantıları ölçümleri

Bazı diğer Java Yönetim Uzantıları (JMX) ölçümlerini toplamak istiyorsanız:

{
  "jmxMetrics": [
    {
      "name": "JVM uptime (millis)",
      "objectName": "java.lang:type=Runtime",
      "attribute": "Uptime"
    },
    {
      "name": "MetaSpace Used",
      "objectName": "java.lang:type=MemoryPool,name=Metaspace",
      "attribute": "Usage.used"
    }
  ]
}

Yukarıdaki yapılandırma örneğinde:

Sayısal ve Boole JMX ölçüm değerleri desteklenir. Boole JMX ölçümleri false ve 1 true için ile eşlenir0.

Daha fazla bilgi için JMX ölçümleri belgelerine bakın.

Özel boyutlar

Tüm telemetrinize özel boyutlar eklemek istiyorsanız:

{
  "customDimensions": {
    "mytag": "my value",
    "anothertag": "${ANOTHER_VALUE}"
  }
}

Başlangıçta belirtilen ortam değişkeninden değeri okumak için kullanabilirsiniz ${...} .

Not

3.0.2 sürümünden başlayarak adlı service.versionözel bir boyut eklerseniz, değer özel boyut olarak değil Application Insights Günlükleri tablosundaki sütunda application_Version depolanır.

Devralınan öznitelik (önizleme)

Sürüm 3.2.0'dan başlayarak, istek telemetrinizde program aracılığıyla özel bir boyut ayarlayabilirsiniz. Bağımlılık ve günlük telemetrisi ile devralmayı sağlar. Tümü bu istek bağlamında yakalanır.

{
  "preview": {
    "inheritedAttributes": [
      {
        "key": "mycustomer",
        "type": "string"
      }
    ]
  }
}

Ardından her isteğin başında şunları çağırın:

Span.current().setAttribute("mycustomer", "xyz");

Ayrıca bkz. Span'e özel özellik ekleme.

Bağlantı dizesi geçersiz kılmaları (önizleme)

Bu özellik 3.4.0 sürümünden itibaren önizleme aşamasındadır.

Bağlantı dizesi geçersiz kılmaları, varsayılan bağlantı dizesi geçersiz kılmanıza olanak sağlar. Örneğin, şunları yapabilirsiniz:

  • Bir HTTP yolu ön eki /myapp1için bir bağlantı dizesi ayarlayın.
  • Başka bir HTTP yolu ön eki /myapp2/için başka bir bağlantı dizesi ayarlayın.
{
  "preview": {
    "connectionStringOverrides": [
      {
        "httpPathPrefix": "/myapp1",
        "connectionString": "..."
      },
      {
        "httpPathPrefix": "/myapp2",
        "connectionString": "..."
      }
    ]
  }
}

Bulut rolü adı geçersiz kılmaları (önizleme)

Bu özellik 3.3.0 sürümünden itibaren önizleme aşamasındadır.

Bulut rolü adı geçersiz kılmaları, varsayılan bulut rolü adını geçersiz kılmanıza olanak sağlar. Örneğin, şunları yapabilirsiniz:

  • Bir HTTP yolu ön eki /myapp1için bir bulut rolü adı ayarlayın.
  • Başka bir HTTP yolu ön eki /myapp2/için başka bir bulut rolü adı ayarlayın.
{
  "preview": {
    "roleNameOverrides": [
      {
        "httpPathPrefix": "/myapp1",
        "roleName": "Role A"
      },
      {
        "httpPathPrefix": "/myapp2",
        "roleName": "Role B"
      }
    ]
  }
}

Çalışma zamanında yapılandırılan bağlantı dizesi

Sürüm 3.4.8'den başlayarak, çalışma zamanında bağlantı dizesi yapılandırma yeteneğine ihtiyacınız varsa bu özelliği json yapılandırmanıza ekleyin:

{
  "connectionStringConfiguredAtRuntime": true
}

Uygulamanıza ekleyin applicationinsights-core :

<dependency>
  <groupId>com.microsoft.azure</groupId>
  <artifactId>applicationinsights-core</artifactId>
  <version></version>
</dependency>

sınıfında com.microsoft.applicationinsights.connectionstring.ConnectionStringstatik configure(String) yöntemini kullanın.

Not

bağlantı dizesi yapılandırmadan önce yakalanan tüm telemetriler bırakılır, bu nedenle uygulama başlatmanızda mümkün olan en erken şekilde yapılandırmak en iyisidir.

InProc bağımlılıklarını otomatik toplama (önizleme)

Sürüm 3.2.0'dan başlayarak denetleyici "InProc" bağımlılıklarını yakalamak istiyorsanız aşağıdaki yapılandırmayı kullanın:

{
  "preview": {
    "captureControllerSpans": true
  }
}

Tarayıcı SDK Yükleyicisi (önizleme)

Bu özellik, uygun Bağlantı Dizesini yapılandırmak da dahil olmak üzere tarayıcınızın HTML sayfalarına Tarayıcı SDK Yükleyicisi'ni otomatik olarak ekler.

Örneğin, java uygulamanız aşağıdaki gibi bir yanıt döndürdüğünde:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Title</title>
  </head>
  <body>
  </body>
</html>

Otomatik olarak döndürülecek şekilde değiştirilir:

<!DOCTYPE html>
<html lang="en">
  <head>
    <script type="text/javascript">
    !function(v,y,T){var S=v.location,k="script"
    <!-- Removed for brevity -->
    connectionString: "YOUR_CONNECTION_STRING"
    <!-- Removed for brevity --> }});
    </script>
    <title>Title</title>
  </head>
  <body>
  </body>
</html>

Betik, müşterilerin web kullanıcı verilerini izlemesine yardımcı olmayı amaçlar ve toplama sunucu tarafı telemetrisini kullanıcıların Azure portalına geri gönderir. Ayrıntıları ApplicationInsights-JS adresinde bulabilirsiniz.

Bu özelliği etkinleştirmek istiyorsanız aşağıdaki yapılandırma seçeneğini ekleyin:

{
  "preview": {
    "browserSdkLoader": {
      "enabled": true
    }
  }
}

Telemetri işlemcileri (önizleme)

Telemetri işlemcilerini istek, bağımlılık ve izleme telemetrisine uygulanan kuralları yapılandırmak için kullanabilirsiniz. Örneğin, şunları yapabilirsiniz:

  • Hassas verileri maskele.
  • Koşullu olarak özel boyutlar ekleyin.
  • Azure portalında benzer telemetri verilerini toplamak için kullanılan span adını güncelleştirin.
  • Alım maliyetlerini denetlemek için belirli span özniteliklerini bırakın.

Daha fazla bilgi için Telemetri işlemcisi belgelerine bakın.

Not

Alım maliyetini denetlemek için belirli (tam) aralıkları bırakmak istiyorsanız bkz . Örnekleme geçersiz kılmaları.

Özel izleme (önizleme)

Verion 3.3.1'den başlayarak uygulamanızdaki bir yöntem için spans yakalayabilirsiniz:

{
  "preview": {
    "customInstrumentation": [
      {
        "className": "my.package.MyClass",
        "methodName": "myMethod"
      }
    ]
  }
}

Alma örneklemesini yerel olarak devre dışı bırakma (önizleme)

Varsayılan olarak, Java aracısında etkin örnekleme yüzdesi %100 olduğunda ve Application Insights kaynağınızda alım örneklemesi yapılandırıldığında, alma örnekleme yüzdesi uygulanır.

Bu davranışın hem %100 sabit hızlı örnekleme için hem de istek oranı hız sınırını aşmadığında (sürekli kayan zaman penceresinde etkili bir şekilde %100 yakalama) hız sınırlı örnekleme için de geçerli olduğunu unutmayın.

3.5.3'ten başlayarak bu davranışı devre dışı bırakabilir (bu durumlarda Application Insights kaynağınızda alım örneklemesi yapılandırıldığında bile telemetri verilerinin %100'ünün kalmasını sağlayabilirsiniz):

{
  "preview": {
    "sampling": {
      "ingestionSamplingEnabled": false
    }
  }
}

Otomatik olarak birleştirilmiş günlük kaydı

Log4j, Logback, JBoss Logging ve java.util.logging otomatik olarak dağıtılır. Bu günlük çerçeveleri aracılığıyla gerçekleştirilen günlük otomatik olarak bir araya getirilir.

Günlüğe kaydetme yalnızca şu durumda yakalanır:

  • Günlük çerçevesi için yapılandırılmış düzeyi karşılar.
  • Ayrıca Application Insights için yapılandırılmış düzeyi de karşılar.

Örneğin, günlük çerçeveniz paketinden günlüğe kaydedilecek WARN şekilde yapılandırıldıysa (ve bunu daha önce açıklandığı gibi yapılandırdıysanız) ve Application Insights'ı yakalamak INFO için yapılandırıldıysa (ve açıklandığı şekilde yapılandırdıysanız), Application Insights paketinden com.exampleyalnızca yakalar WARN (ve daha ciddi).com.example

Application Insights için yapılandırılan varsayılan düzey: INFO. Bu düzeyi değiştirmek istiyorsanız:

{
  "instrumentation": {
    "logging": {
      "level": "WARN"
    }
  }
}

Ortam değişkenini APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVELkullanarak da düzeyi ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilen düzeyden önceliklidir.

Dosyada applicationinsights.json belirtmek için bu geçerli level değerleri kullanabilirsiniz. Tabloda, bunların farklı günlük çerçevelerindeki günlük düzeylerine nasıl karşılık gelenleri gösterilmektedir.

Level Log4j Geri Dönme JBoss TEMMUZ
KAPALI KAPALI KAPALI KAPALI KAPALI
ÖLÜMCÜL ÖLÜMCÜL HATA ÖLÜMCÜL ŞİDDETLİ
HATA (veya CIDDI) HATA HATA HATA ŞİDDETLİ
UYAR (veya UYARI) UYARMAK UYARMAK UYARMAK UYARI
INFO INFO INFO INFO INFO
CONFIG HATA AYIKLAMA HATA AYIKLAMA HATA AYIKLAMA CONFIG
HATA AYıKLAMA (veya İNCE) HATA AYIKLAMA HATA AYIKLAMA HATA AYIKLAMA İYİ
INCE HATA AYIKLAMA HATA AYIKLAMA HATA AYIKLAMA INCE
TRACE (veya FINEST) TRACE TRACE TRACE EN İYİ
TÜMÜ TÜMÜ TÜMÜ TÜMÜ TÜMÜ

Not

Günlükçüye bir özel durum nesnesi geçirilirse, günlük iletisi (ve özel durum nesnesi ayrıntıları) Azure portalında tablo yerine traces tablonun altında exceptions gösterilir. Hem hem de traces exceptions tablolarında günlük iletilerini görmek istiyorsanız, bunlar arasında birleşim yapmak için bir Günlükler (Kusto) sorgusu yazabilirsiniz. Örneğin:

union traces, (exceptions | extend message = outerMessage)
| project timestamp, message, itemType

Günlük işaretçileri (önizleme)

3.4.2'den başlayarak Logback ve Log4j 2 için günlük işaretçilerini yakalayabilirsiniz:

{
  "preview": {
    "captureLogbackMarker":  true,
    "captureLog4jMarker":  true
  }
}

Logback için diğer günlük öznitelikleri (önizleme)

3.4.3'ten başlayarak, Logback için , ClassNameMethodName, ve LineNumber'yi yakalayabilirsinizFileName:

{
  "preview": {
    "captureLogbackCodeAttributes": true
  }
}

Uyarı

Kod özniteliklerinin yakalanması bir performans yüküne neden olabilir.

Özel boyut olarak günlüğe kaydetme düzeyi

Sürüm 3.3.0'dan başlayarak, LoggingLevel veriler alanda zaten yakalandığından İzlemeler özel boyutunun bir parçası olarak varsayılan olarak yakalanmaz SeverityLevel .

Gerekirse, önceki davranışı geçici olarak yeniden etkinleştirebilirsiniz:

{
  "preview": {
    "captureLoggingLevelAsCustomDimension": true
  }
}

Otomatik olarak alınan Mikrometre ölçümleri (Spring Boot Aktüatör ölçümleri dahil)

Uygulamanız Micrometer kullanıyorsa, Micrometer genel kayıt defterine gönderilen ölçümler otomatik olarak bir araya eklenir.

Ayrıca, uygulamanız Spring Boot Aktüatörünü kullanıyorsa, Spring Boot Aktüatör tarafından yapılandırılan ölçümler de otomatik olarak alınır.

Mikrometre kullanarak özel ölçümler göndermek için:

  1. Aşağıdaki örnekte gösterildiği gibi uygulamanıza Mikrometre ekleyin.

    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-core</artifactId>
      <version>1.6.1</version>
    </dependency>
    
  2. Aşağıdaki örnekte gösterildiği gibi bir ölçüm oluşturmak için Micrometer genel kayıt defterini kullanın.

    static final Counter counter = Metrics.counter("test.counter");
    
  3. Aşağıdaki komutu kullanarak ölçümleri kaydetmek için sayacı kullanın.

    counter.increment();
    
  4. Ölçümler customMetrics tablosuna alınır ve etiketler sütunda customDimensions yakalanır. Ölçümleri ölçüm ad alanının altındaki ölçüm gezgininde Log-based metrics de görüntüleyebilirsiniz.

    Not

    Application Insights Java, Mikrometre ölçüm adındaki alfasayısal olmayan tüm karakterleri (tireler hariç) alt çizgilerle değiştirir. Sonuç olarak, önceki test.counter ölçüm olarak test_countergösterilir.

Mikrometre ölçümlerinin ve Spring Boot Aktüatör ölçümlerinin otomatik toplamasını devre dışı bırakmak için:

Not

Özel ölçümler ayrı olarak faturalandırılır ve ek maliyetler oluşturabilir. Fiyatlandırma bilgilerini denetlediğinden emin olun. Mikrometre ve Spring Boot Aktüatör ölçümlerini devre dışı bırakmak için yapılandırma dosyanıza aşağıdaki yapılandırmayı ekleyin.

{
  "instrumentation": {
    "micrometer": {
      "enabled": false
    }
  }
}

Java Veritabanı Bağlantısı sorgu maskeleme

Java Veritabanı Bağlantısı (JDBC) sorgularındaki değişmez değerler, hassas verilerin yanlışlıkla yakalanmasını önlemek için varsayılan olarak maskelenir.

3.4.0'dan başlayarak bu davranış devre dışı bırakılabilir. Örneğin:

{
  "instrumentation": {
    "jdbc": {
      "masking": {
        "enabled": false
      }
    }
  }
}

Mongo sorgu maskeleme

Mongo sorgularındaki değişmez değerler, hassas verilerin yanlışlıkla yakalanmasını önlemek için varsayılan olarak maskelenir.

3.4.0'dan başlayarak bu davranış devre dışı bırakılabilir. Örneğin:

{
  "instrumentation": {
    "mongo": {
      "masking": {
        "enabled": false
      }
    }
  }
}

HTTP üst bilgileri

Sürüm 3.3.0'dan başlayarak, sunucu (istek) telemetrinizde istek ve yanıt üst bilgilerini yakalayabilirsiniz:

{
  "preview": {
    "captureHttpServerHeaders": {
      "requestHeaders": [
        "My-Header-A"
      ],
      "responseHeaders": [
        "My-Header-B"
      ]
    }
  }
}

Üst bilgi adları büyük/küçük harfe duyarlı değildir.

Yukarıdaki örnekler ve http.response.header.my_header_bözellik adları http.request.header.my_header_a altında yakalanır.

Benzer şekilde, istemcinizin (bağımlılık) telemetrisinde istek ve yanıt üst bilgilerini yakalayabilirsiniz:

{
  "preview": {
    "captureHttpClientHeaders": {
      "requestHeaders": [
        "My-Header-C"
      ],
      "responseHeaders": [
        "My-Header-D"
      ]
    }
  }
}

Üst bilgi adları da büyük/küçük harfe duyarlı değildir. Yukarıdaki örnekler ve http.response.header.my_header_dözellik adları http.request.header.my_header_c altında yakalanır.

HTTP sunucusu 4xx yanıt kodları

Varsayılan olarak, 4xx yanıt kodlarıyla sonuçlan http sunucusu istekleri hata olarak yakalanır.

Sürüm 3.3.0'dan başlayarak, bunları başarılı olarak yakalamak için bu davranışı değiştirebilirsiniz:

{
  "preview": {
    "captureHttpServer4xxAsError": false
  }
}

Belirli otomatik toplanan telemetriyi gizleme

Sürüm 3.0.3'ten başlayarak, belirli otomatik toplanan telemetri şu yapılandırma seçenekleri kullanılarak gizlenebilir:

{
  "instrumentation": {
    "azureSdk": {
      "enabled": false
    },
    "cassandra": {
      "enabled": false
    },
    "jdbc": {
      "enabled": false
    },
    "jms": {
      "enabled": false
    },
    "kafka": {
      "enabled": false
    },
    "logging": {
      "enabled": false
    },
    "micrometer": {
      "enabled": false
    },
    "mongo": {
      "enabled": false
    },
    "quartz": {
      "enabled": false
    },
    "rabbitmq": {
      "enabled": false
    },
    "redis": {
      "enabled": false
    },
    "springScheduling": {
      "enabled": false
    }
  }
}

Ayrıca, bu ortam değişkenlerini olarak ayarlayarak bu izlemeleri falsegizleyebilirsiniz:

  • APPLICATIONINSIGHTS_INSTRUMENTATION_AZURE_SDK_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_CASSANDRA_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_JDBC_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_JMS_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_KAFKA_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_MICROMETER_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_MONGO_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_RABBITMQ_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_REDIS_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_SPRING_SCHEDULING_ENABLED

Bu değişkenler daha sonra JSON yapılandırmasında belirtilen etkin değişkenlere göre önceliklidir.

Not

Örneğin, tüm redis çağrılarını değil bazı redis çağrılarını engellemek için daha ayrıntılı bir denetim arıyorsanız bkz . Örnekleme geçersiz kılmaları.

İzlemeleri önizleme

Sürüm 3.2.0'dan başlayarak aşağıdaki önizleme izlemelerini etkinleştirebilirsiniz:

{
  "preview": {
    "instrumentation": {
      "akka": {
        "enabled": true
      },
      "apacheCamel": {
        "enabled": true
      },
      "grizzly": {
        "enabled": true
      },
      "ktor": {
        "enabled": true
      },
      "play": {
        "enabled": true
      },
      "r2dbc": {
        "enabled": true
      },
      "springIntegration": {
        "enabled": true
      },
      "vertx": {
        "enabled": true
      }
    }
  }
}

Not

Akka izleme sürümü 3.2.2'den itibaren kullanılabilir. Vertx HTTP Kitaplığı izlemesi sürüm 3.3.0'dan itibaren kullanılabilir.

Ölçüm aralığı

Varsayılan olarak ölçümler 60 saniyede bir yakalanır.

Sürüm 3.0.3'ten başlayarak bu aralığı değiştirebilirsiniz:

{
  "metricIntervalSeconds": 300
}

3.4.9 GA'dan başlayarak, ortam değişkenini metricIntervalSeconds APPLICATIONINSIGHTS_METRIC_INTERVAL_SECONDSkullanarak da ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilenden önceliklidir metricIntervalSeconds .

Bu ayar aşağıdaki ölçümler için geçerlidir:

Sinyal

Varsayılan olarak, Application Insights Java 3.x her 15 dakikada bir sinyal ölçümü gönderir. Uyarıları tetikleme amacıyla sinyal ölçümünü kullanıyorsanız bu sinyalin sıklığını artırabilirsiniz:

{
  "heartbeat": {
    "intervalSeconds": 60
  }
}

Not

Sinyal verileri Application Insights kullanımını izlemek için de kullanıldığından aralığı 15 dakikadan uzun süreye çıkaramazsınız.

Kimlik Doğrulaması

Not

Kimlik doğrulama özelliği, sürüm 3.4.17'den bu yana GA'dır.

Microsoft Entra kimlik doğrulaması için gerekli belirteç kimlik bilgilerini oluşturmak üzere aracıyı yapılandırmak için kimlik doğrulamasını kullanabilirsiniz. Daha fazla bilgi için Kimlik doğrulaması belgelerine bakın.

HTTP proxy'si

Uygulamanız bir güvenlik duvarının arkasındaysa ve doğrudan Application Insights'a bağlanamıyorsa Application Insights tarafından kullanılan IP adreslerine bakın.

Bu sorunu geçici olarak çözmek için Application Insights Java 3.x'i HTTP ara sunucusu kullanacak şekilde yapılandırabilirsiniz.

{
  "proxy": {
    "host": "myproxy",
    "port": 8080
  }
}

Http proxy'sini, biçimini https://<host>:<port>alan ortam değişkenini APPLICATIONINSIGHTS_PROXYkullanarak da ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilen ara sunucuya göre önceliklidir.

Ara sunucunuz için ortam değişkeniyle APPLICATIONINSIGHTS_PROXY bir kullanıcı ve parola sağlayabilirsiniz: https://<user>:<password>@<host>:<port>.

Application Insights Java 3.x ayrıca, ayarlanmışsa http.nonProxyHostsgenel https.proxyHost ve sistem özelliklerine ve https.proxyPort gerekirse , değerlerine de dikkat eder.

Alma hatalarından kurtarma

Application Insights hizmetine telemetri gönderirken başarısız olur, Application Insights Java 3.x telemetriyi diske depolar ve diskten yeniden denemeye devam eder.

Disk kalıcılığı için varsayılan sınır 50 Mb'tır. Telemetri biriminiz yüksekse veya daha uzun ağ veya alma hizmeti kesintilerinden kurtarabilmeniz gerekiyorsa, sürüm 3.3.0'dan başlayarak bu sınırı artırabilirsiniz:

{
  "preview": {
    "diskPersistenceMaxSizeMb": 50
  }
}

Kendi kendine tanılama

"Kendi kendine tanılama", Application Insights Java 3.x'ten iç günlüğe kaydetmeyi ifade eder. Bu işlevsellik, Application Insights'ın kendisiyle ilgili sorunları tespit etme ve tanılama konusunda yararlı olabilir.

Varsayılan olarak, Application Insights Java 3.x bu yapılandırmaya karşılık gelen dosya applicationinsights.log ve konsol düzeyinde INFO günlüğe kaydeder:

{
  "selfDiagnostics": {
    "destination": "file+console",
    "level": "INFO",
    "file": {
      "path": "applicationinsights.log",
      "maxSizeMb": 5,
      "maxHistory": 1
    }
  }
}

Yukarıdaki yapılandırma örneğinde:

  • level, , ERROR, WARN, INFO, DEBUGveya TRACEtürlerinden biri OFFolabilir.
  • path mutlak veya göreli bir yol olabilir. Göreli yollar, bulunduğu applicationinsights-agent-3.6.2.jar dizine göre çözümlenir.

Sürüm 3.0.2'den başlayarak, ortam değişkenini APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVELkullanarak kendi kendine tanılamayı level da ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilen kendi kendine tanılama düzeyinden önceliklidir.

Sürüm 3.0.3'ten başlayarak, ortam değişkenini APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_FILE_PATHkullanarak kendi kendine tanılama dosyası konumunu da ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilen kendi kendine tanılama dosya yolundan önceliklidir.

Telemetri bağıntısı

Telemetri bağıntısı varsayılan olarak etkindir, ancak yapılandırmada devre dışı bırakabilirsiniz.

{
  "preview": {
    "disablePropagation": true
  }
}

Bir örnek

Bu örnekte bir yapılandırma dosyasının birden çok bileşenle nasıl göründüğü gösterilir. Gereksinimlerinize göre belirli seçenekleri yapılandırın.

{
  "connectionString": "...",
  "role": {
    "name": "my cloud role name"
  },
  "sampling": {
    "percentage": 100
  },
  "jmxMetrics": [
  ],
  "customDimensions": {
  },
  "instrumentation": {
    "logging": {
      "level": "INFO"
    },
    "micrometer": {
      "enabled": true
    }
  },
  "proxy": {
  },
  "preview": {
    "processors": [
    ]
  },
  "selfDiagnostics": {
    "destination": "file+console",
    "level": "INFO",
    "file": {
      "path": "applicationinsights.log",
      "maxSizeMb": 5,
      "maxHistory": 1
    }
  }
}