[カスタム設定] タブでは、エージェントスイッチやサンプリングポリシーなどの共通設定を調整できます。
API を使用してこれらの設定を調整する方法については、「SaveTraceAppConfig」をご参照ください。
前提条件
Application Real-Time Monitoring Service (ARMS) アプリケーションモニタリングは、新しい課金モデルを有効にしたユーザー向けに、新しいモニタリング詳細ページを提供します。新しい課金モデルの詳細については、「製品の課金 (新規)」をご参照ください。
新しい課金モデルを有効にしていないが、新しいモニタリング詳細ページにアクセスしたい場合は、[アプリケーションリスト] ページで [新バージョンに切り替え] をクリックします。
アプリケーションにプローブをインストール済みであること。手順については、「アプリケーションモニタリング統合の概要」をご参照ください。
操作手順
-
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
-
上部のナビゲーションバーで、 を選択します。
-
カスタム設定パラメーターを設定し、[保存] をクリックします。
サンプリング設定
サンプリング設定 セクションでは、トレースのサンプリングポリシー、サンプリングレート、および常時サンプリングされるインターフェイスの特性を設定できます。 また、低トラフィックサンプリングを有効化または無効化することもできます。 詳細については、「トレースサンプリングモードを選択する (エージェント V3.2.8 以降)」をご参照ください。
エージェントスイッチ設定
プローブスイッチの設定 セクションでは、アプリケーション監視を有効化または無効化し、個々のエージェントスイッチを切り替えることができます。
アプリケーションモニタリングの有効化または無効化の変更は、アプリケーションを再起動しなくてもすぐに有効になります。アプリケーションモニタリングを一時停止すると、システムはアプリケーションを監視できなくなります。操作は慎重に行ってください。エージェントスイッチの変更には、アプリケーションの再起動が必要です。
このセクションでは、利用可能なすべてのエージェントスイッチがグリッド形式で一覧表示されます。必要に応じて、特定のフレームワークや機能のモニタリングを有効または無効にできます。
スレッドプロファイリング設定
[スレッドプロファイリング設定] セクションでは、スレッドプロファイリングのメインスイッチをオンまたはオフにできます。
アプリケーションログ関連付け設定
[アプリケーションログ関連付け設定] セクションでは、ログソース情報を設定して、TraceId と SpanId を自動的に挿入できます。詳細については、「ログ分析」をご参照ください。
-
TraceId と SpanId の自動挿入:有効にすると、エージェントはログ設定を変更することなく、ログに TraceId と SpanId を自動的に挿入します。
効果:
# 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) -
ログ MDC に TraceId を追加:デフォルトでは、エージェント V4.x 以降は
org.slf4j.MDC.get("EagleEye-TraceID")を使用した TraceId の取得をサポートしていません。このメソッドを使用するには、このスイッチを有効にします。
URL 収束設定
URL 収束設定 セクションでは、URL 収束を有効化または無効化し、収束閾値とルールを設定できます。 URL 収束は、一連の類似した URL をグループ化し、単一のエントリとして表示します。 たとえば、/service/demo/ で始まる URL をグループ化します。 収束閾値とは、収束をトリガーするために必要な URL の最小数です。 たとえば、しきい値が 100 の場合、ルールの正規表現に一致する URL のグループは、その数が 100 に達して初めて収束されます。 詳細については、「ARMS の収束の仕組み」をご参照ください。
Arthas モニタリング
Arthas の監視 セクションでは、Arthas 診断機能を有効化または無効化し、この機能をアクティブにする IP アドレスを指定できます。詳細については、「Arthas 診断」をご参照ください。
継続的プロファイリング設定
[継続的プロファイリング設定] セクションでは、メインスイッチ、CPU ホットスポット、メモリホットスポット、およびコードホットスポット機能をオンまたはオフにできます。また、プロファイリングをアクティブにする IP アドレスまたは CIDR ブロックを指定することもできます。詳細については、「Java アプリケーションの継続的プロファイリング」をご参照ください。
データマスキング設定
情報匿名化の設定 セクションで、非機密化ルールを設定できます。 エージェントは収集時に、JVM システムパラメーター、Kubernetes YAML ファイル、メソッド入力パラメーター、Arthas 環境およびシステム変数などのデータを非機密化します。 非機密化ルールでは、要素はカンマで区切られ、各要素は大文字と小文字を区別しない正規表現を表します。 たとえば、password は正規表現 .*password.* と同等です。
エージェントがデータを収集する際、これらの式に対してデータキーをフィルタリングします。キーがルールに一致する場合、エージェントはそれを機密情報として扱い、その値をマスキングします。たとえば、ルールを licenseKey に設定すると、キー -Darms.licenseKey を持つ情報がマスキングされます。
IP マスキングを有効にすると、エージェントはアプリケーションモニタリングコンソールのさまざまなページのエンドポイントアドレスなど、IP アドレスを含む情報を自動的にマスキングします。このプロセスは、モニタリングデータの表示方法には影響しません。
API 呼び出し設定
[インターフェイス呼び出し設定] セクションでは、低速呼び出しのしきい値、例外ホワイトリスト、HTTP ステータスコードのホワイトリスト、無効なインターフェイス呼び出しのフィルタリングなどのポリシーを設定できます。
-
低速呼び出しのしきい値:デフォルト値は 500 ms です。応答時間がこのしきい値を超えると、インターフェイス呼び出しは低速としてマークされます。
-
HTTP ステータスコードのホワイトリスト:
デフォルトでは、400 以上の HTTP ステータスコードはエラー呼び出しとして分類されます。特定のステータスコードをエラーとして分類したくない場合は、それらをホワイトリストに追加できます。
この設定は、アプリケーションモニタリングで現在サポートされている HTTP フレームワークにのみ影響します。
影響を受けるデータ:HTTP サーバーおよびクライアントのエラー数メトリクス (arms_http_requests_error_count、arms_http_client_requests_error_count、および arms_app_requests_error_count) とスパンステータス。
影響を受ける機能: [概要]、[提供サービス]、および [依存関係] タブのエラー数、ならびに [トレースエクスプローラー] ページのスパンステータスとエラー数アラート。
フォーマット:単一のステータスコードを入力します。複数のコードを入力するには、カンマ (,) で区切ります。あいまい一致はサポートされていません。
例:
403,502デフォルト:空
-
無効なインターフェイス呼び出しのフィルタリング:
提供サービス タブから特定の呼び出しを非表示にする場合、無視したいインターフェイスの名前を入力できます。 エージェントはこれらのインターフェイスの可観測性データをレポートしなくなり、インターフェイス呼び出しページに表示されなくなります。
説明-
Java エージェント V4.2.0 未満では、この特徴は、提供サービス タブに表示されるインターフェイスにのみ有効です。
-
Java エージェント V4.2.0 以降の場合、この機能は任意の LocalRootSpan に対して有効です。
影響を受けるデータ:一致するインターフェイスのすべてのメトリクスとスパンが無視されます。
影響を受ける機能: [概要]、[提供サービス]、および [依存関係] の各タブにおける、一致するインターフェイスのすべてのメトリック。 また、[トレースエクスプローラー] ページにおける、一致するインターフェイスのスパン数、呼び出しボリューム、エラー数、および低速呼び出しアラートも影響を受けます。
フォーマット:文字列または AntPath 式を使用して、無効なインターフェイスの完全な名前を照合します。複数のルールを入力するには、カンマ (,) で区切ります。デフォルト値は、既存のデータとの互換性を確保するために AntPath 式として記述されています。削除しないことを推奨します。既存のルールに新しい設定を追加してください。
例:
/api/test/*,/api/playground/createデフォルト:
/**/*.jpg,/**/*.png,/**/*.js,/**/*.jpeg,/**/*.pdf,/**/*.xlsx,/**/*.txt,/**/*.docs,/**/*.gif,/**/*.csv -
-
インターフェイス呼び出しメトリクスに上流インターフェイス名を記録する および インターフェイス呼び出しメトリクスに上流アプリケーション名を記録する:
目的:インターフェイスメトリクスが呼び出しを行った上流アプリケーションとインターフェイスを記録するかどうかを制御します。これは主に、上流および下流サービスのデータが利用可能かどうかに影響します。アプリケーションに多数の上流アプリケーションがある場合、この情報を記録すると、報告されるメトリクスの量が大幅に増加し、コストが高くなる可能性があります。
効果:インターフェイスメトリクスの上流アプリケーションとインターフェイスの記録を無効にすると、対応するデータカウントはゼロに低下します。
-
インターフェイス呼び出しメトリクスに元のステータスコードを記録する:
目的:HTTP インターフェイス関連のメトリクスに元の応答コードを記録します。
効果:
これを有効にすると、インターフェイス呼び出しの詳細で HTTP インターフェイスの元の応答コードを表示できます。これにより、ステータスコードのより詳細な統計と分析が可能になります。
-
インターフェイスの HTTP メソッド名を記録: このスイッチを有効にすると、インターフェイス呼び出し ページでは、展開されたインターフェイス名に HTTP リクエストメソッドが含まれるようになります。 たとえば、名前が
/api/v1/use/{userId}からGET /api/v1/use/{userId}に変更されます。
データベース呼び出し設定
[データベース呼び出し設定] セクションでは、低速 SQL しきい値、収集される SQL ステートメントの最大長、SQL ステートメントに変数バインド値と定数値を表示するかどうか、および MySQL クエリの戻り値のサイズを記録するかどうかを設定できます。
-
SQL でバインドされた変数の値を表示:PreparedStatement パラメーターにバインドされた変数の値をキャプチャします。この変更は、アプリケーションを再起動しなくても有効になります。
エージェントは、対応するデータベース呼び出しスパンの属性に PreparedStatement パラメーターの値を記録します。キーは db.bindvalue で、値はカンマで区切られた変数値のリストです。この変更は、アプリケーションを再起動しなくても有効になります。
-
この設定は、ARMS で現在サポートされているすべての JDBC ベースのフレームワークでサポートされています。
-
サポートされているデータベース変数タイプ:Boolean、Byte、Short、Int、Long、Float、Double、BigDecimal、および Date。
-
このスイッチを有効にすると、SQL ステートメントの変数の数に比例して追加のオーバーヘッドが発生します。1つの変数を持つ公式ストレステストシナリオでは、このスイッチを有効にすると CPU オーバーヘッドが 0.5% 未満増加し、メモリオーバーヘッドはごくわずかです。
次の図は、このスイッチを有効にした後の効果を示しています:
これを有効にすると、データベース呼び出しスパンの [スパン詳細] パネルで、db.bindvalue 属性およびそれに対応する変数の値を表示できます。
-
-
SQL で定数値を表示:エージェントは SQL ステートメントを切り捨てるだけで、余分な処理は行いません。この変更は、アプリケーションを再起動しなくても有効になります。SQL ステートメントが定数値のみで異なる場合、それらは断片化しすぎて、最終的に
{ARMS_OTHERS}に収束される可能性があります。このオプションを有効にしないことを推奨します。 -
元の JDBC 接続文字列を記録:デフォルトでは、エージェントは限られた数の JDBC 接続文字列形式しか解析できません。エージェントが正しく解析できない接続文字列の場合、エンドポイントを UnknownEndpoint として記録します。このスイッチを有効にすると、エージェントは元の JDBC 接続文字列を記録します。たとえば、以前は認識されず UnknownEndpoint として記録されていた jdbc:h2:file 接続文字列は、このスイッチを有効にすると正しく記録されます。
トレースコンテキスト伝播設定
トレースコンテキスト伝搬プロトコルの設定 セクションでは、ニーズに合った トレースコンテキスト伝播プロトコル を選択できます。
デフォルトでは、ARMS エージェントは、リクエストのヘッダーに特定のプロトコルヘッダーが含まれているかどうかに基づいて、トレースコンテキスト伝播プロトコルを選択します。詳細については、「ARMS トレースコンテキスト伝播プロトコルの選択ポリシー」をご参照ください。
このページでは、任意のプロトコルを優先プロトコルとして選択できます。設定を選択して保存すると、ARMS はそのプロトコルで定義されたリクエストヘッダーの検出を優先します。たとえば、次の設定では、エージェントは着信呼び出しに対して Jaeger、EagleEye、W3C、SkyWalking、Zipkin の順でプロトコルコンテキストを検出します。
特定のプロトコルを強制することもできます。たとえば、次の設定では、エージェントは着信呼び出しに対して Jaeger プロトコルで定義されたリクエストヘッダーのみを検出します。ヘッダーが見つからない場合、他のプロトコルをチェックせずに、代わりに新しいトレースコンテキストを生成します。
トレースコンテキストの抽出と挿入戦略:デフォルトの動作は、上流サービスからトレースコンテキストを抽出し、下流リクエストに挿入することです。この設定で抽出と挿入の動作を設定できます。
目的:
優先または強制のトレースコンテキスト伝播プロトコルを選択できます。一般的なユースケースは次のとおりです:
-
リクエストが複数の形式のトレースコンテキストを保持しており、デフォルトの解析順序が要件を満たさない場合。特定のプロトコルを優先したい。たとえば、リクエストが W3C と Zipkin の両方のトレースコンテキストを保持している場合、エージェントはデフォルトで W3C トレースコンテキストを最初に解析します。伝播プロトコルを Zipkin に設定して、Zipkin プロトコルを優先的に解析できます。
-
リクエストがトレースプロトコルヘッダーを保持しているが、それを再利用したくなく、別のプロトコルに基づいて新しいトレースコンテキストを生成したい場合。たとえば、リクエストが Zipkin トレースコンテキストを保持している場合、デフォルトで Zipkin トレースコンテキストが解析されます。伝播プロトコルを W3C に、伝播モードを「強制」に設定できます。これにより、Zipkin トレースコンテキストは無視され、W3C プロトコル仕様に基づいて新しいコンテキストが生成されます。伝播モードが「強制」に設定されていない場合、エージェントは優先された W3C コンテキストの解析が失敗した後でも Zipkin コンテキストの解析を試みることに注意してください。
効果:
設定後、各 LocalRootSpan には、使用されたトレースプロトコルを示す trace.protocol.type 属性が付きます。
メッセージキュー設定
[メッセージキュー設定] セクションでは、コンシューマー情報をカスタマイズできます。
-
カスタム RabbitMQ コンシューマー:カスタムコンシューマーのクラス名、または匿名内部コンシューマーを含むクラスを指定して、そのコンシューマーのトレースを表示します。複数のコンシューマークラス名はカンマ (,) で区切ります。
-
カスタム Kafka 消費メソッド:ネイティブ Kafka SDK でメッセージを消費する際にトレースとメトリクスを表示するためのカスタム消費メソッドを定義します。
-
Kafka メッセージのコンテキストを自動的に伝播:メッセージを送信する際に、Kafka メッセージにヘッダーを自動的に追加して、プロデューサーとコンシューマーのトレースを関連付けます。
エージェント収集設定
[エージェント収集設定] セクションでは、1秒あたりに収集される最大スパン数、エージェントが処理できる最大 QPS しきい値、およびエージェントのログレベルを設定できます。
-
トレースを収集:トレースデータを報告するかどうかを制御します。この機能はデフォルトで有効になっています。無効にすると、エージェントはトレースデータの報告を停止します。
-
1秒あたりに収集される最大スパン数:エージェントが1秒あたりに報告できるスパンの数。パフォーマンス上の理由から、実際の有効なしきい値は設定されたしきい値から最大 5% ずれることがあります。制限を超えたスパンは報告されません。
-
エージェントの最大 QPS しきい値:エージェントが1秒あたりに処理できるリクエストの数。パフォーマンス上の理由から、実際の有効なしきい値は設定されたしきい値から最大 5% ずれることがあります。エージェントはこのしきい値を超えるリクエストを監視しません。その結果、これらのリクエストに対してスパンは生成されず、メトリクスも記録されず、ログ-TraceId 関連付け機能も有効になりません。
-
エントリポイントのない内部呼び出しデータを収集:ARMS では、エントリポイントは HTTP サービス、RPC サービス、定期タスク、またはメッセージ消費です。これらのエントリポイントのビジネスロジック内で発生するデータベース呼び出しやアウトバウンド HTTP リクエストなどの呼び出しは、エントリポイントのある内部呼び出しと見なされます。対照的に、JDK スレッドプールによって開始される定期的な HTTP 呼び出し、データベース呼び出し、NoSQL 呼び出し、メッセージ送信、および RPC 呼び出しは、エントリポイントのない内部呼び出しと見なされます。エージェント V4.2.2 以降では、このタイプのデータをワンクリックでフィルタリングできます。たとえば、Lettuce フレームワークは Redis への接続を健全に保つために定期的にコマンドを実行します。これらはエントリポイントのない内部呼び出しです。収集を無効にすると、エージェントは関連データを収集しなくなります。
例えば、[NoSQL 分析] ページでは、Lettuce フレームワークによって自動的に実行される PING、QUIT、AUTH などの Redis コマンドによって生成された呼び出しデータは、表示されなくなります。
-
エージェントログレベル:トラブルシューティングのためにエージェントのログレベルを調整します。
-
エージェントログを報告:エージェントがその運用ログを ARMS サーバーに報告して、迅速なトラブルシューティングを可能にします。通常の状況では、エージェントは1分あたり少数のログしか報告しません。
-
HTTPS 報告を有効にする:有効にすると、エージェントは HTTPS を使用してデータを報告します。
-
デフォルトのメトリクス収集フィルター:指定されたタイプのメトリクスの報告をフィルタリングします。現在、以下のタイプがサポートされており、複数のオプションを選択できます:
-
custom_entry:メソッドモニタリング用のカスタムメトリクス。
-
http:HTTP サーバーメトリクス。
-
http_client:HTTP クライアントメトリクス。
-
rpc:RPC サーバーメトリクス。
-
rpc_client:RPC クライアントメトリクス。
-
sql:データベースアクセスに関連するメトリクス。
-
nosql:NoSQL サービスアクセスに関連するメトリクス。
-
cache:キャッシュサービスアクセスに関連するメトリクス。
-
producer:メッセージ送信に関連するメトリクス。
-
consumer:メッセージ消費に関連するメトリクス。
-
schedule:スケジューリングサービスに関連するメトリクス。
-
-
カスタムメトリクス収集設定:OpenTelemetry SDK で定義されたメトリクスの収集を設定します。詳細については、「OpenTelemetry Java SDK を使用したメトリクスのカスタマイズ」をご参照ください。
-
収集するバゲージ:アプリケーションが バゲージを使用している場合、この設定は特定バゲージ項目をスパン属性に書き込み、特定のトレースの取得を容易にします。
高度な例外フィルタリング設定
[高度な例外フィルタリング設定] セクションでは、例外収集ルールを設定できます。
-
プラグイン例外を収集:プラグイン例外を収集するかどうかを指定します。
-
類似の例外を区別するためのスタックの深さ:デフォルト値は 2 です。このスタックの深さは、類似タイプの例外を識別するために使用されます。この設定を変更すると、予期しない統計的動作を引き起こす可能性があります。操作は慎重に行ってください。
-
例外フィルタリングホワイトリスト:
特定の例外を [例外分析] タブに表示したくない場合は、非表示にしたい例外の完全修飾クラス名を入力できます。これらの例外はカウントされず、[例外分析] ページに表示されません。
影響を受けるデータ:例外カウントメトリクス (arms_exception_requests_count_raw および arms_exception_requests_seconds_raw) とスパン内の例外情報。
影響を受ける特徴: [例外分析]タブ上の対応する例外のメトリック。
フォーマット:フィルタリングする例外を識別するために完全修飾クラス名を使用します。複数の例外をフィルタリングするには、クラス名をカンマ (,) で区切ります。
例:
java.lang.InterruptedException,java.lang.IndexOutOfBoundsExceptionデフォルト:なし
-
例外フィルタリングのために親クラスから継承:有効にすると、収集された例外が [例外フィルタリングホワイトリスト] の例外クラスのサブクラスである場合、エージェントはそれもフィルタリングします。
効果:フィルター条件に一致する例外は ARMS コンソールに表示されません。
-
例外メッセージフィルタリング:これを設定すると、指定されたタイプの例外は、そのメッセージフィールドが設定された条件を満たす場合にもフィルタリングされます。
-
例外名:フィルターが適用される例外タイプ。
-
メッセージ条件:例外メッセージの条件。startsWith、endsWith、または contains を指定できます。
-
メッセージキーワード:キーワード文字列。
効果:フィルター条件に一致する例外は ARMS コンソールに表示されません。
-
プールモニタリング設定
[プールモニタリング設定] セクションでは、スレッドプールと接続プールの収集ルールを設定できます。
-
スレッドプールと接続プールのモニタリング:Tomcat、Dubbo、HSF などのフレームワークのスレッドプールメトリクスのモニタリングを有効にします。エージェントを最新バージョンにアップグレードする必要があります。
-
スレッドプールのスレッド名パターン抽出ポリシー:デフォルトでは、このオプションはスレッドプールで実行中の任意のスレッドの名前にあるすべての数字をアスタリスク (
*) に置き換えます。末尾の数字のみをアスタリスク (*) に置き換えるように設定することもできます。アプリケーションが異なるポートで複数の Dubbo プロバイダーを起動する場合、抽出されたスレッド名パターンが同一であるため、デフォルトのポリシーではそれらの異なるスレッドプールが1つに集約される可能性があります。それらを区別するためにこのポリシーを調整してください。効果:典型的な Tomcat スレッドプールの場合、表示されるスレッド名パターンはデフォルトで
http-nio-*-exec-*です。調整後、http-nio-9099-exec-*になります。 -
スレッドプールの使用シナリオフィルタリング および スレッドプールのスレッド名パターンフィルタリング:使用シナリオとスレッド名パターンに基づいて、特定のスレッドプールの監視メトリクスをフィルタリングします。
説明この設定は、Java エージェント V4.2.0 以降でのみ有効です。
-
スレッドプールの使用シナリオ:スレッドプールが使用されるコンテキスト。サポートされているシナリオには、Tomcat、Vert.x、Undertow、Dubbo、Jetty、AliyunJavaAgent、および default があります。AliyunJavaAgent はエージェント自体が使用するスレッドプールを表し、default はその他の未分類のスレッドプールを表します。
-
スレッドプールのスレッド名パターン:プール内のスレッドの名前から派生したパターン。たとえば、http-nio--exec- は、通常、実際のスレッド名の数字部分をアスタリスク (*) に置き換えることによって得られるパターンです。
影響を受けるデータ:スレッドプールメトリクス
影響を受ける機能: スレッドプールモニタリング タブ、およびスレッドプールメトリックに基づいて設定されたアラート。
フォーマット:
-
スレッドプールの使用シナリオフィルタリング:スレッドプールモニタリングタブに表示される使用シナリオを入力します。複数のシナリオを入力するには、カンマ (,) で区切ります。
-
スレッドプールのスレッド名パターンフィルタリング:スレッドプールモニタリングタブに表示されるスレッド名パターンを入力します。複数のパターンを入力するには、カンマ (,) で区切ります。これは完全に一致を使用し、ルールベースのマッチングはサポートしていません。
例:
-
スレッドプールの使用シナリオフィルタリング:
AliyunJavaAgent,Jetty -
スレッドプールのスレッド名パターンフィルタリング:
Catalina-utility-*,DubboServerHandler-*-thread-*
これは、エージェントが AliyunJavaAgent シナリオのどのスレッドプールデータも報告しないことを意味します。他のシナリオでは、スレッドプールの名前パターンが
Catalina-utility-*の場合、エージェントはそれも報告しません。デフォルト:なし
-
スパン属性設定
-
OTel 仕様属性を記録:OpenTelemetry 仕様は、各プラグインタイプのスパンが含むべき属性を定義しています。データ報告量を削減するため、ARMS エージェントはデフォルトでこれらの属性すべてを記録しません。要件に応じてこのオプションを有効にできます。このオプションを有効にした後、各フレームワークに追加される属性の詳細については、「OpenTelemetry 仕様」をご参照ください。
HTTP サーバースパンの場合、このスイッチを有効にすると、次の属性が追加されます。
追加される属性には、http.path、http.scheme、http.target などの HTTP 情報、および net.host.name、net.host.port、net.protocol.name、net.protocol.version、net.sock.peer.addr、net.sock.peer.port などのネットワーク情報が含まれます。
-
スパンとアプリケーションタグの関連付け: アプリケーション ページで関連付けたアプリケーションタグをどのスパンに付けるかを制御します。デフォルトでは、すべてのスパンにアプリケーションタグが含まれます。使用量を削減するには、アプリケーションタグをエントリスパンにのみアタッチできます。エントリスパンには、通常、HTTP サーバー、RPC サーバー、メッセージキューの消費、定期タスクなどが含まれます。
たとえば、アプリケーションに
test1:value1というアプリケーションタグがあり、エントリスパンにのみアタッチするように設定した場合:エントリスパンの場合、対応するタグの属性を確認できます。
非エントリスパンの場合、
test1:value1属性は含まれません。
詳細設定
[詳細設定] セクションでは、フィルタリングするインターフェイスやメソッドスタックの最大長などの設定を行うことができます。
-
分位数統計:分位数統計を有効にするかどうかを指定します。
-
メソッドスタックの最大長:デフォルト値は 128 フレーム、最大値は 400 フレームです。
-
トレース圧縮:for ループ内の呼び出しなど、反復的な呼び出しを簡略化するかどうかを指定します。
-
リクエスト入力パラメーターの最大表示長:デフォルトの長さは 512 文字、サポートされる最大長は 2,048 文字です。
-
非同期コンテキスト伝播スキャンパッケージ:非同期タスクを監視するために、非同期コンテキスト伝播用のスキャンパッケージを追加します。パッケージ内の Runnable、Callable、または Supplier インターフェイスの新しいオブジェクトが作成されると、現在のスレッドのトレースコンテキストが自動的にキャプチャされます。このコンテキストは、非同期スレッドが実行されるときに使用され、トレースが完了します。
-
HTTP レスポンスに TraceId を含める:HTTP リクエストのみで、レスポンスヘッダーに eagleeye-traceid フィールドを返します。
-
JVM GC トリガーの根本原因: 有効にすると、JVM ガベージコレクション (GC) トリガーの根本原因を表示できます。 モニタリングの詳細は、[JVM モニタリング] ページで表示できます。 詳細については、「GC 関連のメトリック」をご参照ください。
他のアプリケーションへの設定のコピー
同じ設定を他のアプリケーションに適用する必要がある場合は、設定をコピーできます。
単一設定のコピー
-
対応する設定セクションで、[保存して他のアプリケーションにコピー] をクリックします。
-
[現在の設定は保存されていません] ダイアログボックスが表示された場合は、[OK] をクリックして現在のアプリケーションの設定を保存し、再度 [保存して他のアプリケーションにコピー] をクリックします。
-
表示されるダイアログボックスで、設定を適用するアプリケーションを選択し、[OK] をクリックします。
すべての設定のコピー
-
ページの下部で、[保存して他のアプリケーションにコピー] をクリックします。
-
[現在の設定は保存されていません] ダイアログボックスが表示された場合は、[OK] をクリックして現在のアプリケーションの設定を保存し、再度 [保存して他のアプリケーションにコピー] をクリックします。
-
表示されるダイアログボックスで、設定を適用するアプリケーションを選択し、[OK] をクリックします。
グローバルデフォルト設定
現在の設定をグローバルデフォルト設定として保存できます。この設定は、新しいアプリケーションを作成する際にデフォルトで適用されます。
-
ページの下部で、[現在のアプリ設定をグローバルデフォルト設定として保存] をクリックします。
-
[現在の設定は保存されていません] ダイアログボックスが表示された場合は、[OK] をクリックして現在のアプリケーションの設定を保存し、再度 [現在のアプリ設定をグローバルデフォルト設定として保存] をクリックします。
-
表示されるダイアログボックスで、[確認] をクリックします。
よくある質問
スイッチ設定が有効にならない
設定項目にバージョン要件があるかどうかを確認してください。たとえば、特定のエージェントバージョンからスイッチがデフォルトで有効または無効になる場合があります。
-
バージョン要件がある場合は、現在のエージェントバージョンがそれを満たしているかどうかを確認してください。満たしていない場合は、一度 [保存] をクリックして変更を適用する必要があります。満たしている場合は、エージェントログで設定リスナー関連のエントリを確認してください。
-
バージョン要件がない場合は、エージェントログで設定リスナー関連のエントリがあるかどうかを確認してください。
-
エージェント V3.x の場合、キーワード
[Diamond] receiveを検索します。以下の内容が表示された場合、設定は正常にプッシュされています。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 -
エージェント V4.x の場合、キーワード
config updateを検索します。以下のログエントリが表示された場合、設定は正常にプッシュされています。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
-
サンプリングレートの調整が有効にならない
アプリケーションのサンプリングレートは、エージェントがそこから発生するトレースをサンプリングするかどうかにのみ影響します。リクエストにすでにトレースコンテキストが含まれている場合、アプリケーションはそのコンテキストを復元し、そのコンテキストに記録されているサンプリング決定に基づいてサンプリング決定を行います。
非同期スキャンパッケージでラムダ式がサポートされない
エージェント V4.x へのアップグレードを推奨します。V4.x は、追加のコード変更や設定変更を必要とせずに、自動的な非同期コンテキスト伝播をサポートしています。
新しいアプリケーションにグローバルデフォルトが適用されない
アプリケーションの現在の設定をグローバルデフォルト設定として保存する場合、スナップショットを保存しているだけです。その後のアプリケーションの設定変更は、グローバルデフォルト設定に自動的に同期されません。更新するには、再度設定をグローバルデフォルト設定として保存する必要があります。
/error API 設定が有効にならない
3.2.0 より前のエージェントバージョンでは、呼び出しが最初にアプリケーションに入ったときにインターフェイスフィルタリングを実行します。しかし、アプリケーションはエラーが発生した場合にのみ /error タイプのインターフェイスを /error ページにディスパッチするため、その時点ではフィルタリングは適用されません。この問題はエージェント V3.2.0 以降で修正されました。
収束を無効化しても URL が収束する
-
[カスタム設定] ページの [URL 収束設定] セクションは、エージェント V3.x にのみ適用されます。エージェント V4.x の場合は、 ページに移動して設定を行ってください。
-
V3.x より前のエージェントバージョンで、アプリケーションが Spring MVC を使用している場合、この問題が発生する可能性があります。エージェントを V3.x 以降にアップグレードしてください。