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