Application Real-Time Monitoring Service (ARMS) では、アプリケーション詳細ページのカスタム設定タブで Java アプリケーションの設定をカスタマイズできます。たとえば、サンプリングポリシーを設定したり、エージェントスイッチ設定を変更したりできます。
ARMS API を使用して上記の設定を行う方法については、SaveTraceAppConfig を参照してください。
前提条件
アプリケーションモニタリングでは、新しい請求モードを有効にしているユーザー向けに新しいアプリケーション詳細ページが提供されています。詳細については、請求 (新規) を参照してください。
新しい請求モードを有効にしていない場合は、アプリケーションリストページの新バージョンに切り替えるをクリックして、新しいアプリケーション詳細ページを表示できます。
ARMS エージェントがアプリケーションにインストールされています。詳細については、アプリケーションモニタリングの概要 を参照してください。
手順
ARMS console にログインします。左側のナビゲーションペインで、 を選択します。
アプリケーションリストページで、上部のナビゲーションバーでリージョンを選択し、管理するアプリケーションの名前をクリックします。
説明言語列に表示されるアイコンは、アプリケーションが記述されている言語を示します。
:Java アプリケーション
:Go アプリケーション
:Python アプリケーション
ハイフン (-):Managed Service for OpenTelemetry で監視されているアプリケーション。
上部のナビゲーションバーで、
を選択します。パラメータを設定し、保存をクリックします。
サンプリング設定
サンプリング設定セクションでは、サンプリングポリシーと1つ以上のスパン名を設定できます。詳細については、V3.2.8 より前の ARMS エージェントのトレースサンプリングモードを選択する を参照してください。
エージェントスイッチ設定
プローブスイッチ設定セクションでは、アプリケーションモニタリングを有効または無効にし、使用するプラグインを選択できます。
アプリケーションモニタリングを一時停止スイッチの変更は、アプリケーションを再起動する必要なくすぐに有効になります。アプリケーションのモニタリングを無効にすると、システムはアプリケーションのモニタリングを停止します。注意して進めてください。プラグインスイッチを変更した場合は、変更を有効にするためにアプリケーションを手動で再起動する必要があります。
スレッドプロファイリング設定
スレッド分析設定セクションでは、スレッドプロファイリングのメインスイッチと定期的にローカルメソッドスタック情報を保存するをオンまたはオフにし、時間のかかる呼び出しのしきい値を設定できます。
リスナーは、サービス呼び出しの応答時間がしきい値に達した場合にのみトリガーされ、呼び出しが終了するか、消費された時間が15秒を超えるまで続きます。デフォルトのしきい値は2,000ミリ秒です。しきい値は、呼び出し応答時間の99パーセンタイルに設定することをお勧めします。たとえば、100回の呼び出しが応答時間によって昇順にソートされている場合、99回目の呼び出しで消費された時間は99パーセンタイルです。
アプリケーションログの関連付け設定
アプリケーションログの関連付け設定セクションでは、アプリケーションに関連付けるログソースを設定できます。詳細については、ログ分析 を参照してください。
URL 集約設定
URL 集約設定セクションでは、集約機能を有効または無効にできます。また、集約しきい値と集約ルールを指定することもできます。URL 集約は、類似した URL を単一のオブジェクトとして表示します。たとえば、/service/demo/ で始まる URL はオブジェクトとして表示されます。集約しきい値は、URL 集約をトリガーできる URL の最小数です。たとえば、しきい値が100に設定されている場合、100個の URL がルールの正規表現に一致する場合にのみ URL が集約されます。
Arthas 監視
Arthas 監視セクションでは、Arthas 診断機能を有効または無効にできます。また、Arthas 診断を実行する IP アドレスを指定することもできます。詳細については、Arthas 診断 を参照してください。
この機能は、Application Monitoring Pro Edition のみでサポートされています。
継続的プロファイリング設定
継続的プロファイリング設定セクションでは、メインスイッチ、CPU ホットスポット、メモリホットスポット、コードホットスポットをオンまたはオフにし、有効な IP アドレスまたは有効な CIDR ブロックを指定できます。詳細については、継続的プロファイリング を参照してください。
データマスキング設定
情報秘匿化セクションでは、データマスキングルールを設定して、データ収集中に JVM システムパラメータ、Kubernetes YAML 設定、メソッド入力パラメータ、Arthas 環境変数、システム変数をマスクできます。ルール内の各要素は大文字と小文字を区別しない正規表現を表します。たとえば、password
は正規表現 .*password.*
を示します。複数の要素はコンマ (,) で区切ります。
ARMS エージェントは、データ収集時にキーに基づいてデータをマスクします。キーが正規表現に一致する場合、対応する値はマスクされます。次の図に示すように、ルールで licenseKey を指定すると、-Darms.licenseKey
キーの値はマスクされます。
操作呼び出し設定
インターフェース呼び出し設定セクションでは、低速呼び出しのしきい値を設定し、例外ホワイトリスト、HTTPステータスコードホワイトリスト、無効な操作呼び出しを除外するためのポリシーを調整できます。
例外ホワイトリスト:無視する例外の名前を入力します。指定された例外は例外チャートから除外されます。例外の完全名と一致させるには、正規表現を使用します。複数の例外ルールはコンマ (,) で区切ります。
親クラスの例外フィルターを継承する:このスイッチをオンにすると、例外フィルターで親クラスの例外を設定できます。親クラスから継承するすべての例外をフィルタリングできます。この機能は、バージョン 4.1.6 以降の ARMS エージェントでのみ使用できます。
HTTP ステータスコードホワイトリスト:統計を無視する操作を入力します。指定された操作は、インターフェース呼び出しページから除外されます。システムは、完全一致パターンに基づいて HTTP ステータスコードをフィルタリングします。複数の HTTP ステータスコードはコンマ (,) で区切ります。
無効なスパンをフィルタリングする:統計を無視する操作を入力します。指定された操作は、インターフェース呼び出しページから除外されます。無効な操作の完全名と一致させるには、正規表現を使用します。複数のルールはコンマ (,) で区切ります。
データベース呼び出し設定
データベース呼び出し設定セクションでは、低速 SQL クエリのしきい値と収集された SQL ステートメントの最大保持長を指定できます。また、SQL ステートメントに変数値と定数値を表示するかどうかを指定することもできます。
SQL に変数バインディング値を表示する:PrepareStatement パラメータにバインドされた変数値をキャプチャするかどうかを指定します。この設定は、アプリケーションを再起動する必要なく有効になります。
SQL に定数値を表示する:追加処理なしで SQL ステートメントを切り捨てるかどうかを指定します。この設定は、アプリケーションを再起動する必要なく有効になります。
トレースプロトコル設定
トレースプロトコル設定セクションでは、ビジネス要件に基づいてトレースプロトコルを選択できます。ARMS でサポートされているトレースプロトコルの詳細については、サポートされているトレースプロトコル を参照してください。
デフォルトでは、呼び出しが到着すると、ARMS エージェントは EagleEye、OpenTelemetry、SkyWalking、Jaeger、Zipkin の順に特定のプロトコルのヘッダーをチェックします。プロトコルヘッダーが検出されると、エージェントはプロトコルに基づいてトレースコンテキストを復元し、後続のダウンストリーム呼び出しには検出されたプロトコルヘッダーが含まれます。プロトコルヘッダーが検出されない場合は、デフォルトで EagleEye プロトコルが使用されます。
このセクションでは、優先順位を付けるプロトコルを指定できます。設定を保存した後、ARMS は指定されたプロトコルのヘッダーを優先的にチェックします。たとえば、次の設定では、ARMS エージェントは Jaeger、EagleEye、OpenTelemetry、SkyWalking、Zipkin の順にプロトコルヘッダーをチェックします。
1つのプロトコルのみを使用するように選択することもできます。たとえば、次の設定では、呼び出しが到着すると、ARMS エージェントは Jaeger ヘッダーのみをチェックします。Jaeger ヘッダーが見つからない場合、エージェントは他のプロトコルヘッダーをチェックせず、新しいトレースコンテキストを生成します。
詳細設定
詳細設定セクションでは、除外する操作やメソッドスタックの最大長など、詳細設定を行うことができます。
エージェントが1秒あたりに収集するトレースの最大数:エージェントが1秒あたりに処理できるリクエストの最大数。デフォルト値:100。指定されたしきい値を超えるトレースは収集されません。
エージェントログレベル:トラブルシューティングのためにエージェントログの出力レベルを調整できます。
トレース収集を一時停止する:トレース収集を有効または無効にできます。スイッチをオンにすると、トレースは収集されません。
分位数統計:分位数統計を有効または無効にできます。
保持されるメソッドスタックの最大長:デフォルト値は128、最大値は400です。
同じ例外を区別するためのスタックの深さ:同じタイプの例外を区別するために使用されるスタックの深さ。ほとんどの場合、このパラメータは最初の違いの呼び出しの深さに設定されます。
表示されるリクエストパラメータの最大長:デフォルトの長さは512文字、最大長は2,048文字です。
カスタム RabbitMQ コンシューマ:カスタムコンシューマのクラス名または匿名内部コンシューマのクラス名を指定して、コンシューマのトレースを表示できます。複数のコンシューマはコンマ (,) で区切ります。
カスタム Kafka 消費方法:ネイティブ Kafka SDK を使用してメッセージを消費するときに、トレースとメトリックを表示するためにカスタム消費方法を指定できます。
非同期伝播のパッケージ名:非同期タスクを監視するために、アプリケーションの設定に非同期伝播のスキャンパッケージを追加できます。Runnable オブジェクト、Callable オブジェクト、または Supplier オブジェクトが作成されると、非同期伝播のスキャンパッケージ内の対応するメソッドが現在のスレッドのトレースコンテキストを自動的にキャプチャします。次に、スレッドが非同期モードで使用されると、メソッドはキャプチャされたトレースコンテキストをスレッドに伝播します。ARMS エージェントのバージョンは 2.7.1.3 以降である必要があります。ARMS エージェントのアップグレード方法については、ARMS エージェントの更新 を参照してください。
HTTP 応答にトレース ID を含める:HTTP リクエストのレスポンスヘッダーに eagleeye-traceid フィールドを返すかどうかを指定します。
アプリケーション設定を他のアプリケーションにコピーする
アプリケーションの設定を他のアプリケーションにコピーできます。
単一の構成項目を他のアプリケーションにコピーする
構成項目のセクションで、保存して他のアプリケーションにコピーをクリックします。
現在の設定は保存されていませんというメッセージが表示されたら、OK をクリックして設定を保存し、保存して他のアプリケーションにコピーをクリックします。
表示されるダイアログボックスで、特定のアプリケーションまたは他のすべてのアプリケーションを選択し、OK をクリックします。
すべての構成項目を他のアプリケーションにコピーする
ページの下部にある保存して他のアプリケーションにコピーをクリックします。
現在の設定は保存されていませんというメッセージが表示されたら、OK をクリックして設定を保存し、保存して他のアプリケーションにコピーをクリックします。
表示されるダイアログボックスで、特定のアプリケーションまたは他のすべてのアプリケーションを選択し、OK をクリックします。
アプリケーション設定をグローバルに適用する
現在のアプリケーション設定をグローバルに適用できます。新しいアプリケーションを作成すると、デフォルトで設定が使用されます。
ページの下部にある現在のアプリケーション設定をグローバルデフォルト設定として保存をクリックします。
現在の設定は保存されていませんというメッセージが表示されたら、OK をクリックして設定を保存し、現在のアプリケーション設定をグローバルデフォルト設定として保存をクリックします。
表示されるメッセージで、OK をクリックします。