Custom Configurations sekmesinde araç anahtarları ve örnekleme ilkeleri gibi yaygın ayarları düzenleyebilirsiniz.
Bu ayarları API kullanarak değiştirmek için bkz. SaveTraceAppConfig.
Ön koşullar
ARMS Application Monitoring, yeni faturalama modelini etkinleştiren kullanıcılar için yeni bir izleme ayrıntıları sayfası sunar. Yeni faturalama modeli hakkında bilgi için bkz. Product Billing (New).
Yeni faturalama modelini etkinleştirmediyseniz ancak yeni izleme ayrıntıları sayfasına erişmek istiyorsanız Application List sayfasında Switch to New Version seçeneğini tıklayın.
Uygulamanız için bir prob yüklediniz. Talimatlar için bkz. Overview of Application Monitoring Integration.
Yordam
ARMS konsolu üzerinde oturum açın. Sol gezinme bölmesinde yolunu izleyin.
-
Application List sayfasında üst gezinme çubuğundan bölgeyi seçin ve ardından uygulamanın adını tıklayın.
NotLanguage sütunundaki simgeler şu anlamlara gelir:
: Application Monitoring hizmetine bağlı bir Java uygulaması.
: Application Monitoring hizmetine bağlı bir Golang uygulaması.
: Application Monitoring hizmetine bağlı bir Python uygulaması.-: Managed Service for OpenTelemetry hizmetine bağlı bir uygulama.
Üst gezinme çubuğunda yolunu izleyin.
Özel yapılandırma parametrelerini belirtin ve Save düğmesini tıklayın.
Örnekleme ayarları
Sampling Settings bölümünde izler için örnekleme ilkelerini, örnekleme oranını ve her zaman örneklenen arabirimlerin özelliklerini yapılandırabilirsiniz. Düşük trafikli örnekleme özelliğini etkinleştirebilir veya devre dışı bırakabilirsiniz. Daha fazla bilgi için bkz. Select a trace sampling mode (agent V3.2.8 or later).
Araç anahtarı ayarları
Agent Switch Settings bölümünde uygulama izlemeyi etkinleştirebilir veya devre dışı bırakabilir ve tek tek araç anahtarlarını açıp kapatabilirsiniz.
Uygulama izlemeyi etkinleştirme veya devre dışı bırakma değişiklikleri, uygulamayı yeniden başlatmanıza gerek kalmadan hemen yürürlüğe girer. Uygulama izlemeyi duraklatırsanız sistem uygulamanızı artık izleyemez. Bu işlemi dikkatli gerçekleştirin. Araç anahtarlarında yapılan değişikliklerin etkili olması için uygulamayı yeniden başlatmanız gerekir.
Bu bölümde mevcut tüm araç anahtarları ızgarada listelenir. Belirli çerçeveler ve özellikler için izlemede ihtiyaca göre değişiklik yapabilirsiniz.
İş parçacığı profil oluşturma ayarları
Thread profiling settings bölümünde iş parçacığı profil oluşturmanın ana anahtarını açıp kapatabilirsiniz.
Uygulama günlüğü ilişkilendirme yapılandırması
Application log association configuration bölümünde TraceId ve SpanId değerlerinin otomatik olarak eklenmesi için günlük kaynağı bilgilerini yapılandırabilirsiniz. Daha fazla bilgi için bkz. Log analysis.
-
Automatic TraceId and SpanId injection: Etkinleştirildiğinde araç, günlük yapılandırmanızı değiştirmeden TraceId ve SpanId değerlerini günlüklerinize otomatik olarak ekler.
Etkisi:
# log4j 2024.04.12 17:14:18 WARN log4j-11 c.e.d2.TraceIdLogWorker {traceId=8b51c17d03cfd6db4a68d8e8da04fc85, spanId=ea4bfd29b6d36039} [TraceId] This is a simple trace log 17:14:18 WARN [log4j-ThreadPool-11] c.e.d2.TraceIdLogWorker {traceId=8b51c17d03cfd6db4a68d8e8da04fc85, spanId=ea4bfd29b6d36039} [TraceId] This is a log with exception java.lang.RuntimeException: null at com.example.demo2.TraceIdLogWorker.doWork(TraceIdLogWorker.java:49) at org.apache.arms.java.util.concurrent.ExecutorServiceInterceptor.call(ExecutorServiceInterceptor.java:71) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) # log4j2 17:14 [Thread.ResolverScan-1] c.e.d2.TraceIdLogWorker {traceId=8b51c17d03cfd6db4a68d8e8da04fc85, spanId=ea4bfd29b6d36039} This is a log with exception java.lang.RuntimeException: null at com.example.demo2.TraceIdLogWorker.doWork(TraceIdLogWorker.java:49) at org.apache.arms.arthas.resolver.DefaultArtifactResolverChain$DefaultTask.execute(DefaultArtifactResolverChain.java:115) # logback 17:14:18 WARN [logback-ThreadPool-1] c.e.d2.TraceIdLogWorker {traceId=8b51c17d03cfd6db4a68d8e8da04fc85, spanId=ea4bfd29b6d36039} [TraceId] This is a simple trace log 17:14:18 WARN [logback-ThreadPool-1] c.e.d2.TraceIdLogWorker {traceId=8b51c17d03cfd6db4a68d8e8da04fc85, spanId=ea4bfd29b6d36039} [TraceId] This is a log with exception java.lang.RuntimeException: null at com.example.demo2.TraceIdLogWorker.doWork(TraceIdLogWorker.java:49) Add TraceId to log MDC: Varsayılan olarak araç V4.x ve sonraki sürümler
org.slf4j.MDC.get("EagleEye-TraceID")kullanarak TraceId elde etmeyi desteklemez. Bu yöntemi kullanmak için bu anahtarı etkinleştirin.
URL yakınsama ayarları
URL Convergence Settings bölümünde URL yakınsamayı etkinleştirebilir veya devre dışı bırakabilir; yakınsama eşiğini ve kurallarını yapılandırabilirsiniz. URL yakınsama benzer URL dizilerini gruplar ve bunları tek bir giriş olarak gösterir. Örneğin /service/demo/ ile başlayan URL'leri gruplar. Yakınsama eşiği, yakınsamayı tetiklemek için gereken minimum URL sayısıdır. Örneğin eşik 100 ise kuralın normal ifadesiyle eşleşen bir URL grubu yalnızca sayı 100'e ulaştığında yakınsanır. Daha fazla bilgi için bkz. How ARMS convergence works.
Arthas izleme
Arthas Monitoring bölümünde Arthas tanılama özelliğini etkinleştirebilir veya devre dışı bırakabilir ve aktif olması gereken IP adreslerini belirtebilirsiniz. Daha fazla bilgi için bkz. Arthas diagnostics.
Sürekli profil oluşturma ayarları
Continuous profiling settings bölümünde ana anahtarı, CPU sıcak noktası, bellek sıcak noktası ve kod sıcak noktası özelliklerini açıp kapatabilirsiniz. Ayrıca profil oluşturmanın aktif olması gereken IP adreslerini veya CIDR bloklarını belirtebilirsiniz. Daha fazla bilgi için bkz. Continuous profiling for Java applications.
Veri maskeleme ayarları
Data Masking Settings bölümünde maskeleme kurallarını yapılandırabilirsiniz. Araç daha sonra toplama sırasında JVM sistem parametreleri, Kubernetes YAML dosyaları, yöntem giriş parametreleri ve Arthas ortam ile sistem değişkenleri gibi verileri maskeler. Maskeleme kurallarında öğeler virgülle ayrılır. Her öğe büyük/küçük harfe duyarlı olmayan bir normal ifadeyi temsil eder. Örneğin password ifadesi .password. normal ifadesine eşdeğerdir.
Araç verileri toplarken veri anahtarlarını bu ifadelerle filtreler. Bir anahtar bir kural ile eşleşirse araç bunu hassas olarak değerlendirir ve değerini maskeler. Örneğin kuralı licenseKey olarak ayarlarsanız -Darms.licenseKey anahtarına sahip bilgiler maskelenir.
IP maskelemeyi etkinleştirdiğinizde araç uç nokta adresleri gibi IP adreslerini içeren bilgileri uygulama izleme konsolundaki çeşitli sayfalarda otomatik olarak maskeler. Bu işlem izleme verilerinin görüntülenmesini etkilemez.
API çağrı yapılandırması
Interface call configuration bölümünde yavaş çağrı eşiği, istisna izin listeleri, HTTP durum kodu izin listesi ve geçersiz arabirim çağrısı filtreleme gibi ilkeleri yapılandırabilirsiniz.
Slow call threshold: Varsayılan değer 500 ms'dir. Yanıt süresi bu eşiği aşan bir arabirim çağrısı yavaş olarak işaretlenir.
-
HTTP status code whitelist:
Varsayılan olarak 400 veya üzeri HTTP durum kodları hata çağrıları olarak sınıflandırılır. Belirli durum kodlarını hata olarak sınıflandırmak istemiyorsanız bunları izin listesine ekleyebilirsiniz.
Bu ayar yalnızca HTTP frameworks currently supported by application monitoring tarafından desteklenen HTTP çerçevelerini etkiler.
Affected data: HTTP sunucuları ve istemcileri için hata sayısı ölçümleri (arms_http_requests_error_count, arms_http_client_requests_error_count ve arms_app_requests_error_count) ile span durumu.
Affected features: Overview, Provided Services ve Dependencies sekmelerindeki hata sayıları ile Trace Explorer sayfasındaki span durumu ve hata sayısı uyarıları.
Format: Tek bir durum kodu girin. Birden çok kod girmek için virgül (,) ile ayırın. Bulanık eşleştirme desteklenmez.
Example:
403,502Default: Boş
-
Invalid interface call filtering:
Belirli çağrıları Provided Services sekmesinde gizlemek istiyorsanız yok saymak istediğiniz arabirimlerin adlarını girebilirsiniz. Araç bu arabirimler için gözlemlenebilirlik verilerini raporlamaz ve bu arabirimler arabirim çağrı sayfasında görünmez.
NotV4.2.0'dan önceki Java araçları için bu özellik yalnızca Provided Services sekmesinde görünen arabirimler için geçerlidir.
Java araç V4.2.0 ve sonraki sürümler için bu özellik herhangi bir LocalRootSpan için geçerlidir.
Affected data: Eşleşen arabirimler için tüm ölçümler ve span'lar yok sayılır.
Affected features: Overview, Provided Services ve Dependencies sekmelerindeki eşleşen arabirimler için tüm ölçümler. Trace Explorer sayfasındaki eşleşen arabirimler için span sayısı, çağrı hacmi, hata sayısı ve yavaş çağrı uyarıları da etkilenir.
Format: Geçersiz bir arabirimin tam adını eşleştirmek için bir string veya AntPath ifadesi kullanın. Birden çok kural girmek için virgül (,) ile ayırın. Mevcut verilerle uyumluluğu sağlamak amacıyla varsayılan değer bir AntPath ifadesi olarak yazılmıştır. Bunu silmemeniz önerilir. Yeni yapılandırmaları mevcut kurallara ekleyin.
Example:
/api/test/*,/api/playground/createDefault:
/**/*.jpg,/**/*.png,/**/*.js,/**/*.jpeg,/**/*.pdf,/**/*.xlsx,/**/*.txt,/**/*.docs,/**/*.gif,/**/*.csv -
Record upstream interface name in interface call metrics ve Record upstream application name in interface call metrics:
Purpose: Arabirim ölçümlerinin çağrıyı yapan yukarı akış uygulamasını ve arabirimini kaydedip kaydetmeyeceğini kontrol eder. Bu durum öncelikle yukarı ve aşağı akış hizmetleri için verilerin mevcut olup olmadığını etkiler. Bir uygulamanın çok sayıda yukarı akış uygulaması varsa bu bilgilerin kaydedilmesi raporlanan ölçüm hacmini önemli ölçüde artırabilir ve daha yüksek maliyetlere yol açabilir.
Effect: Arabirim ölçümleri için yukarı akış uygulamalarının ve arabirimlerinin kaydını devre dışı bıraktığınızda ilgili veri sayısı sıfıra düşer.
-
Record original status code in interface call metrics:
Purpose: HTTP arabirimiyle ilgili ölçümlerde orijinal yanıt kodunu kaydeder.
Effect:
Bu özellik etkinleştirildikten sonra HTTP arabirimlerinin orijinal yanıt kodunu arabirim çağrı ayrıntılarında görüntüleyebilirsiniz. Bu sayede durum kodları için daha ayrıntılı istatistikler ve analizler yapılabilir.
Record HTTP method name for interface: Bu anahtarı etkinleştirdiğinizde interface call sayfasındaki genişletilmiş arabirim adı HTTP isteği yöntemini içerir. Örneğin ad
/api/v1/use/{userId}şeklindenGET /api/v1/use/{userId}şekline dönüşür.
Veritabanı çağrı yapılandırması
Database call configuration bölümünde yavaş SQL eşiğini, toplanan SQL deyimlerinin maksimum uzunluğunu yapılandırabilir; SQL deyimlerinde değişkene bağlı ve sabit değerlerin görüntülenip görüntülenmeyeceğini ve MySQL sorgu dönüş değerlerinin boyutunun kaydedilip kaydedilmeyeceğini belirtebilirsiniz.
-
Display bound variable values in SQL: PreparedStatement parametrelerine bağlı değişken değerlerini yakalar. Bu değişiklik uygulamayı yeniden başlatmadan etkili olur.
Araç PreparedStatement parametre değerlerini karşılık gelen veritabanı çağrı span'inin niteliklerinde kaydeder. Anahtar db.bindvalue'dir ve değer virgülle ayrılmış değişken değerleri listesidir. Bu değişiklik uygulamayı yeniden başlatmadan etkili olur.
Bu ayar ARMS tarafından şu anda desteklenen tüm JDBC-based frameworks tarafından desteklenir.
Desteklenen veritabanı değişken türleri: Boolean, Byte, Short, Int, Long, Float, Double, BigDecimal ve Date.
Bu anahtarı etkinleştirmek SQL deyimindeki değişken sayısıyla orantılı ek yük getirir. Bir değişken içeren official stress test scenarios senaryolarında bu anahtarı etkinleştirmek %0,5'ten az CPU yükü ve ihmal edilebilir bellek yükü ekler.
Aşağıdaki şekil bu anahtar etkinleştirildikten sonraki etkiyi gösterir:
Bu özellik etkinleştirildikten sonra bir veritabanı çağrı span'inin Span Details panelinde db.bindvalue niteliğini ve karşılık gelen değişken değerlerini görüntüleyebilirsiniz.
Display constant values in SQL: Araç yalnızca SQL deyimlerini keser ve ek işlem uygulamaz. Bu değişiklik uygulamayı yeniden başlatmadan etkili olur. SQL deyimleri yalnızca sabit değerlerde farklılık gösteriyorsa aşırı parçalanabilir ve
{ARMS_OTHERS}olarak yakınsanabilir. Bu seçeneği etkinleştirmemeniz önerilir.Record original JDBC connection string: Varsayılan olarak araç yalnızca sınırlı sayıda JDBC bağlantı dizesi biçimini ayrıştırabilir. Aracın doğru şekilde ayrıştıramadığı bağlantı dizeleri için uç noktayı UnknownEndpoint olarak kaydeder. Bu anahtarı etkinleştirirseniz araç orijinal JDBC bağlantı dizesini kaydeder. Örneğin daha önce tanınmayan ve UnknownEndpoint olarak kaydedilen bir jdbc:h2:file bağlantı dizesi bu anahtar etkinleştirildikten sonra doğru şekilde kaydedilir.
İz bağlamı yayma ayarları
Trace Context Propagation Protocol Settings bölümünde ihtiyaçlarınıza uygun trace context propagation protocol seçebilirsiniz.
ARMS aracı varsayılan olarak bir isteğin başlıklarında belirli protokol başlıklarının bulunup bulunmadığına göre bir iz bağlamı yayma protokolü seçer. Daha fazla bilgi için bkz. ARMS trace context propagation protocol selection policy.
Bu sayfada herhangi bir protokolü öncelikli protokol olarak seçebilirsiniz. Yapılandırmayı seçip kaydettikten sonra ARMS o protokol tarafından tanımlanan istek başlıklarını algılamaya öncelik verir. Örneğin aşağıdaki yapılandırmayla araç gelen çağrılar için Jaeger, EagleEye, W3C, SkyWalking ve Zipkin sırasıyla protokol bağlamlarını algılar.
Belirli bir protokolü zorunlu kılmayı da seçebilirsiniz. Örneğin aşağıdaki yapılandırmayla araç gelen çağrılar için yalnızca Jaeger protokolü tarafından tanımlanan istek başlıklarını algılar. Başlıklar bulunamazsa diğer protokolleri kontrol etmez bunun yerine yeni bir iz bağlamı oluşturur.
İz bağlamı çıkarma ve enjeksiyon stratejisi: Varsayılan davranış iz bağlamını yukarı akış hizmetlerinden çıkarmak ve aşağı akış isteklerine enjekte etmektir. Çıkarma ve enjeksiyon davranışını bu ayarla yapılandırabilirsiniz.
Purpose:
Öncelikli veya zorunlu bir iz bağlamı yayma protokolü seçebilirsiniz. Yaygın kullanım durumları şunlardır:
Bir istek birden çok biçimde iz bağlamları taşır ve varsayılan ayrıştırma sırası gereksinimlerinizi karşılamaz. Belirli bir protokole öncelik vermek istersiniz. Örneğin bir istek hem W3C hem de Zipkin iz bağlamları taşıyorsa araç varsayılan olarak önce W3C iz bağlamını ayrıştırır. Zipkin protokolünü öncelikli olarak ayrıştırmak için yayma protokolünü Zipkin olarak ayarlayabilirsiniz.
Bir istek bir iz protokolü başlığı taşır ancak bunu yeniden kullanmak istemez ve başka bir protokole dayalı yeni bir iz bağlamı oluşturmak istersiniz. Örneğin bir istek bir Zipkin iz bağlamı taşıyorsa varsayılan olarak Zipkin iz bağlamı ayrıştırılır. Yayma protokolünü W3C ve yayma modunu Enforced olarak ayarlayabilirsiniz. Bu şekilde Zipkin iz bağlamı yok sayılır ve W3C protokolü belirtimine göre yeni bir bağlam oluşturulur. Yayma modu Enforced olarak ayarlanmazsa araç öncelikli W3C bağlamı ayrıştırma başarısız olduktan sonra yine de Zipkin bağlamını ayrıştırmayı dener.
Effect:
Yapılandırmadan sonra her LocalRootSpan kullanılan iz protokolünü gösteren bir trace.protocol.type niteliğine sahiptir.
Mesaj kuyruğu yapılandırması
Message queue configuration bölümünde tüketici bilgilerini özelleştirebilirsiniz.
Custom RabbitMQ consumer: Özel bir tüketicinin sınıf adını veya anonim iç tüketici içeren bir sınıfı belirtin; böylece o tüketicinin izini görüntüleyebilirsiniz. Birden çok tüketici sınıf adını virgülle (,) ayırın.
Custom Kafka consumption method: Yerel Kafka SDK'sını kullanarak mesajları tüketirken izleri ve ölçümleri görüntülemek için özel bir tüketim yöntemi tanımlayın.
Automatically propagate context for Kafka messages: Bir mesaj gönderirken Kafka mesajına üretici ve tüketici izlerini ilişkilendirmek için otomatik olarak başlıklar ekleyin.
Araç toplama yapılandırması
Agent collection configuration bölümünde saniyede toplanan maksimum span sayısını, aracın işleyebileceği maksimum QPS eşiğini ve araç günlük seviyesini ayarlayabilirsiniz.
Collect traces: İz verilerinin raporlanıp raporlanmayacağını kontrol eder. Bu özellik varsayılan olarak etkindir. Devre dışı bırakırsanız araç iz verilerini raporlamayı durdurur.
Maximum spans collected per second: Aracın saniyede raporlayabileceği span sayısı. Performans nedenleriyle fiili efektif eşik yapılandırılan eşikten %5'e kadar sapabilir. Limiti aşan span'lar raporlanmaz.
Maximum QPS threshold for the agent: Aracın saniyede işleyebileceği istek sayısı. Performans nedenleriyle fiili efektif eşik yapılandırılan eşikten %5'e kadar sapabilir. Araç bu eşiği aşan istekleri izlemez. Sonuç olarak bu istekler için span oluşturulmaz ve ölçüm kaydedilmez; günlük-TraceId ilişkilendirme özelliği de etkili olmaz.
-
Collect internal call data without an entry point: ARMS'de giriş noktası bir HTTP hizmeti, RPC hizmeti, zamanlanmış görev veya mesaj tüketimi olabilir. Bu giriş noktalarının iş mantığı içinde gerçekleşen veritabanı çağrıları ve giden HTTP istekleri gibi çağrılar giriş noktalı dahili çağrılar olarak kabul edilir. Buna karşılık JDK iş parçacığı havuzları tarafından başlatılan periyodik HTTP çağrıları, veritabanı çağrıları, NoSQL çağrıları, mesaj gönderme ve RPC çağrıları giriş noktasız dahili çağrılar olarak kabul edilir. Araç V4.2.2 ve sonraki sürümlerde bu tür verileri tek tıkla filtreleyebilirsiniz. Örneğin Lettuce çerçevesi Redis'e olan bağlantının sağlıklı kalması için periyodik olarak komutlar çalıştırır. Bunlar giriş noktasız dahili çağrılardır. Toplamayı devre dışı bıraktığınızda araç ilgili verileri artık toplamaz.
Örneğin NoSQL Analysis sayfasında Lettuce çerçevesi tarafından otomatik olarak yürütülen PING, QUIT ve AUTH gibi Redis komutlarından oluşan çağrı verileri artık görüntülenmez.
Agent log level: Sorun giderme için aracın günlük seviyesini ayarlar.
Report agent logs: Aracın hızlı sorun giderme için çalışma günlüklerini ARMS sunucusuna raporlamasına olanak tanır. Normal koşullar altında araç dakikada yalnızca küçük bir günlük sayısı raporlar.
Enable HTTPS reporting: Etkinleştirildiğinde araç verileri HTTPS kullanarak raporlar.
-
Default metric collection filter: Belirtilen ölçüm türlerinin raporlanmasını filtreler. Şu anda aşağıdaki türler desteklenmektedir ve birden çok seçenek belirleyebilirsiniz:
custom_entry: Yöntem izleme için özel ölçümler.
http: HTTP sunucu ölçümleri.
http_client: HTTP istemci ölçümleri.
rpc: RPC sunucu ölçümleri.
rpc_client: RPC istemci ölçümleri.
sql: Veritabanı erişimiyle ilgili ölçümler.
nosql: NoSQL hizmeti erişimiyle ilgili ölçümler.
cache: Önbellek hizmeti erişimiyle ilgili ölçümler.
producer: Mesaj göndermeyle ilgili ölçümler.
consumer: Mesaj tüketimiyle ilgili ölçümler.
schedule: Zamanlama hizmetleriyle ilgili ölçümler.
Custom Metric Collection Configuration: OpenTelemetry SDK tarafından tanımlanan ölçümlerin toplanmasını yapılandırır. Daha fazla bilgi için bkz. Customize metrics by using the OpenTelemetry Java SDK.
Baggage to collect: Uygulamanız baggage kullanıyorsa bu ayar belirli baggage öğelerini span niteliklerine yazar; böylece belirli izleri almak daha kolay hale gelir.
Gelişmiş istisna filtreleme yapılandırması
Advanced exception filtering configuration bölümünde istisna toplama kurallarını yapılandırabilirsiniz.
Collect plugin exceptions: Eklenti istisnalarının toplanıp toplanmayacağını belirtir.
Stack depth for differentiating similar exceptions: Varsayılan değer 2'dir. Bu yığın derinliği benzer türdeki istisnaları tanımlamak için kullanılır. Bu ayarı değiştirmek beklenmeyen istatistiksel davranışlara neden olabilir. Dikkatli ilerleyin.
-
Exception filtering whitelist:
Belirli istisnaları Exception Analysis sekmesinde görmek istemiyorsanız gizlemek istediğiniz istisnaların tam nitelikli sınıf adlarını girebilirsiniz. Bu istisnalar sayılmaz ve Exception Analysis sayfasında görünmez.
Affected data: İstisna sayısı ölçümleri (arms_exception_requests_count_raw ve arms_exception_requests_seconds_raw) ve span'lerdeki istisna bilgileri.
Affected features: Exception Analysis sekmesindeki karşılık gelen istisnaların ölçümleri.
Format: Filtrelenecek bir istisnayı tanımlamak için tam nitelikli sınıf adını kullanın. Birden çok istisnayı filtrelemek için sınıf adlarını virgülle (,) ayırın.
Example:
java.lang.InterruptedException,java.lang.IndexOutOfBoundsExceptionDefault: Yok
-
Inherit from parent class for exception filtering: Etkinleştirildiğinde toplanan bir istisna Exception filtering whitelist içindeki bir istisna sınıfının alt sınıfıysa araç onu da filtreler.
Etki: Filtreleme kriterlerini karşılayan istisnalar ARMS konsolunda görüntülenmez.
-
Exception message filtering: Bu yapılandırıldıktan sonra belirtilen türdeki istisnaların message alanı yapılandırılan koşulları karşılıyorsa onlar da filtrelenir.
Exception name: Filtrenin uygulanacağı istisna türü.
Message condition: startsWith, endsWith veya contains olabilen istisna mesajı koşulu.
Message keyword: Anahtar sözcük dizesi.
Etki: Filtreleme kriterlerini karşılayan istisnalar ARMS konsolunda görüntülenmez.
Havuz izleme yapılandırması
Pool monitoring configuration bölümünde iş parçacığı havuzları ve bağlantı havuzları için toplama kurallarını yapılandırabilirsiniz.
Thread pool and connection pool monitoring: Tomcat, Dubbo ve HSF gibi çerçeveler için iş parçacığı havuzu ölçümlerinin izlenmesini etkinleştirir. Aracı en son sürüme yükseltmeniz gerekir.
-
Thread pool thread name pattern extraction policy: Varsayılan olarak bu seçenek bir iş parçacığı havuzundaki çalışan herhangi bir iş parçacığının adındaki tüm sayısal karakterleri yıldız işaretiyle (
*) değiştirir. Alternatif olarak yalnızca sondaki sayısal karakterleri yıldız işaretiyle (*) değiştirecek şekilde yapılandırabilirsiniz. Uygulamanız farklı bağlantı noktalarında birden çok Dubbo sağlayıcısı başlatıyorsa varsayılan ilke çıkarılan iş parçacığı adı desenleri aynı olduğu için farklı iş parçacığı havuzlarını tek bir havuzda birleştirebilir. Bunları ayırt etmek için bu ilkeyi ayarlayın.Etki: Tipik bir Tomcat iş parçacığı havuzu için görüntülenen iş parçacığı adı deseni varsayılan olarak
http-nio-*-exec-*şeklindedir. Ayarlamadan sonrahttp-nio-9099-exec-*haline gelir. -
Thread pool usage scenario filtering ve Thread pool thread name pattern filtering: Kullanım senaryolarına ve iş parçacığı adı desenlerine göre belirli iş parçacığı havuzlarının izleme ölçümlerini filtreler.
NotBu yapılandırma yalnızca Java araç V4.2.0 ve sonraki sürümler için etkilidir.
Thread pool usage scenario: İş parçacığı havuzunun kullanıldığı bağlam. Desteklenen senaryolar arasında Tomcat, Vert.x, Undertow, Dubbo, Jetty, AliyunJavaAgent ve default bulunur. AliyunJavaAgent aracın kendisinin kullandığı iş parçacığı havuzunu temsil eder; default ise diğer sınıflandırılmamış iş parçacığı havuzlarını temsil eder.
Thread pool thread name pattern: Havuzdaki iş parçacıklarının adlarından türetilen desen. Örneğin http-nio--exec- genellikle gerçek iş parçacığı adlarının sayısal kısımlarının yıldız işaretiyle (\***) değiştirilmesiyle elde edilen tipik bir desendir.
Affected data: Thread pool metrics
Affected features: Thread Pool Monitoring sekmesi ve iş parçacığı havuzu ölçümlerine dayalı yapılandırılan uyarılar.
Format:
Thread pool usage scenario filtering: İş parçacığı havuzu izleme sekmesinde görüntülenen kullanım senaryolarını girin. Birden çok senaryo girmek için virgülle (,) ayırın.
Thread pool thread name pattern filtering: İş parçacığı havuzu izleme sekmesinde görüntülenen iş parçacığı adı desenlerini girin. Birden çok desen girmek için virgülle (,) ayırın. Bu tam eşleştirme kullanır ve kural tabanlı eşleştirmeyi desteklemez.
Example:
Thread pool usage scenario filtering:
AliyunJavaAgent,JettyThread pool thread name pattern filtering:
Catalina-utility-*,DubboServerHandler-*-thread-*
Bu araç AliyunJavaAgent senaryosu için herhangi bir iş parçacığı havuzu verisi raporlamayacaktır. Diğer senaryolar için bir iş parçacığı havuzunun adı deseni
Catalina-utility-*ise araç bunu da raporlamaz.Default: Yok
Span nitelikleri yapılandırması
-
Record OTel Specification attributes: OpenTelemetry Specification her eklenti türü için bir span'in içermesi gereken nitelikleri tanımlar. Veri raporlama hacmini azaltmak için ARMS aracı varsayılan olarak bu niteliklerin tamamını kaydetmez. Gereksinimlerinize göre bu seçeneği etkinleştirebilirsiniz. Bu seçenek etkinleştirildikten sonra her çerçeve için eklenen nitelikler hakkında daha fazla bilgi için OpenTelemetry Specification belgesine bakın.
Bir HTTP sunucu span'i için bu anahtarı etkinleştirmek aşağıdaki nitelikleri ekler.
Eklenen nitelikler arasında http.path, http.scheme ve http.target gibi HTTP bilgileri ile net.host.name, net.host.port, net.protocol.name, net.protocol.version, net.sock.peer.addr ve net.sock.peer.port gibi ağ bilgileri bulunur.
-
Span association with application tags: Applications sayfasında bağladığınız uygulama etiketlerinin hangi span'lere etiketleneceğini kontrol eder. Varsayılan olarak tüm span'ler uygulama etiketlerini içerir. Kullanım hacmini azaltmak için uygulama etiketlerini yalnızca giriş span'lerine eklemeyi seçebilirsiniz. Giriş span'leri genellikle HTTP Sunucusu, RPC Sunucusu, mesaj kuyruğu tüketimi ve zamanlanmış görevleri içerir.
Örneğin bir uygulamanın
test1:value1uygulama etiketi varsa ve bunu yalnızca giriş span'lerine eklenmek üzere yapılandırırsanız:Bir giriş span'i için karşılık gelen etiketin niteliklerini görebilirsiniz.
Giriş olmayan bir span
test1:value1niteliğini içermez.
Gelişmiş ayarlar
Advanced settings bölümünde filtrelenecek arabirimler ve maksimum yöntem yığın uzunluğu gibi ayarları yapılandırabilirsiniz.
Quantile statistics: Kantil istatistiklerinin etkinleştirilip etkinleştirilmeyeceğini belirtir.
Maximum method stack length: Varsayılan değer 128 karedir ve maksimum değer 400 karedir.
Trace compression: For döngüsündeki gibi tekrarlayan çağrıların basitleştirilip basitleştirilmeyeceğini belirtir.
Maximum display length of request input parameters: Varsayılan uzunluk 512 karakterdir ve desteklenen maksimum uzunluk 2.048 karakterdir.
Asynchronous context propagation scan package: Asenkron görevleri izlemek için asenkron bağlam yayma amacıyla bir tarama paketi ekleyin. Paketteki Runnable, Callable veya Supplier arayüzünün yeni bir nesnesi oluşturulduğunda geçerli iş parçacığının iz bağlamını otomatik olarak yakalar. Bu bağlam asenkron iş parçacığı yürütüldüğünde kullanılır ve iz tamamlanır.
Include TraceId in HTTP response: Yalnızca HTTP istekleri için yanıt başlığında eagleeye-traceid alanını döndürür.
JVM GC trigger root cause: Etkinleştirildiğinde JVM garbage collection (GC) tetikleyicilerinin kök nedenini görüntüleyebilirsiniz. İzleme ayrıntılarını JVM Monitoring sayfasında görüntüleyebilirsiniz. GC tetikleyici nedenleri hakkında daha fazla bilgi için bkz. GC-related metrics.
Yapılandırmaları diğer uygulamalara kopyalama
Aynı yapılandırmayı diğer uygulamalara uygulamanız gerekiyorsa ayarları kopyalayabilirsiniz.
Tek bir yapılandırmayı kopyalama
İlgili yapılandırma bölümünde Save and Copy to Other Applications düğmesini tıklayın.
Current settings not saved iletişim kutusu görünürse geçerli uygulama için yapılandırmayı kaydetmek üzere OK düğmesini tıklayın ve ardından tekrar Save and Copy to Other Applications düğmesini tıklayın.
Görüntülenen iletişim kutusunda ayarları uygulamak istediğiniz uygulamaları seçin ve OK düğmesini tıklayın.
Tüm yapılandırmaları kopyalama
Sayfanın alt kısmında Save and Copy to Other Applications düğmesini tıklayın.
Current settings not saved iletişim kutusu görünürse geçerli uygulama için yapılandırmayı kaydetmek üzere OK düğmesini tıklayın ve ardından tekrar Save and Copy to Other Applications düğmesini tıklayın.
Görüntülenen iletişim kutusunda ayarları uygulamak istediğiniz uygulamaları seçin ve OK düğmesini tıklayın.
Global varsayılan yapılandırma
Geçerli yapılandırmayı global varsayılan yapılandırma olarak kaydedebilirsiniz. Bu yapılandırma yeni uygulamalar oluşturduğunuzda varsayılan olarak uygulanır.
Sayfanın alt kısmında Save Current App Settings as Global Default Configuration düğmesini tıklayın.
Current settings not saved iletişim kutusu görünürse geçerli uygulama için yapılandırmayı kaydetmek üzere OK düğmesini tıklayın ve ardından tekrar Save Current App Settings as Global Default Configuration düğmesini tıklayın.
Görüntülenen iletişim kutusunda Confirm düğmesini tıklayın.
SSS
Anahtar ayarlarının etkili olmaması
Yapılandırma öğesinin bir sürüm gereksinimi olup olmadığını kontrol edin. Örneğin belirli bir araç sürümünden itibaren bir anahtar varsayılan olarak etkinleştirilebilir veya devre dışı bırakılabilir.
Bir sürüm gereksinimi varsa mevcut agent version sürümünüzün bu gereksinimi karşılayıp karşılamadığını kontrol edin. Karşılamıyorsa değişikliği uygulamak için Save düğmesine bir kez tıklayın. Karşılıyorsa araç günlüklerinde yapılandırma dinleyicisiyle ilgili girişler olup olmadığını kontrol edin.
-
Sürüm gereksinimi yoksa agent logs kontrol ederek yapılandırma dinleyicisiyle ilgili girişler olup olmadığını doğrulayın.
-
Araç V3.x için
[Diamond] receiveanahtar sözcüğünü arayın. Aşağıdaki içerik görünüyorsa yapılandırma başarıyla itilmiştir.2024-12-06 11:39:06.387|28|warn|||Receive xxx xxx_config xxx xxx xxx true 2024-12-06 11:39:06.387|28|warn|||Rec xxx 2024-12-06 11:39:06.387|28|warn|||Receive xxx xxx config xxx xxx xxx xxx 2024-12-06 11:39:06.387|28|warn|||[Diamond] receive config 2024-12-06 11:39:06.387|49|warn|||Fa xxx 2024-12-06 11:39:06.387|28|warn|||Di xxx 2024-12-06 11:39:06.404|28|warn|||PV xxx 2024-12-06 11:39:06.404|28|warn|||pa xxx xxx xxx 2024-12-06 11:39:06.404|28|warn|||pv xxx xxx xxx -
Araç V4.x için
config updateanahtar sözcüğünü arayın. Aşağıdaki günlük girişi görünüyorsa yapılandırma başarıyla itilmiştir.xxx xxx xxx xxx xxx xxx xxx xxx 2024-11-27 11:48:35.161|16|warn|||[ConvergeState] config_update:{"profiler":"e xxx 2024-11-27 11:48:35.161|16|info|||[ArmsG xxx 2024-11-27 11:48:35.162|16|info|||[ArmsG xxx 2024-11-27 11:48:35.162|16|info|||[ArmsS xxx 2024-11-27 11:48:35.162|16|info|||[ArmsG xxx 2024-11-27 11:48:35.162|16|info|||[ArmsG xxx 2024-11-27 11:48:35.162|16|info|||[Arms0 xxx xxx xxx
-
Örnekleme oranı ayarının etkili olmaması
Bir uygulamanın örnekleme oranı yalnızca aracın ondan kaynaklanan izleri örnekleyip örneklemeyeceğini etkiler. Bir istek zaten bir iz bağlamı içeriyorsa uygulama o bağlamı geri yükler ve o bağlamda kaydedilen örnekleme kararına dayalı olarak bir örnekleme kararı verir.
Async tarama paketinde Lambda ifadelerinin desteklenmemesi
Ek kod değişiklikleri veya yapılandırma değişiklikleri gerektirmeyen otomatik asenkron bağlam yaymayı destekleyen araç V4.x'e yükseltmeniz önerilir.
Global varsayılanların yeni uygulamalara uygulanmaması
Bir uygulamanın geçerli yapılandırmasını global varsayılan yapılandırma olarak kaydettiğinizde yalnızca bir anlık görüntü kaydedersiniz. O uygulamanın yapılandırmasında yapılan sonraki değişiklikler global varsayılan yapılandırmaya otomatik olarak senkronize edilmez. Güncellemek için ayarları tekrar global varsayılan yapılandırma olarak kaydetmeniz gerekir.
/error API yapılandırmasının etkili olmaması
3.2.0'dan önceki araç sürümlerinde araç bir çağrı ilk kez uygulamaya girdiğinde arabirim filtreleme gerçekleştirir. Ancak uygulama /error türü arabirimleri yalnızca bir hata oluştuğunda /error sayfasına yönlendirir ve bu noktada filtreleme artık uygulanmaz. Bu sorun araç V3.2.0 ve sonraki sürümlerde düzeltilmiştir.
Yakınsama devre dışı bırakıldıktan sonra URL'lerin yine de yakınsanması
Custom Configurations sayfasındaki URL convergence settings bölümü yalnızca araç V3.x için geçerlidir. Araç V4.x için sayfasına gidin ve ayarları yapılandırın.
V3.x'ten önceki araç sürümleri için uygulamanız Spring MVC kullanıyorsa bu sorun oluşabilir. Lütfen aracı V3.x veya sonraki bir sürüme yükseltin.