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.json
olmasını ve ile aynı dizinde applicationinsights-agent-3.6.2.jar
yer almayı bekler.
Şu iki seçenekten birini kullanarak kendi yapılandırma dosyası yolunuzu belirtebilirsiniz:
APPLICATIONINSIGHTS_CONFIGURATION_FILE
ortam değişkeniapplicationinsights.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_CONTENT
aracılığıyla belirtebilirsiniz.
Connection string
Bağlantı dizesi gereklidir. bağlantı dizesi Application Insights kaynağınızda bulabilirsiniz.
{
"connectionString": "..."
}
ortam değişkenini APPLICATIONINSIGHTS_CONNECTION_STRING
kullanarak da bağlantı dizesi ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilen bağlantı dizesi önceliklidir.
Veya Java sistem özelliğini applicationinsights.connection.string
kullanarak 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_NAME
kullanarak 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.name
kullanarak 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_INSTANCE
kullanarak 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.instance
kullanarak 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_SECOND
kullanarak ö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_PERCENTAGE
kullanarak ö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:
name
, bu JMX ölçümüne atanan ölçüm adıdır (herhangi bir şey olabilir).objectName
, toplamak istediğiniz nesneninJMX MBean
Nesne Adıdır. Joker karakter yıldız işareti (*) desteklenir.attribute
, içinde toplamak istediğiniz öznitelik adıdırJMX MBean
.
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
/myapp1
iç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
/myapp1
iç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.ConnectionString
statik 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.example
yalnı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_LEVEL
kullanarak 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 , ClassName
MethodName
, 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:
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 sütunda
customDimensions
yakalanır. Ölçümleri ölçüm ad alanının altındaki ölçüm gezginindeLog-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 olaraktest_counter
gö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 false
gizleyebilirsiniz:
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_SECONDS
kullanarak da ayarlayabilirsiniz. Daha sonra JSON yapılandırmasında belirtilenden önceliklidir metricIntervalSeconds
.
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
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_PROXY
kullanarak 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.nonProxyHosts
genel 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
,DEBUG
veyaTRACE
türlerinden biriOFF
olabilir.path
mutlak veya göreli bir yol olabilir. Göreli yollar, bulunduğuapplicationinsights-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_LEVEL
kullanarak 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_PATH
kullanarak 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
}
}
}