APM Javaエージェントの構成可能なオプション
APM Javaエージェントには、データ収集時の構成可能な次のオプションがあります。
簡易トレース
この機能は、トレース当たりの余分なスパン数のケースを排除するように設計されています。1回のコールで作成されるスパンの数が多すぎる場合、エージェントは必要なオーバーヘッドよりも高い可能性があります。また、時間当たりのスパン数も増加し、予想される料金が高くなる可能性があります。このような問題が発生した場合には、再帰的コール(意図的またはそうでない)、生成されたコードによって、トランザクションごとに実行されたSQLの数が多いなどが含まれます。
- ブリッジ機能を使用すると、コールごとのスパンの最大数を制限できます。また、非価値とみなされるスパンを除外する方法もあります(たとえば、非常に高速なSQLが大量にあります)。
- プローブ固有のカウント制限、包含/除外に基づくスパン名、およびJDBCしきい値は、スレッドごとにコールごとに構成できます。構成オプションの詳細は、
oracle-apm-agent\config
ディレクトリのProbeConfig.acml
ファイルを参照してください。 - デフォルトの設定では、各コールを100スパンに制限します。
- 削除されたスパンに関する基本的なサマリー統計は、コールごとにスレッドごとに収集できます。
次に示すのは、スレッド・コールごとのJDBCスパンの最大数を50に制限する設定の例で、既知の日常SQLを除外し、2ミリ秒未満で実行されるSQLを除外します。summarize
オプションを有効にすると、エージェントは、削除されたスパン数、削除された平均スパン期間、削除された最小スパン時間、削除された最大スパン時間、削除されたスパン・エラー数、および最も長い削除された5つのスパンと最初の5つの削除されたエラーを示すログ・レコードというメトリックを親スパンに追加します。
abridged_probes:
summarize: true
settings_by_probe:
- probe: "JDBC"
span_limit: 50
excluded_patterns:
- contains: "select sysdate from dual"
excluded: true
threshold:
duration: 2
start_thresholding_after: 10
回路遮断器
- 回路遮断器は、大量のリソース圧力が検出されると、JVMリソースのエージェント消費を自動的に低減します。リソース圧力が十分に軽減されると、回路遮断器は通常のエージェント機能を自動的に再開します。
- デフォルトでは、回路遮断器は、ヒープ・メモリー使用量とガベージ・コレクション時間に基づいて、エージェント作業の停止と再開を増分的かつ自動的に行います。
パフォーマンス・ファクタ 停止 再開 間隔 ターゲット・コンポーネント ヒープ・メモリー使用量 95% 85% 2分 プローブ 5分 フル・エージェント ガベージ・コレクション時間 10% 5% 2分 プローブ 5分 フル・エージェント - パフォーマンス・ファクタ、停止しきい値、再開しきい値、間隔およびターゲット・コンポーネントは構成可能です。詳細は、
oracle-apm-agent\config\<version>
ディレクトリの下のCircuitBreakerConfig.acml
ファイルを参照してください。 - 回路遮断器はデフォルトで有効になっています。
oracle-apm-agent\config
ディレクトリの下にあるAgentConfig.properties
ファイルのcom.oracle.apm.agent.circuit.breaker.enable
プロパティを使用して、無効化および再有効化できます。サーキット・ブレーカの無効化および再有効化では、APM Javaエージェントを再起動する必要はありません。
サンプリング
- デフォルトでは、すべてのスパンが収集されます。サンプリング構成を変更するには、カスタム・サンプリングを構成する必要があります。
- サンプリング構成を指定することで、トレース・データの量を削減できます。詳細は、APMサンプリングの構成を参照してください。
- サンプリング操作は、簡易トレースおよび回路遮断器のデータ収集制限の影響を受けます。
ログライブラリの注入
アクティブなspanId
およびtraceId
をログ・メッセージに注入できます。これにより、ログ分析とトラブルシューティングを容易にするために、ログ・メッセージとAPMトレースとの相関関係が提供されます。
-
ProbeConfig.acml
ファイルでLOG_LIB
プローブを有効にします。 -
ProbeConfig.acml
の詳細LOG_LIB
セクションで、目的のログ・インジェクションを有効にします。
ログ・ライブラリ・インジェクションを有効にすると、次の処理が実行されます。
- 自動インジェクションを使用すると、既存のアプリケーション・ロギング構成を変更せずに
spanId
およびtraceId
をインジェクションできます。Log4j 1.2、log4j 2、ログバックおよびjava.util.loggingがサポートされています。
- WebLogicサーバー・アクセス・ログ・インジェクションでは、特定のHTTPリクエストに対してアクティブな
spanId
およびtraceId
をインジェクトできます。favicon.ico
などの静的コンテンツには、通常、spanId
またはtraceId
が関連付けられていないことに注意してください。 -
マップされた診断コンテキスト(MDC)インジェクションでは、log4j、log4j2およびログバックの組込み機能を利用して、アクティブな
spanId
およびtraceId
をロギング・フレームワークで使用できるようにします。アプリケーションのロギング・フレームワークの適切なMDCロギング構成で、次のキーを指定できます。- oracle.apm.spanId
- oracle.apm.traceId