トランザクショントレーサーの設定は、エージェントがスロートランザクション、トランザクションイベント、およびメッセージトレースに関する詳細情報をキャプチャする方法を制御します。
トランザクショントレーサー
トランザクショントレーサーオプションはtransaction_tracerセクションで設定します。newrelic.config.transaction_tracerプリフィックス化システムプロパティを使用して、この設定を上書きできます。
トランザクショントレーシングは、スロートランザクションについての深い情報を捕捉し、New Relicサービスに送信します。トランザクションには、発効されたクエリステートメントを含む、トランザクションの正確な呼び出しの順序が含まれます。
重要
トランザクション名の末尾に角かっこ[suffix]を使用しないでください。 New Relicは、名前から角かっこを自動的に削除します。代わりに、必要に応じて括弧(suffix)またはその他の記号を使用してください。
トランザクショントレーサーは、デフォルトで有効になっています。オフにするには、falseに設定します。
スロークエリとEXPLAINプラン(サポートされている場合)の捕捉の上限となる、クエリ実行時間の秒単位の閾値。record_sqlがrawまたはobfuscatedに設定されている場合にのみ、スロークエリに関連します。explain_enabledがtrueに設定されている場合にのみ、EXPLAINプランに関連します。
大きなSQLステートメントの場合、execステートメントやcallステートメントを解析しようとする正規表現の実行にかなりの時間がかかることがあります。この設定をtrueにすると、これらの複雑な正規表現の実行が無効になります。
この設定はJavaエージェントバージョン8.25.0以降に存在します。
SQLクエリ設定の文字制限。膨大な情報を含む遅いSQLクエリが多数ある場合、パフォーマンスやNew Relicでのデータ表示の速度に悪影響が及ぶ場合があります。情報とパフォーマンスの適切なバランスが見つかるまで、値を徐々に上げます。
New Relicへのアップロードではなく、クエリのエージェントログファイルへのロギングを有効にするには、trueに設定します。record_sqlモードを使用して、クエリのロギングを行います。
トランザクショントレーサーがオンの場合、クエリステートメントをオプションで記録できます。レコーダーには次の3つのモードがあります:
off:クエリを送信しません。raw:クエリステートメントを元の形式で送信します。obfuscated:数字と文字列リテラルを除去します。
New Relicパフォーマンス監視製品がエンティティリンクに使用する、実行されたSQLステートメントの先頭へのコメントの追加を制御します。デフォルトはfalseです。
生成されるコメントは次のようになります:/nr_service_guid=MTE3NDc2MDB8QVBNfAAAAAxJQEEEEE9OfDI4MTc5NDEIEA/
タイプ | ブール値 |
|---|
デフォルト | false
Javaエージェントのバージョン3.12.1までは、trueに変更された場合に、デフォルトでfalseに変更されました。 |
|---|
このオプションはPlay 2.x+専用です。Play/Scalaインストゥルメンテーションは、Thread.getStackTrace()を使用してトレーサーのネーミングを改善できますが、その代わりにオーバーヘッドが増加します。
SQL呼び出しからスタックトレースを収集するための閾値(秒単位)を定義します。SQLステートメントがこの閾値を超えると、エージェントが現在のスタックトレースを取得します。これは、長いSQL呼び出しの発信元を特定するのに役立ちます。
この設定を使用して、さまざまなトランザクショントレースを制御します。top_nは、トレースを作成する一意のスロートランザクションの数を表す整数です。
トランザクショントレースが、アプリで実際に最も遅いトランザクションを正確に反映するようにするには、この値を低くします。
より広範なトランザクションの配列をサンプリングする場合は、値を高くします。
値が0の場合、最も遅いトランザクションのみがトレースされることになります。これは最適ではないと考えられていますが、1つや2つのトランザクションが常に最も遅い場合があり、同じトランザクションのトレースを繰り返し見ても、おそらくあまり意味がないと思われます。
同じトランザクションが頻繁に最も遅い場合、top_n設定により、Javaエージェントで(その期間で)最も遅いn個のトランザクションのサンプリングを行えます。これにより、アプリケーションの知見の多様性と個数が増えます。
トランザクションのトレースをいつ行えるかを決定するのに使用する時間閾値。トランザクショントレースの応答時間がこの閾値を超えると、そのトランザクションはトランザクショントレースの対象になります。サンプリングされた場合、そのトランザクショントレースは記録され、 New Relicに送信されます。
デフォルトはapdex_f(デフォルト)です。これにより、閾値は「不満」Apdexレベル(apdex_t値の4倍)に設定されます。フロート値を秒数で入力して、特定の時間閾値を設定することもできます。
重要
この設定はエージェントバージョン5.10.0では非推奨となっており、将来のエージェントバージョンでは削除されます。代わりに、collect_slow_queries_fromを使用します。
デフォルトでは、高セキュリティモードでは、エージェントはスロークエリを収集できません。高セキュリティが有効になっていても、DataStaxドライバからCassandraクエリを収集するには、このオプションを有効にします。高セキュリティを使用しない場合、エージェントはスロークエリを自動的に収集します。
DataStaxドライバ2.1.2の場合、このルールを許可リストに追加します。
'com.newrelic.instrumentation.cassandra-datastax-2.1.2'
DataStaxドライバ3.0.0の場合、このルールを許可リストに追加します。
'com.newrelic.instrumentation.cassandra-datastax-3.0.0'
デフォルトでは、高セキュリティモードでは、エージェントはスロークエリを収集できません。高セキュリティが有効になっていても、DataStaxドライバからCassandraクエリを収集するには、このオプションを有効にします。高セキュリティを使用しない場合、エージェントはスロークエリを自動的に収集します。
DataStaxドライバ2.1.2の場合、このルールを許可リストに追加します。
collect_slow_queries_from:
'com.newrelic.instrumentation.cassandra-datastax-2.1.2'
DataStaxドライバ3.0.0の場合、このルールを許可リストに追加します。
collect_slow_queries_from:
'com.newrelic.instrumentation.cassandra-datastax-3.0.0'
この設定を使用して、トランザクショントレースのすべての属性をオンまたはオフにできます。ルートレベルでattributes.enabledがfalseである場合は、このプロパティ (transaction_tracer.attributes.enabled) が設定されているかにかかわらず、属性がトランザクショントレースに送信されることはありません。
属性がトランザクショントレースについて有効になっている場合、このリストにあるすべての属性キーが、トランザクショントレースでNew Relicに送信されます。詳しくはエージェント属性ルールを参照してください。
このリストにある属性キーのいずれも、トランザクショントレースでNew Relicに送信されることはありません。詳しくはエージェント属性ルールを参照してください。
トランザクションごとに作成可能なトークンの数を制限します。この値を増やすと、エージェントが使用するメモリの量とNew Relicに送信されるデータの量が増えるため、パフォーマンスに影響が生じる場合があります。
トランザクションごとに作成可能なセグメントの数を制限します。この値を増やすと、エージェントが使用するメモリの量とNew Relicに送信されるデータの量が増えるため、パフォーマンスに影響が生じる場合があります。
Transactionイベント
トランザクションイベントオプションはtransaction_eventsセクションで設定します。newrelic.config.transaction_eventsプリフィックス化システムプロパティを使用して、これらのオプションを上書きできます。
トランザクションイベントデータは、UIでヒストグラムとパーセンタイルを表示するために使用されます。
重要
以前は、このセクションはanalytics_eventsと呼ばれていました。設定ファイルで現在もanalytics_eventsを使用している場合、エージェントを更新してtransaction_eventsを使用します。
60秒ごとにレポートされた、サンプリングされたトランザクションイベントの最大数。
重要
サンプルトランザクションイベントの最小数は12です。バージョン5.5.0以降のエージェントは5秒ごとにデータを送信します。イベント数を12未満に設定すると、収集サイクル中に送信されるイベント数が不足し、データが送信されなくなります。
重要
その他の設定と異なり、custom_request_headersはペアにする必要があり、newrelic.ymlファイルで設定する必要があります。Java仮想マシン引数(システムプロパティ)や環境変数で上書きすることはできません。
ペアリングされたキーheader_nameとオプションのheader_aliasのマップのリスト。トランザクション属性として追加するカスタムHTTPリクエストヘッダーを1つ以上選択します。
複数のヘッダー設定を一覧表示できます。
header_name: "X-Custom-Header-1"
header_name: "X-Custom-Header-2"
header_alias: "CustomHeader2alias"
最初のマップセットで、X-Custom-Header-1は、リクエストオブジェクトから対応する値のヘッダー名としてエージェントにより取得されレポートされます。header_nameは、New Relicに送信される属性の名前ともなります。
第二のマップセットで、リクエストヘッダーはX-Custom-Header-2ですが、CustomHeader2aliasはNew Relicに送信される名前です。
この設定を使用して、トランザクションイベントのすべての属性をオンまたはオフにできます。ルートレベルでattributes.enabledがfalseである場合は、このプロパティがtransaction_eventsで設定されているかにかかわらず、属性がトランザクションイベントに送られることはありません。
属性がトランザクションイベントについて有効になっている場合、このリストにあるすべての属性キーが、トランザクションイベントでNew Relicに送信されます。詳しくはエージェント属性ルールを参照してください。
このリストにある属性キーのいずれも、トランザクションイベントでNew Relicに送信されることはありません。詳しくはエージェント属性ルールを参照してください。
トランザクションセグメント
トランザクション・セグメント・オプションは「transaction_segments」セクションで設定します。newrelic.config.transaction_segmentsプリフィックス化システム・プロパティを使用して、この設定を上書きできます。
トランザクションセグメントは、個別の作業単位(一般的にはメソッド呼び出し)を表し、トランザクショントレース内に表示されます。
この設定を使用して、トランザクションセグメントのすべての属性をオンまたはオフにできます。ルートレベルでattributes.enabledがfalseである場合は、このプロパティ (transaction_segments.attributes.enabled) が設定されているかにかかわらず、属性がトランザクションセグメントに送信されることはありません。
属性がトランザクションセグメントについて有効になっている場合、このリストにあるすべての属性キーが、トランザクションセグメントでNew Relicに送信されます。詳しくはエージェント属性ルールを参照してください。
このリストにある属性キーのいずれも、トランザクションセグメントでNew Relicに送信されることはありません。詳しくはエージェント属性ルールを参照してください。
メッセージトレーサー
message_tracerセクションでメッセージトレーサーオプションを設定します。newrelic.config.message_tracerプリフィックス化システムプロパティを使用して、この設定を上書きできます。
メッセージプロパティをトレーサー属性に追加します。オフにするには、falseに設定します。