Pythonエージェントでは、構成オプションを使用してデフォルトのエージェント動作エージェントを変更できます。
唯一必要な Python エージェント構成設定はです。 ライセンスキーは、エージェントがアプリケーション データを報告するアカウントを識別します。 アプリケーションをホストする方法に応じて、ライセンスキーは設定ファイルまたは環境変数を介して提供できます。
構成方法と優先順位
Pythonエージェントを構成する主な方法は、標準のインストールプロセスの一部として生成される構成ファイルを使用することです。UIでサーバー側の構成を使用するか、環境変数を使用して、限られた数の構成オプションを設定することもできます。WSGIリクエスト環境ディクショナリを使用して設定を渡すことにより、リクエストごとにいくつかの設定を指定することもできます。
Pythonエージェントは、次の優先順位に従って構成されます。

Python エージェントを使用すると、リクエストごとのオプションがサーバー側の設定をオーバーライドします。 有効にすると、サーバー側の値が空白のままであっても、サーバー側の構成はエージェント構成ファイル内のallに対応する値をオーバーライドします。 エージェント構成ファイルは環境変数をオーバーライドします。 環境変数はエージェントのデフォルトをオーバーライドします。
各構成方法の詳細な説明は次のとおりです。
通常、Pythonエージェントは、エージェントのホストシステム上のローカル構成ファイルから構成します。次のいずれかの方法を使用して、起動時に構成ファイルへのパスを指定します。
newrelic.agent.initialize()を呼び出すときは、最初の引数として構成ファイルへのパスを指定します。また
NEW_RELIC_CONFIG_FILE環境変数を設定します。newrelic-adminラッパースクリプトを使用する場合、ラッパースクリプトはエージェントを自動的に呼び出すため、環境変数を使用する必要があります。エージェントは 2 種類の設定ファイルをサポートします。エージェント v10.2.0 以前では
.ini構文を使用する必要がありますが、Python バージョン 3.11 以降で実行されるエージェント バージョン v10.3.0 以降では.tomlファイルもサポートされます。設定ファイルは、Microsoft Windows
.iniファイルに似た構造を使用します。 詳細については、Python ConfigParser モジュールのファイル形式のドキュメントを参照してください。基本的な構造は次のようになります。
[newrelic]license_key = <license key>app_name = Python Applicationヒント
Python 3.11 以降、設定の新しい
.toml構文が標準ライブラリに追加されました。 エージェント バージョン10.3.0では、この新しい形式の使用のサポートが追加されました。設定ファイルは Tom's Obvious Minimal Language
.tomlファイルを使用します。 詳細については、公式のファイル形式のドキュメントを参照してください。.toml構文を使用するには、設定ファイルの名前が構文タイプを示す.tomlで終わる必要があります。 標準のpyproject.toml、他のライブラリの設定と一緒に使用することも、newrelic.tomlのようなより具体的なファイルを使用することもできます。基本的な構造は次のようになります。
[tool.newrelic]license_key = <license key>app_name = Python Applicationヒント
サンプル構成ファイルは、Pythonエージェントに
newrelic/newrelic.iniとして含まれています。generate-configコマンドを使用してnewrelic-adminスクリプトから生成することも、ダウンロードリポジトリからコピーをダウンロードすることもできます。
サーバーサイド設定を使用すると、 New Relic UI で特定の設定を構成できます。 これにより、エージェントが複数のホストで実行されている場合でも、すべてのエージェントに変更が自動的に適用されます。 可能な場合、このドキュメントには、個々の構成オプションの下にサーバー側構成の UI ラベルがServer-side labelとして含まれています。
重要
サーバー側構成が有効な場合、エージェントは UI で設定される構成ファイル内の値couldを無視します。 UI 値が空の場合でも、エージェントはこれを空の文字列として扱い、エージェント構成ファイルを使用しません。
環境変数を使用すると、特定のコア設定のデフォルトをオーバーライドできます。 同等の設定がエージェント構成ファイルに明示的にリストされている場合、構成ファイルの設定が環境変数よりも優先されます。 利用可能な場合、環境変数は、以下の個々の構成オプションの下にEnviron variableとして記載されています。
単純な構成の場合、サーバー側の構成と組み合わせて環境変数を使用し、エージェント構成ファイルを完全に回避できます。これはHerokuのデフォルト設定であり、New Relicアドオンをインストールすると、必要な環境変数が自動的に入力されます。
New Relic CodeStreamを使用してIDEからパフォーマンスを監視する場合は、リポジトリをサービスに関連付け、ビルドSHAまたはリリースタグをエラーに関連付ける必要があります。
Environment variable | Configuration setting |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
特定のWSGIサーバーでは、リクエストごとにアプリ名とキャプチャ属性の設定を上書きできます。これは、リクエストごとのWSGI環境ディクショナリに渡される追加のキー/値のペアを定義できるWSGIサーバーで可能です。
これらの値は、文字列on 、 off 、 true 、 false 、 1 、および0で設定します。Pythonコードを使用して実装された構成メカニズムから設定された場合、TrueまたはFalseに評価されるPythonオブジェクトも受け入れられます。
Apache / mod_wsgiサーバーでは、 SetEnvディレクティブを使用して構成設定をオーバーライドできます(オプションでLocationまたはDirectoryブロック内)。たとえば、完全な仮想ホストのアプリ名、またはその仮想ホストのWSGIアプリケーションによって処理されるURLのサブセットのアプリ名を上書きできます。
特定のエージェント構成設定をオーバーライドできることに加えて、WSGI環境キーを使用して他の要求ごとの構成設定を設定できます。
trueに設定すると、このWebトランザクションは代わりに非Webトランザクションとして報告されます。
trueに設定すると、このWebトランザクションは報告されません。
trueに設定すると、このWebトランザクションに対してApdexメトリックは生成されません。
trueに設定されている場合、このWebトランザクションはトランザクショントレースに記録できません。
trueに設定すると、ページの読み込みタイミング(実際のユーザー監視またはRUMと呼ばれることもあります)のためのJavaScriptヘッダー/フッターの自動挿入が無効になります。Webフレームワークで自動挿入が利用可能な場合にのみ適用されます。
重要
WSGIミドルウェアを使用してこれらの値を設定することは、Pythonエージェント自体のWSGIアプリケーションラッパーが外部スコープで適用された場合には機能しません。このような場合、同じ結果を得るには、エージェントAPIを呼び出す必要があります。
複数の環境構成
エージェントは、 iniファイルの場合は[newrelic] 、 .tomlファイルの場合は[tool.newrelic]というエージェント設定セクションからプライマリ設定を読み取ります。 追加のセクションで、特定のデプロイメント環境 (開発、ステージング、本番など) のオーバーライドを指定できます。 これらのセクションの先頭には、 .iniファイルの場合は[newrelic:environment] 、 .tomlファイルの場合は[tool.newrelic.env.environment]を付けます ( environment環境の名前に置き換えられます)。
エージェントが環境ベースの構成を使用するように指定するには、次のいずれかの方法を使用します。
newrelic.agent.initialize()を呼び出すときは、2番目の引数として環境名を指定します。また
NEW_RELIC_ENVIRONMENT環境変数を環境名に設定します。
環境が指定されていない場合、エージェントはnewrelicエージェント構成セクションで指定されているデフォルト設定を使用します。
構成ファイルの基本構造は次のとおりです。
[newrelic]... default settings
[newrelic:development]... override settings
[newrelic:staging]... override settings
[newrelic:production]... override settings[tool.newrelic]... default settings
[tool.newrelic.env.development]... override settings
[tool.newrelic.env.staging]... override settings
[tool.newrelic.env.production]... override settings一般的な構成設定
これらの設定は、エージェント構成ファイルで使用できます。
タイプ | 弦 |
|---|---|
デフォルト |
|
リクエストごとのオプション、構成ファイル、環境変数 | |
| |
|
NewRelicUIでデータを集約するために使用されるアプリケーション名。同時に複数のアプリにデータを報告するには、セミコロン;で区切られた名前のリストを指定します。セミコロンの前にスペースを入れないでください。スペースを入れると、Python構成パーサーが名前を埋め込みコメントとして解釈します。
trueの場合、エージェントはWebアプリを計測しますが、実際のデータは送信しません。このオフラインモードでは、アクティブなエージェントの料金は請求されません。
開発者モードを使用して、エージェントの新しいバージョンをテストするか、開発者環境でサードパーティパッケージに対してエージェントをテストします。エージェントが収集するメトリックはどこにも報告されないため、オフラインモードはAPMをローカルで実行する方法ではありません。
ログファイルの名前を設定します。これは、エージェントの問題をデバッグするのに役立ちます。これはデフォルトでは設定されていません。エージェントは、Webアプリプロセスの親ユーザーや、そのプロセスが書き込みを許可されているディレクトリを認識していないためです。詳細については、 Pythonエージェントのロギングを参照してください。
これをどのように設定しても、含まれているディレクトリとファイル自体のアクセス許可が正しいこと、およびWebアプリケーションを実行するユーザーがファイルに書き込めることを確認してください。
ヒント
アプリケーションの起動時の作業ディレクトリが確実でない限り、絶対パスを使用してください。ログファイルを書き出せない場合は、 stderrを使用して標準エラー出力に出力することもできます。これにより、通常、Webサーバーのログに出力が表示されます。
タイプ | 文字列 |
|---|---|
デフォルト | (無し) |
構成ファイル、環境変数 | |
環境変数 |
|
デフォルトでは、Pythonエージェントはサーバーに直接接続しようとします。ホストとコレクターの間にHTTPプロキシの使用を必要とするファイアウォールがある場合は、 proxy_hostとproxy_portをHTTPプロキシに必要な値に設定します。プロキシ認証がHTTPプロキシによって実装されている場合は、 proxy_userとproxy_passも設定します。
proxy_scheme設定は、HTTPプロキシとの通信に使用されるプロトコルスキームを示します。httpに設定すると、エージェントはエンドツーエンド暗号化のためにHTTPプロキシを介したSSLトンネルを使用します。
proxy_scheme 、 proxy_host 、およびproxy_portの設定を行う代わりに、 proxy_hostの設定をプロキシの有効なURIに設定することもできます。スキーム、ホスト、およびポートを含めます。たとえば、 http://proxy-host:8000 。これは、 NEW_RELIC_PROXY_HOST環境変数を使用してHTTPプロキシの詳細を設定した場合にも機能します。
監査ログファイルの名前を設定します。設定されている場合、エージェントは、監視対象プロセスとコレクターの間でやり取りされるメッセージの詳細をログに記録します。これにより、Pythonエージェントのセキュリティを評価できます。
起動時にアプリの作業ディレクトリがどうなるかわからない場合は、絶対パスを使用してください。これをどのように設定しても、含まれているディレクトリとファイル自体の権限が正しいことを確認してください。また、Webアプリの親ユーザーがファイルに書き込めることを確認してください。
注意
特に実稼働環境では、監査ログを継続的に使用しないでください。エージェントはログファイルを切り捨てたりローテーションしたりしないため、ログファイルは非常に急速に大きくなる可能性があります。
newrelic-adminrecord-deployで使用されるapi_keyを設定します。
属性
属性は、境界トレース、トレース エラー、 、およびトランザクション イベントの情報を提供するキーの値のペアです。 以下の一般的なプロパティ設定を使用して 4 つの宛先すべての属性を構成するだけでなく、宛先ごとに属性を構成することもできます。
詳細については、 Pythonエージェント属性、属性の有効化と無効化、および属性の例を参照してください。
属性が有効になっている場合、このリストにある属性キーが送信されます。リスト内のキーは、以下に示すようにスペースで区切る必要があります。
key1 key2 key3属性のルールは、エージェント属性ページにあります。
このリストにあるすべての属性キーが送信されるわけではありません。リスト内のキーは、以下に示すようにスペースで区切る必要があります。
key1 key2 key3属性のルールは、エージェント属性ページにあります。
AIモニタリング
このセクションには、AI モニタリングを設定するための Python エージェント設定が含まれています。
重要
AI データをキャプチャするには、ディストリビューティッド(分散)トレーシングを有効にする必要があります。 Python エージェント バージョン 7.0.0.166 以降では、デフォルトで有効になっています。
重要
AI モニタリングを有効にすると、モニタリング対象として選択したモデルとの間で送受信される入力と出力のストリーミング コピー (そこに含まれる個人情報も含む) が記録されます。 AIモニタリング機能を提供する目的で、モデルユーザーのインタラクションが第三者(New Relic)によって記録される可能性があることについて、モデルユーザーから同意を得る責任があります。
trueに設定すると、AI モニタリングが有効になります。
重要
高セキュリティ モードが有効になっている場合、この設定は無効になります。
トランザクショントレーサーの構成
重要
トランザクション名の末尾に角かっこ[suffix]を使用しないでください。エージェントは、名前から角かっこを自動的に削除します。代わりに、必要に応じて括弧(suffix)またはその他の記号を使用してください。
トランザクショントレースの詳細については、トランザクショントレースを参照してください。
有効にすると、トランザクショントレーサーは遅いトランザクションに関する詳細情報をキャプチャします。
トランザクショントレーサーが有効になっている場合、エージェントはSQLステートメントを記録できます。レコーダには、 off (SQLを送信しない)、 raw (SQLステートメントを元の形式で送信する)、およびobfuscated (数値リテラルと文字列リテラルを削除する)の3つのモードがあります。
ほとんどのWebフレームワーク(Djangoを含む)はSQLクエリをパラメーター化するため、クエリの入力に使用される値は実際には含まれていません。これらのフレームワークのいずれかでrawモードを使用する場合、Pythonエージェントは値を挿入する前にのみSQLを認識します。パラメータ化されたSQLは、 obfuscatedモードによく似ています。
重要
高セキュリティ モードが有効になっている場合、この設定は無効になります。
このしきい値を超えるトランザクショントレースのクエリは、遅いクエリデータと利用可能なExplainプランを報告します。transaction_tracer.explain_enabledがfalseの場合、プランの収集は行われません。
トランザクショントレースで属性が有効になっている場合、このリストにあるすべての属性キーがトランザクショントレースで送信されます。詳細については、エージェント属性ルールを参照してください。
このリストにあるすべての属性キーは、トランザクショントレースで送信されるわけではありません。詳細については、エージェント属性ルールを参照してください。
タイプ | 弦 |
|---|---|
デフォルト | (無し) |
構成ファイル |
指定された機能またはメソッドについて、エージェントは追加の機能タイミングインストルメンテーションをキャプチャします。これらの名前は、 module:functionまたはmodule:class.functionの形式で指定してください。
関数名とクラス名のワイルドカード(グロブ)は、 fnmatchモジュールでサポートされているパターンを使用して可能です。モジュールパスはワイルドカードではサポートされていません。パターンをmodule:function*またはmodule:class.*の形式で指定します。
たとえば、以下のファイルのすべての検証関数に関数トレースを追加する場合は、次のようになります。
my-app / common / utils.py
def validate_credentials():…def validate_status():…def format_message():…次の行をエージェント構成ファイルに追加して、ワイルドカードを使用してmy-app/common/utils.py内のすべての検証関数への関数トレースを含めます。
my-app / newrelic.ini
[newrelic]...transaction_tracer.function_trace = common.utils:validate*重要
Wilcardingには、 Pythonエージェントバージョン6.4.4.161以降が必要です。
トランザクションセグメントの構成
エージェント構成ファイルを介して使用できるトランザクションセグメント設定は次のとおりです。
トランザクショントレースのセグメントで属性が有効になっている場合、このリストにあるすべての属性キーは、トランザクショントレースのセグメントで送信されます。詳細については、エージェント属性ルールを参照してください。
このリストにあるすべての属性キーは、トランザクショントレースのセグメントで送信されるわけではありません。詳細については、エージェント属性ルールを参照してください。
エラーコレクターの構成
エージェント構成ファイルを介して使用できるエラーコレクター設定は次のとおりです。
ヒント
APMでのエラー構成の概要については、「APMでのエラーの 管理」を参照してください。
特定のエラーの収集を停止するには、これを無視するPython例外タイプ名のスペースで区切られたリストに設定します。例外名には形式module:classを使用します。
注意
error_collector.ignore_errors バージョン 11.0.0 で削除されました。エージェントのバージョン 6.4.0 より前では、この設定の名前はerror_collector.ignore_errorsでした。設定ファイルがまだignore_errorsを使用している場合は、 ignore_classes使用するようにエージェントを更新します。
エージェントがエラーとして記録するのではなく無視する必要があるHTTPステータスコードを一覧表示します。追加の状況コードをスペースで区切られた整数としてリストし、開始値と終了値の間にハイフン-区切り文字を使用して範囲を指定します。デフォルトコードの1つを許可リストに追加するには、コードの前に感嘆符!を付けます。
一部のフレームワークは例外を使用してHTTP応答を返さないため、この設定は一部のWebフレームワークとのみ互換性があります。
ヒント
この構成オプションは、Pythonエージェントバージョン6.4.0以降のサーバー側構成でのみ設定できます。
指定されたHTTPステータスコードがエラー率またはApdexスコアに影響を与えずに、エラーをAPMに報告するのを防ぎます。ステータスコードをスペースで区切られた整数としてリストし、開始値と終了値の間にハイフン-区切り文字を使用して範囲を指定します。リスト内のコードの1つを無効にするには、コードの前に感嘆符!を付けます。
一部のフレームワークは例外を使用してHTTP応答を返さないため、この設定は一部のWebフレームワークとのみ互換性があります。
ヒント
この構成オプションは、Pythonエージェントバージョン6.4.0以降でのみ使用できます。
トレースされたエラーに対して属性が有効になっている場合、このリストにあるすべての属性キーがトレースされたエラーで送信されます。詳細については、エージェント属性ルールを参照してください。
このリストで見つかった属性キーは、トレースされたエラーでは送信されません。詳細については、エージェント属性ルールを参照してください。
ブラウザの監視設定
エージェント構成ファイルを介して利用できるブラウザ監視設定は次のとおりです。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
ブラウザの監視を有効にします。詳細については、Pythonでのページの読み込みタイミングを参照してください。
重要
構成ファイルでブラウザーの監視を有効にする前に、ブラウザーの監視UIのアプリケーション設定で有効にします。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
サポートされているPythonWebフレームワークの場合、この設定により、JavaScriptフラグメントを監視するブラウザーの自動挿入が有効になります。
タイプ | 弦 |
|---|---|
デフォルト |
|
構成ファイル |
ブラウザ監視エージェントが自動計測するHTML Content-Typeを指定します。スペースで区切られたリストにエントリを追加します。
HTMLページの応答を生成し、 application/xhtml+xml のContent-Typeを使用している場合は、次を使用して、許可されたコンテンツタイプをオーバーライドし、このコンテンツタイプとデフォルトのtext/htmlの両方を一覧表示できます。
browser_monitoring.content_type = text/html application/xhtml+xml重要
ブラウザ監視JavaScriptスニペットは、ページがapplication/xhtml+xmlとして検証されないようにしますが、ページはエンドユーザーブラウザで読み込まれてレンダリングされる必要があります。
属性がbrowser_monitoringに対して有効になっている場合、このリストにあるすべての属性キーがページビューで送信されます。詳細については、エージェント属性ルールを参照してください。
このリストにあるすべての属性キーは、ページビューでは送信されません。詳細については、エージェント属性ルールを参照してください。
トランザクションイベントの設定
エージェント構成ファイルを介して使用できるトランザクションイベント設定は次のとおりです。
ヒント
これらの構成設定は、以前はanalytic_eventsと呼ばれていました。構成ファイルでまだanalytic_eventsを使用している場合は、 transaction_eventsを使用するようにエージェントを更新してください。
属性がトランザクションイベントに対して有効になっている場合、このリストにあるすべての属性キーがトランザクションイベントで送信されます。詳細については、エージェント属性ルールを参照してください。
このリストにあるすべての属性キーは、トランザクションイベントでは送信されません。トランザクションイベントから属性を除外しても、スパンイベントから除外されないことに注意してください。詳細については、エージェント属性ルールを参照してください。
カスタムイベント設定
エージェント構成ファイルを介して使用できるカスタムイベント設定は次のとおりです。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
record_custom_event()を介して Event API へのイベントの記録を許可します。
重要
高セキュリティ モードが有効になっている場合、この設定は無効になります。
タイプ | 整数 |
|---|---|
デフォルト |
|
構成ファイル |
Python エージェントのインスタンスがNew Relicに送信できる 1 分あたりのカスタムイベントの数を制限します。
AI モニタリング用にエージェントを構成するときは、エージェントが最大量の LLM イベントをキャプチャできるように最大値
100000に設定します。重要
高セキュリティ モードが有効になっている場合、この設定は無効になります。
データストアトレーサー設定
これらのデータストアトレーサー設定は、エージェント構成ファイルを介して利用できます。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
有効にすると、エージェントは一部のデータベースドライバーのデータストアインスタンスメトリック(ホストやポートなど)を収集します。これらは、低速のクエリトレースとトランザクショントレースでも報告されます。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
有効にすると、エージェントは一部のデータベースドライバーのデータベース名を収集します。データベース名は、低速のクエリトレースとトランザクショントレースで報告されます。
分散トレース設定
分散トレースを使用すると、リクエストが分散システムを通過するときにたどるパスを確認できます。Pythonエージェントバージョン7.0.0.166以降では、分散トレースはデフォルトで有効になっています。
重要
分散トレースを有効にすると、クロスアプリケーション トレースが無効になり、APM 機能に他の影響が生じます。クロスアプリケーション トレースから移行する場合は、移行ガイドをお読みください。
詳細については、Pythonサービスの分散トレースを参照してください。
設定は次のとおりです。
これは、トレースにサンプリングされたリモート ペアレント (つまり、アップストリーム サービスで発生したトレース) がある場合に適用されるサンプラーです。サンプラーのオプションは次のとおりです。
adaptiveこれはデフォルトの動作であり、トレースをサンプリングするかどうかを決定するために、サンプリングの決定を適応サンプリング アルゴリズムに委任します。trace_id_ratio_basedは、サンプリングの決定をトレース ID 比率ベースのサンプリング アルゴリズムに委任して、トレースがサンプリングされるかどうかを決定します。 このオプションを使用する場合は比率が必要なので、代わりにdistributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratioを使用してください。always_on: サンプリングされたリモート親を持つトレースを常にサンプリングします。always_off: サンプリングされたリモート親を持つトレースをサンプリングしません。
これは、トレースにサンプリングされなかったリモート ペアレント (つまり、アップストリーム サービスで発生したトレース) がある場合に適用されるサンプラーです。サンプラーのオプションは次のとおりです。
adaptiveこれはデフォルトの動作であり、トレースをサンプリングするかどうかを決定するために、サンプリングの決定を適応サンプリング アルゴリズムに委任します。trace_id_ratio_basedは、サンプリングの決定をトレース ID 比率ベースのサンプリング アルゴリズムに委任して、トレースがサンプリングされるかどうかを決定します。 このオプションを使用する場合は比率が必要なので、代わりにdistributed_tracing.sampler.remote_parent_not_sampled.trace_id_ratio_based.ratioを使用してください。always_on: サンプリングされていないリモート親を持つトレースを常にサンプリングします。always_off: サンプリングされていないリモート親を持つトレースをサンプリングしません。
これは、トレースの開始時に適用されるサンプラーです。デフォルトでは、アダプティブ サンプラーはルート サンプラーとして構成されています。サンプラーのオプションは次のとおりです。
adaptiveこれはデフォルトの動作であり、トレースをサンプリングするかどうかを決定するために、サンプリングの決定を適応サンプリング アルゴリズムに委任します。trace_id_ratio_basedは、サンプリングの決定をトレース ID 比率ベースのサンプリング アルゴリズムに委任して、トレースがサンプリングされるかどうかを決定します。 このオプションを使用する場合は比率が必要なので、代わりにdistributed_tracing.sampler.root.trace_id_ratio_based.ratioを使用してください。always_on: 現在のサービスから発生し、エントリ呼び出しにディストリビューティッド(分散)トレーシング ヘッダーが存在しないトランザクションを常にサンプリングします。always_off: 現在のサービスから発生し、エントリ呼び出しにディストリビューティッド(分散)トレーシング ヘッダーが存在しないトランザクションは決してサンプリングされません。
スパンイベント構成
スパンイベントは、分散トレース用に収集されます。スパンイベントを報告するには、分散トレースを有効にする必要があります。構成オプションは次のとおりです。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
この設定を使用して、Pythonエージェントがスパンを送信するかどうかをオンまたはオフにすることができます。
この設定を使用して、スパンイベントのすべての属性をオンまたはオフにすることができます。ルートレベルのattributes.enabledがfalseの場合、この構成設定( span_events.attributes.enabled )の設定に関係なく、スパンイベントに属性は送信されません。詳細については、エージェント属性ルールを参照してください。
スパンイベントに対して属性が有効になっている場合、このリストにあるすべての属性キーがスパンイベントで送信されます。詳細については、エージェント属性ルールを参照してください。
このリストにあるすべての属性キーは、スパンイベントで送信されるわけではありません。詳細については、エージェント属性ルールを参照してください。
イベントハーベスト構成
イベントハーベスト設定は、NewRelicに送信されるイベントタイプデータの量を制限します。これらの設定を使用するときは、次の重要な点を考慮してください。
- イベントハーベスト設定は、アプリケーション全体ではなく、エージェントの単一インスタンスの制限に影響します。アプリケーション全体に制限を設定する方法については、以下の使用例を参照してください。
- リアルタイム ストリーミングは5 秒ごと (1 分あたり 12 回) にデータを送信しますが、イベント収集設定はminuteあたりのイベントのレートに影響します。 リアルタイム ストリーミングを有効または無効にする場合、これらの設定を変更する必要はありません。
- リアルタイム ストリーミング (デフォルトで有効) を使用すると、New Relic はエンティティのイベント収集制限を 5 秒間隔で表示します。これは、たとえば、構成ファイルで 1200 の制限値を設定すると、New Relic では 100 として表示されることを意味します。
使用例
アプリケーションが10個のホストにデプロイされ、それぞれがホストごとに4つのプロセスを実行しているとします。アプリケーション全体でスパンイベントの数を1分あたり10,000イベントに制限するには、その数を10ホストで割ります。次に、ホストごとに4つのプロセスで再度分割します。
10000 /(10 * 4)= 250
その計算に基づいて、最終的な設定は次のようになります。
span_events.max_samples_stored= 250
ヒント
New Relic がデータを収集する方法 (1 分間に 12 回) により、イベント データ数が 12 未満の場合、New Relic では 0 として表示されます。
イベントハーベストの構成設定は次のとおりです。
callout.warning
この設定はバージョン 11.0.0 以降では非推奨になりました。代わりにtransaction_events.max_samples_stored使用してください。
PythonエージェントのインスタンスからNewRelicに送信される1分あたりの分析イベントの制限。
callout.warning
この設定はバージョン 11.0.0 以降では非推奨になりました。代わりにcustom_insights_events.max_samples_stored使用してください。
PythonエージェントのインスタンスがNew Relicに送信できる1分あたりのカスタムイベントの数の制限。
callout.warning
この設定はバージョン 11.0.0 以降では非推奨になりました。代わりにspan_events.max_samples_stored使用してください。
- PythonエージェントのインスタンスからNewRelicに送信される1分あたりのスパンイベントの制限。
- AI モニタリングのエージェントを構成する場合、エージェントが最大量のディストリビューティッド(分散)トレーシングを確実に捕捉できるように、最大値
10000に設定します。
callout.warning
この設定はバージョン 11.0.0 以降では非推奨になりました。代わりにerror_collector.max_event_samples_stored使用してください。
PythonエージェントのインスタンスからNewRelicに送信される1分あたりのエラーイベントの制限。
イベントループの可視性設定
イベントループの可視性は、イベントループをブロックするトランザクションに関する情報を表示します。エージェントは、イベントループの制御を取得するためにかなりの時間待機したトランザクションに関する情報を生成します。設定は次のとおりです。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
イベントループ情報を無効にするには、これをfalseに設定します。
タイプ | 浮く |
|---|---|
デフォルト |
|
構成ファイル |
トランザクションがイベントループ情報を生成する前にイベントループをブロックする必要がある時間のしきい値(秒単位)。
物理メモリのランタイムメトリクス
これらのランタイム メトリック設定は、エージェント設定ファイルから利用できます。
ガベージコレクションのランタイムメトリック設定
これらのガベージコレクションのランタイムメトリック設定は、エージェント構成ファイルを介して利用できます。
タイプ | ブール値 |
|---|---|
デフォルト | false |
構成ファイル |
有効にすると、エージェントはガベージコレクションメトリックを生成して送信します。
タイプ | 整数 |
|---|---|
デフォルト | 5 |
構成ファイル |
エージェントは、ガベージコレクターによって収集されている最も一般的なオブジェクトタイプのオブジェクトカウントメトリックを報告します。この設定では、オブジェクトタイプごとに、サンプリングされる個々のメトリックの最大数を設定できます。
コードレベルのメトリクス設定
エージェントでのコード レベルのメトリックの構成には、次の設定を使用できます。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
これをfalseに設定して、コード レベルのメトリックのエージェント属性収集を無効にします。
重要
これは、環境変数を介してのみ設定できます。
タイプ | 整数 |
|---|---|
デフォルト |
|
環境変数 |
コミット sha。sha 全体を使用することも、最初の 7 文字だけを使用することもできます (例: 734713b)。
受信トレイ構成のエラー
次のタグのいずれかを設定すると、エラーが発生しているソフトウェアのバージョンを特定するのに役立ちます。
NEW_RELIC_METADATA_SERVICE_VERSIONデプロイされているコードのバージョン (多くの場合、1.2.3 などのセマンティック バージョン) を含むイベント データに tags.service.version が作成されますが、常にそうとは限りません。NEW_RELIC_METADATA_RELEASE_TAGリリースタグを含むイベントデータに tags.releaseTag を作成します (v0.1.209 など)またはリリース-209)。NEW_RELIC_METADATA_COMMITコミット SHA を含むイベント データに対して tags.commit を作成します。sha 全体を使用することも、最初の 7 文字だけを使用することもできます (例: 734713b)。
エラー受信箱の今後のリリースでは、ソフトウェアのどのバージョンでエラーが発生しているかを自動的に追跡します。バージョン データもCodeStreamに表示されます。
アプリケーションログ設定
エージェントでのアプリケーションロギングの設定には、次の設定を使用できます。
Python エージェントのログを構成するためのヒントについては、コンテキストで Python ログを構成するを参照してください。
trueの場合、エージェントはアプリケーションによって発行されたログレコードをキャプチャし、それらをNewRelicに転送します。この設定を有効にするには、 application_logging.enabledもtrueである必要があります。
重要
高セキュリティ モードが有効になっている場合、この設定は無効になります。
注意
既存のログ転送ソリューションを使用してアプリケーションのログをすでにNewRelicに送信している場合は、ログデータの重複が請求されないように、エージェントでログ転送を有効にする前に必ず無効にしてください。
属性がcontext_dataに対して有効になっている場合、このリストで見つかったすべての属性キーがトランザクション追跡で送信されます。詳細については、 「エージェント属性ルール」を参照してください。
重要
コンテキスト属性を追加するとき、エージェントは、ロギング フレームワーク コンテキストからの属性の場合はcontext. 、辞書メッセージ コンテキストからの属性の場合はmessage.をキーの先頭に付けます。
これらのプレフィックスは、包含/除外フィルタリング ルールと照合する場合には含まれません。
このリストにあるすべての属性キーは context_data で送信されるわけではありません。詳細については、 「エージェント属性ルール」を参照してください。
重要
コンテキスト属性を追加するとき、エージェントは、ロギング フレームワーク コンテキストからの属性の場合はcontext. 、辞書メッセージ コンテキストからの属性の場合はmessage.をキーの先頭に付けます。
これらのプレフィックスは、包含/除外フィルタリング ルールと照合する場合には含まれません。
NewRelicに1分あたりに送信するログレコードの数。この設定は、ログ転送機能を使用するときの全体的なメモリ消費を制御します。
これをより低い値に設定して、送信されるログラインの量を減らします(ログサンプリングの原因になる場合があります)。これをより高い値に設定すると、より多くのログラインが送信されます。
各ログは、関連するトランザクションと同じ優先度を受け取ります。トランザクション外で発生したログには、ランダムな優先度が割り当てられます。max_samples_storedによって制限されているため、一部のログは含まれない場合があります。たとえば、ロギングmax_samples_storedが 10,000 に設定され、トランザクション 1 に 10,000 のログ エントリがある場合、トランザクション 1 のログ エントリのみが記録されます。トランザクション 1 のログが 10,000 未満の場合、トランザクション 1 のすべてのログを受け取ります。まだスペースがある場合は、トランザクション 2 のすべてのログを受け取ります。
サンプリングされたトランザクションのすべてのログが記録され、それらがmax_samples_storedの制限に達していない場合、サンプリングに含まれていなかったトランザクションのログ メッセージが送信されます。残っている場合は、トランザクション以外のログ メッセージが記録されます。
callout.warning
この設定はバージョン 11.0.0 以降では非推奨になりました。代わりにapplication_logging.forwarding.max_samples_stored使用してください。
NewRelicに1分あたりに送信するログレコードの数。この設定は、ログ転送機能を使用するときの全体的なメモリ消費を制御します。
これをより低い値に設定して、送信されるログラインの量を減らします(ログサンプリングの原因になる場合があります)。これをより高い値に設定すると、より多くのログラインが送信されます。
各ログは、関連するトランザクションと同じ優先度を受け取ります。トランザクション外で発生したログには、ランダムな優先度が割り当てられます。max_samples_storedによって制限されているため、一部のログは含まれない場合があります。たとえば、ロギングmax_samples_storedが 10,000 に設定され、トランザクション 1 に 10,000 のログ エントリがある場合、トランザクション 1 のログ エントリのみが記録されます。トランザクション 1 のログが 10,000 未満の場合、トランザクション 1 のすべてのログを受け取ります。まだスペースがある場合は、トランザクション 2 のすべてのログを受け取ります。
サンプリングされたトランザクションのすべてのログが記録され、それらがmax_samples_storedの制限に達していない場合、サンプリングに含まれていなかったトランザクションのログ メッセージが送信されます。残っている場合は、トランザクション以外のログ メッセージが記録されます。
計装設定
これらのインストルメンテーション パッケージ固有の設定は、エージェント構成ファイルから利用できます。
ミドルウェア計装フィルタ
これらの計装パッケージ固有の設定は、ミドルウェア計装の切り替えに使用できます。
タイプ | 文字列のリスト |
|---|---|
デフォルト | (無し) |
構成ファイル |
ミドルウェア 計装が有効な場合、このリストにあるミドルウェア名が送信されます。 リスト内の名前は、以下に示すようにスペースで区切る必要があります。
middleware1 middleware2 middleware3ミドルウェア フィルタリングのルールについては、 ミドルウェア フィルタリング ページを参照してください。
タイプ | 文字列のリスト |
|---|---|
デフォルト | (無し) |
構成ファイル |
このリストにあるミドルウェア名は送信されません。リスト内の名前は、以下に示すようにスペースで区切る必要があります。
middleware1 middleware2 middleware3ミドルウェア フィルタリングのルールについては、 ミドルウェア フィルタリング ページを参照してください。
機械学習の設定
エージェントでの機械学習データの構成には次の設定が使用できます。
生の推論値のキャプチャを有効にするには、 trueに設定します。
重要
高セキュリティ モードが有効になっている場合、この設定は無効になります。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
record_ml_event()を介して機械学習イベントを Event API に記録できるようにします。
重要
高セキュリティ モードが有効になっている場合、この設定は無効になります。
その他の構成設定
エージェント構成ファイルを介して利用できるその他の設定を以下に示します。
タイプ | ブール値 |
|---|---|
デフォルト |
|
trueの場合、エージェントはAWS環境で実行されていることを自動的に検出します。
タイプ | 弦 |
|---|---|
デフォルト |
|
設定されている場合、アカウント ID が検査によって自動的に決定できない場合、エージェントはこのAWS account_id を使用してAWSエンティティをリンクします。 AWS有効なAWS アカウント ID の例とその検索方法については 、 アカウント ID 管理のドキュメント を参照してください。
タイプ | ブール値 |
|---|---|
デフォルト |
|
trueの場合、エージェントはAzure環境で実行されていることを自動的に検出します。
タイプ | ブール値 |
|---|---|
デフォルト |
|
trueの場合、エージェントはGoogleCloudPlatform環境で実行されていることを自動的に検出します。
タイプ | ブール値 |
|---|---|
デフォルト |
|
trueの場合、エージェントはPivotalCloudFoundry環境で実行されていることを自動的に検出します。
タイプ | ブール値 |
|---|---|
デフォルト |
|
trueの場合、エージェントはDockerで実行されていることを自動的に検出します。
スレッドプロファイリングセッションをスケジュールできます。スレッドプロファイラーは、アプリケーション内のアクティブなスレッドごとに呼び出しスタックのスナップショットを定期的にキャプチャして、統計的に代表的な呼び出しツリーを構築します。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
クロスアプリケーショントレースを有効にします。これにより、サービス指向アーキテクチャ内でアプリとサービスが接続されます。
注意
クロスアプリケーション トレース (CAT) はバージョン 11.0.0 で完全に削除されました。
タイプ | ブール値 |
|---|---|
デフォルト |
|
構成ファイル |
有効にすると、例外メッセージはコレクターに送信される前にエラー トレースから削除され、機密情報が誤って取得されるのを防ぎます。このオプションは、高セキュリティ モードでは自動的に有効になります。
重要
高セキュリティ モードが有効になっている場合、この設定は無効になります。
タイプ | 弦 |
|---|---|
デフォルト | (無し) |
構成ファイル |
許可リストにリストされている例外は、 strip_exception_messages.enabledがtrueであっても、メッセージが削除されることはありません。許可リストは、スペースで区切られた例外タイプの文字列であり、それぞれmodule:exception_nameの形式です。組み込みの例外をexception_nameとしてリストします;それらの前にmodule:を付ける必要はありません。
Example: Built-in exception and user-defined exception
KeyError my_module:MyExceptionデフォルトでは、エージェントは最初のトランザクション ( web または non-webのいずれか) を受け取ると開始します。その後、エージェントは並行して開始し、この最初のリクエストが遅れないようにします。ただし、エージェントは登録が完了するまでデータを収集できないため、この最初の要求の詳細は記録されません。これは、New Relic の起動中に最初の 2 つのトランザクションを遅延させないために、ほとんどの Web アプリケーションで推奨される構成です。
これを無効にするために、起動タイムアウトを秒単位で設定できます。その後、エージェントは最初のトランザクションを一時停止し、登録が完了するのを待ちます。これは、プロセスが 1 回実行されてすぐに終了する、単一のプログラム実行またはタスクを計測する場合に役立つ場合があります。
重要
startup_timeoutはアプリの起動を遅らせるため、ウェブアプリケーションではなく、バックグラウンドタスクキューイングシステムの起動タイムアウトのみを設定することをお勧めします。
プロセスのシャットダウン時に、エージェントはコレクターへの最後のアップロードを1回試行します。問題が発生した場合にエージェントが無期限に実行されるのを防ぐために、 shutdown_timeoutのしきい値に達すると、プロセスは正常にシャットダウンします。このシャットダウンによりデータが失われる可能性がありますが、エージェントはアップロードプロセス中に主要なメトリックデータを優先します。
バックグラウンドタスクキューイングシステム、特にプロセスごとに少数のタスクを実行するシステムの場合、エージェントがプロセスのシャットダウン時にすべてのデータをアップロードできるように、シャットダウンタイムアウトを増やすことができます。
ヒント
Apacheおよび他の多くのWebサーバーには3.0秒のプロセス終了タイムアウトがあるため、エージェントはデフォルトで2.5秒のタイムアウトになります。エージェントは2.5秒で終了し、プロセスに登録されているatexitクリーンアップコードを実行できるようにします。
タイプ | 弦 |
|---|---|
デフォルト |
|
構成ファイル |
ペイロードでデータ圧縮しきい値に達した場合、エージェントはデフォルトでgzip圧縮を使用してデータを圧縮します。構成オプションcompression_content_encodingをdeflateに設定して、deflate圧縮を使用できます。
この設定を有効にすると、エージェントは起動スクリプトから詳細なトラブルシューティング メッセージをコンソール (STDOUT) に直接送信します。 これは、 newrelic-admin起動スクリプト、代替のbootstrap/sitecustomize.py起動スクリプト、または Kubernetes APM 自動接続の起動シーケンスでのクラッシュをデバッグするのに役立ちます。
注意
この環境変数設定には対応する構成ファイル設定はありません。関連するコードは構成ファイルが読み取られる前に実行されるためです。 エージェントの起動後に包括的なデバッグ ログを記録するには、ログ レベルをdebugに設定します。
Heroku
タイプ | ブール値 |
|---|---|
デフォルト |
|
環境変数 |
|
trueの場合、エージェントはホスト名としてHerokudyno名を使用します。
タイプ | 配列 |
|---|---|
デフォルト |
|
環境変数 |
|
通常、エージェントは、末尾にドットとプロセス ID を付けて dyno 名を報告します (例: worker.3 )。末尾のデータなしで報告するプレフィックスを指定することで、この末尾のデータを削除できます (たとえば、 worker )。
内蔵計装
Pythonエージェントは、さまざまなPythonパッケージ/モジュールをインストルメントします。このインストルメンテーションは、ターゲットPythonパッケージ/モジュールがアプリケーションによってインポートされた場合にのみ発生します。
デフォルトのインストルメンテーションを無効にするには、インストルメンテーションをトリガーしたモジュールの名前に対応する特別なimport-hookセクションを指定します。次に、 enabled設定をfalseに設定して、そのモジュールのインストルメンテーションを無効にします。
.ini設定ファイルに以下を追加します。
[import-hook:MySQLdb]enabled = falseまたは、 .toml設定ファイルの場合は次を追加します。
[tool.newrelic.import-hook.MySQLdb]enabled = false