Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede Java için Azure İzleyici Application Insights'ı yapılandırma adımları gösterilmektedir.
Daha fazla bilgi için bkz. OpenTelemetry kullanmaya başlama.
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.
JSON yapılandırma kurulumu
Varsayılan yapılandırma
Varsayılan olarak, Application Insights Java 3 yapılandırma dosyasının applicationinsights.json olarak adlandırılıp applicationinsights-agent-3.7.5.jar ile aynı dizinde yer almayı bekler.
Alternatif yapılandırmalar
Özel yapılandırma dosyası
ile özel bir yapılandırma dosyası belirtebilirsiniz
- APPLICATIONINSIGHTS_CONFIGURATION_FILE ortam değişkeni veya
- applicationinsights.configuration.file sistem özelliği
Göreli bir yol sağlarsanız, applicationinsights-agent-3.7.5.jar bulunduğu dizine göre çözümlenir.
JSON yapılandırması
Bir yapılandırma dosyası kullanmak yerine JSON yapılandırmasının tamamını şu şekilde ayarlayabilirsiniz:
- APPLICATIONINSIGHTS_CONFIGURATION_CONTENT ortam değişkeni veya
- applicationinsights.configuration.content sistem özelliği
Bağlantı dizesi
Bağlantı dizesi gereklidir. Uygulama İçgörüleri kaynağınızda bir bağlantı dizesi bulabilirsiniz.
{
"connectionString": "..."
}
ortam değişkenini APPLICATIONINSIGHTS_CONNECTION_STRINGkullanarak da bağlantı dizesi ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilen bağlantı dizesi öncelik kazanır.
Veya Java sistem özelliğini applicationinsights.connection.stringkullanarak bağlantı dizesi ayarlayabilirsiniz. Öncelik ayrıca JSON yapılandırmasında belirtilen bağlantı dizesine karşı tercih edilir.
bağlantı dizesi yüklenecek dosyayı belirterek de bağlantı dizesi ayarlayabilirsiniz.
Eğer göreli bir yol belirtirseniz, applicationinsights-agent-3.7.5.jar'ün bulunduğu dizine göre çözülür.
{
"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ı dizelerine 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 daha öncelikli hale gelir.
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. Sonrasında, JSON yapılandırmasında belirtilen bulut rolü örneğinin yerine geçer ve öncelikli olur.
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 bir isteğe dayanır, bu da demektir ki bir istek yakalanırsa (örneklenirse), bağımlılıkları, günlükleri ve istisnaları 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 ayarları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, isteklerdeki tüm bağımlılıklar ve günlüklerle birlikte saniyede en fazla beş isteği yakalayacak şekilde yapılandırılmış hız kısıtlamalı ö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ığına şahit olmamanız 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, 0.5'in değeri her 2 saniyede bir en fazla bir istek yakalamak anlamına gelir.
Ortam değişkenini APPLICATIONINSIGHTS_SAMPLING_REQUESTS_PER_SECONDkullanarak örnekleme yüzdesini de ayarlayabilirsiniz. JSON yapılandırmasında tanımlanan hız sınırına göre öncelik kazanır.
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. JSON yapılandırmasında belirtilen örnekleme yüzdesinin önüne geçer.
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 ayarlarını geçersiz kılma dökümanlarına 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:
-
name, bu JMX ölçümüne atanan ölçüm adıdır (herhangi bir şey olabilir). -
objectName, toplamak istediğiniz 'ninJMX MBean. Joker karakter yıldız işareti (*) desteklenir. -
JMX MBeaniçinde toplamak istediğiniz öznitelik adıattribute'dır.
Sayısal ve Boole JMX ölçüm değerleri desteklenir. Boolean JMX ölçümleri false için 0 ve true için 1 ile eşlenir.
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, service.version adlı özel bir boyut eklerseniz, değer özel bir boyut olarak değil, doğrudan application_Version sütununda Application Insights Günlükleri tablosunda 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ıklar ve günlük telemetrisi aracılığıyla devralmayı garanti eder. 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 ayarları geçersiz kılmaları (önizleme sürümü)
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ı dizesini 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ılma (ö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 için farklı bir bulut rolü adı ayarlayın
/myapp2/.
{
"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>3.7.5</version>
</dependency>
sınıfında configure(String)statik com.microsoft.applicationinsights.connectionstring.ConnectionString yöntemini kullanın.
Not
Bağlantı dizesini yapılandırmadan önce yakalanan tüm telemetri verileri göz ardı edilir, bu nedenle, en iyisi uygulamanızın başlatılması sırasında bunu mümkün olan en erken şekilde yapılandırmaktır.
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>
Bu betik, müşterilerin web kullanıcı verilerini izlemelerine yardımcı olur ve toplanan sunucu tarafındaki telemetriyi 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 kontrol etmek 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, Örnekleme Geçersiz Kılma Ayarları için bkz
Özelleştirilmiş enstrümantasyon (önizleme)
Sürüm 3.3.1'den başlayarak, uygulamanızdaki bir yönteme ait zaman aralıklarını 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, alım örnekleme yüzdesi uygulanacaktı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 toplanan günlük kaydı
Log4j, Logback, JBoss Logging ve java.util.logging otomatik olarak enstrümante edilir. Bu günlük çerçeveleri aracılığıyla gerçekleştirilen günlükler otomatik olarak toplanır.
Günlüğe kaydetme yalnızca şu durumda kaydedilir:
- Loglama ç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, paket com.example'den WARN günlüğe kaydedilecek şekilde yapılandırıldıysa (ve bunu daha önce açıklandığı gibi yaptıysanız) ve Application Insights, INFO yakalamak üzere yapılandırıldıysa (ve açıklandığı şekilde yapılandırdıysanız), Application Insights, yalnızca paket com.example'den WARN'ü (ve daha ciddi olanları) yakalar.
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. Ardından JSON yapılandırmasında belirtilen seviyenin önüne geçer.
Dosyada level belirtmek için bu geçerli applicationinsights.json değerleri kullanabilirsiniz. Farklı kayıt çerçevelerindeki kayıt seviyelerine nasıl karşılık geldiklerini tablo göstermektedir.
| Seviye | Log4j | Geri Dönme | JBoss | TEMMUZ |
|---|---|---|---|---|
| KAPALI | KAPALI | KAPALI | KAPALI | KAPALI |
| ÖLÜMCÜL | ÖLÜMCÜL | HATA | ÖLÜMCÜL | AĞIR |
| HATA (veya AĞIR) | HATA | HATA | HATA | AĞIR |
| UYARI (veya İKAZ) | UYARMAK | UYARMAK | UYARMAK | UYARI |
| BİLGİ | BİLGİ | BİLGİ | BİLGİ | BİLGİ |
| Yapılandırma | HATA AYIKLAMA | HATA AYIKLAMA | HATA AYIKLAMA | Yapılandırma |
| HATA AYıKLAMA (veya İNCE) | HATA AYIKLAMA | HATA AYIKLAMA | HATA GİDERME | İYİ |
| DAHA HASSAS | HATA AYIKLAMA | HATA AYIKLAMA | HATA AYIKLAMA | DAHA İNCE |
| TRACE (veya FINEST) | İzlemek | İzlemek | İzlemek | EN İYİ |
| TÜMÜ | TÜMÜ | TÜMÜ | Hepsi | HEPSİ |
Not
tr-TR: Eğer bir özel durum nesnesi logger'a geçirilirse, günlük iletisi (ve özel durum nesnesi ayrıntıları) Azure portalında exceptions tablosunun altında, traces tablosu yerine gösterilir. Hem traces hem de exceptions tablolarındaki günlük iletilerini görmek istiyorsanız, bunlar arasında union yapmak için bir Günlükler (Kusto) sorgusu yazabilirsiniz. Örneğin:
union traces, (exceptions | extend message = outerMessage)
| project timestamp, message, itemType
Kayıt 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 log öznitelikleri (önizleme)
Sürüm 3.4.3'ten itibaren, Logback için FileName, ClassName, MethodName ve LineNumber'yi yakalayabilirsiniz.
{
"preview": {
"captureLogbackCodeAttributes": true
}
}
Uyarı
Kod özniteliklerinin yakalanması bir performans yüküne neden olabilir.
Günlük kaydetme düzeyini özel boyut olarak ayarlama
Sürüm 3.3.0'dan itibaren, SeverityLevel alanında veriler zaten yakalandığı için, LoggingLevel artık İzlemeler özel boyutunun bir parçası olarak varsayılan şekilde yakalanmaz.
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:
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>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");Aşağıdaki komutu kullanarak ölçümleri kaydetmek için sayacı kullanın.
counter.increment();Ölçümler customMetrics tablosuna alınır ve etiketler
customDimensionssütununda yakalanır. Ölçümleri ölçüm ad alanının altındakiLog-based metricsde görüntüleyebilirsiniz.Not
Application Insights Java, Mikrometre ölçüm adındaki alfa nümerik olmayan tüm karakterleri (tireler hariç) alt çizgilerle değiştirir. Sonuç olarak, önceki
test.counterölçüm olaraktest_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 sabit 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
}
}
}
}
MongoDB 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.
Önceki örnekler, http.request.header.my_header_a ve http.response.header.my_header_b özellik adları 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"
]
}
}
}
Başlık adları da büyük/küçük harfe duyarlı değildir. Önceki örnekler http.request.header.my_header_c ve http.response.header.my_header_d özellik adları 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
}
}
}
Bu ortam değişkenlerini false olarak ayarlandığında, bu izlemeleri devre dışı bırakabilirsiniz.
APPLICATIONINSIGHTS_INSTRUMENTATION_AZURE_SDK_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_CASSANDRA_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_JDBC_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_JMS_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_KAFKA_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_MICROMETER_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_MONGO_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_RABBITMQ_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_REDIS_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_SPRING_SCHEDULING_ENABLED
Bu değişkenler daha sonra JSON yapılandırmasında belirtilen etkin değişkenlere göre önceliklidir.
Not
Daha ayrıntılı bir denetim arıyorsanız, örneğin, tüm redis çağrılarını değil bazı redis çağrılarını engellemek için, Örnekleme ayarları bölümüne bakın.
Enstrümantasyonları önizleme
Sürüm 3.2.0'dan başlayarak aşağıdaki önizleme araçlarını 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 enstrümantasyonu 3.2.2 sürümünden 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 her 60 saniyede bir kaydedilir.
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 metricIntervalSecondsAPPLICATIONINSIGHTS_METRIC_INTERVAL_SECONDSkullanarak da ayarlayabilirsiniz. O zaman, JSON yapılandırmasında belirtilen metricIntervalSeconds'ye göre önceliklidir.
Bu ayar aşağıdaki ölçümler için geçerlidir:
- Varsayılan performans sayaçları: Örneğin, CPU ve bellek
- Varsayılan özel ölçümler: Örneğin, çöp toplama zamanlaması
- Yapılandırılan JMX ölçümleri: JMX ölçümü bölümüne bakın
- Mikrometre ölçümleri: Otomatik olarak alınan Mikrometre ölçümleri bölümüne bakın
Kalp Atışı
Varsayılan olarak, Application Insights Java 3.x her 15 dakikada bir heartbeat metriği gönderir. Uyarıları tetiklemek amacıyla kalp atış hızı ölçümünü kullanıyorsanız, bu ölçümün sıklığını artırabilirsiniz.
{
"heartbeat": {
"intervalSeconds": 60
}
}
Not
Kalp atışı verileri Application Insights kullanımını izlemek için de kullanıldığından, aralığı 15 dakikadan daha 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 Application Insights'a doğrudan bağlanamıyorsa Azure İzleyici uç nokta erişimi ve güvenlik duvarı yapılandırması konusuna 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 APPLICATIONINSIGHTS_PROXYalan ortam değişkenini https://<host>:<port>kullanarak da ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilen proxy'nin üzerine geçer.
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 küresel https.proxyHost ve https.proxyPort sistem özelliklerine ve gerekirse http.nonProxyHosts'ye de özen gösterir.
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
"Otomatik tanılama", Application Insights Java 3.x'ten içerik günlüğünü 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 hem dosya INFO hem de konsola applicationinsights.log kayıt yapar, şu yapılandırmaya karşılık gelen:
{
"selfDiagnostics": {
"destination": "file+console",
"level": "INFO",
"file": {
"path": "applicationinsights.log",
"maxSizeMb": 5,
"maxHistory": 1
}
}
}
Yukarıdaki yapılandırma örneğinde:
-
level, ,OFF,ERROR,WARN,INFOveyaDEBUGtürlerinden biriTRACEolabilir. -
pathmutlak veya göreli bir yol olabilir. Göreli yollar, bulunduğuapplicationinsights-agent-3.7.5.jardizine göre çözümlenir.
Sürüm 3.0.2'den başlayarak, ortam değişkenini levelkullanarak kendi kendine tanılamayı APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL da ayarlayabilirsiniz. Bu durumda JSON yapılandırmasında belirtilen kendi kendine tanılama düzeyinin üzerinde daha öncelikli hale gelir.
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. JSON yapılandırmasında belirtilen kendi kendine tanılama dosya yolunun önüne geçer.
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
}
}
}