New Relic アカウントを作成し(永久に無料です)、.NET エージェントをインストールすると、ご使用の環境に合わせて .NET エージェントを構成できます。
設定概要
APMエージェントの設定オプションでは、エージェントの動作の一部を制御することができます。これらの設定オプションの中には、基本的なインストールプロセスの一部であるもの(ライセンスキーやアプリ名の設定など)もありますが、ほとんどは、ログレベルの設定、プロキシホストアクセスの設定、特定の属性の除外、分散型トレースの有効化など、より高度な設定です。
.NET エージェントは、インストール プロセスの一部として生成されるnewrelic.configファイルから設定を取得します。 デフォルトでは、グローバルnewrelic.configファイルのみが作成されますが、複数のアプリ システムをより細かく制御するために、アプリ ローカルnewrelic.configファイルを作成することもできます。 構成オプションを設定するその他の方法には、環境変数を使用する方法や、 UIからサーバー サイド構成を設定する方法などがあります。 さまざまな設定オプションと何が何を上書きするかの詳細については、 「設定の優先順位」を参照してください。
.NET Frameworkと.NET Coreの両方をサポートする場合、特に断りがない限り、同じ構成オプションを使用し、同じAPM機能を備えています。
構成ファイルに変更を加えて、それが正しい形式であることを検証したい場合は、任意のXSDバリデーターを使用してXSDファイル(たとえば、Windowsの場合はC:\ProgramData\New Relic\.NET Agent\newrelic.xsd )と照合できます。
重要
For IIS: newrelic.configまたはapp.configファイルを変更した後、管理コマンド プロンプトからIISRESETを実行します。 ログレベルの調整にはリセットは必要ありません。
設定方法と優先順位レベル
インストール時に、.NETエージェントの構成ファイル( newrelic.config )はすべての監視対象アプリケーションに適用されますが、他の方法でエージェントを構成できます。これは、さまざまな構成オプションが互いにどのように優先されるかを示す図です。

この図は、.NETエージェントを構成するさまざまな方法について、優先順位を説明しています。
ここでは、図に示された設定方法の詳細と、その優先順位について説明します。
.NET configuration | Details and precedence |
|---|---|
| これらのファイルで設定された設定が最も優先されます。 エージェントがローカルまたはグローバル
|
環境変数 | 2番目に高い優先順位です。これらの詳細については、 .NET環境変数 を参照してください。 |
サーバー側の構成 | 3番目に高い優先順位です。 限られた数のサーバー側の構成 の設定が利用できます。その他の設定は、他の構成ソースから得られます。 |
アプリローカル | 4番目に高い優先順位。 app-local エージェントは、以下のディレクトリにあるアプリローカルの設定ファイルを、この順番で探します。
|
デフォルト(グローバル) | デフォルトのソースと最低の優先順位。他の構成ファイルがない場合に、ホスト上のすべてのアプリケーションを構成します。グローバル設定ファイルは、NewRelicエージェントのホームディレクトリにあります。 |
必要な環境変数
.NETエージェントは、環境変数に依存して、.NET共通言語ランタイム(CLR)にNewRelicをプロセスにアタッチするように指示します。一部の.NETエージェントのインストール手順(MSIインストーラーなど)では、これらの変数が自動的に設定されます。一部の手順では、手動で設定する必要があります。
注意
セキュリティ上の推奨事項です。どのユーザがシステム環境変数を設定できるかを考慮する必要があります。また、ユーザの環境変数がシステムの環境変数を上書きしないように、アプリケーションを実行するアカウントを保護する必要があります。
" お使いのシステムで以前に(New Relic 以外の)監視サービスを使用していた場合、New Relic エージェントをインストールして使用しようとすると、"プロファイラーの競合が発生する可能性があります。詳細はこちらをご覧ください。
具体的なインストール方法については、 .NETエージェントのインストールドキュメント をご覧ください。
オプションの環境変数
New Relic の .NET エージェントの設定オプションの中には、設定ファイルで設定する代わりに、環境変数で設定できるものがあります。以下に、.NETエージェントで認識される環境変数のリストと値の例を示します。
NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEYNEW_RELIC_APP_NAME=Descriptive NameMAX_TRANSACTION_SAMPLES_STORED=500MAX_EVENT_SAMPLES_STORED=500NEW_RELIC_DISTRIBUTED_TRACING_ENABLED=trueNEW_RELIC_SPAN_EVENTS_ENABLED=falseNEW_RELIC_SPAN_EVENTS_MAX_SAMPLES_STORED=2000NEW_RELIC_INFINITE_TRACING_TRACE_OBSERVER_HOST=myhost.infinitetracing.comNEW_RELIC_LABELS="foo:bar;zip:zap"NEW_RELIC_PROCESS_HOST_DISPLAY_NAME=Custom NameNEW_RELIC_HOST=gov-collector.newrelic.comNEW_RELIC_PROXY_HOST=hostnameNEW_RELIC_PROXY_URI_PATH=path/to/something.aspxNEW_RELIC_PROXY_PORT=5000NEW_RELIC_PROXY_USER=YOUR_USER_NAMENEW_RELIC_PROXY_PASS=YOUR_PROXY_PASSWORDNEW_RELIC_PROXY_DOMAIN=mydomain.comNEW_RELIC_PROXY_PASS_OBFUSCATED=YOUR_OBFUSCATED_PROXY_PASSWORDNEW_RELIC_CONFIG_OBSCURING_KEY=YOUR_OBSCURING_KEYNEW_RELIC_SEND_DATA_ON_EXIT=trueNEW_RELIC_SEND_DATA_ON_EXIT_THRESHOLD_MS=2000NEW_RELIC_HIGH_SECURITY=trueNEW_RELIC_DISABLE_SAMPLERS=trueNEW_RELIC_LOG=MyApp.logNEW_RELIC_LOG_ENABLED=trueNEWRELIC_LOG_LEVEL=infoNEW_RELIC_LOG_CONSOLE=trueNEWRELIC_PROFILER_LOG_DIRECTORY=path\to\a\directory # not configurable via config fileNEWRELIC_LOG_DIRECTORY=path\to\a\directory # Insert a directory where you want to put the agent and profiler logs. You can't set this directory for both agent and profiler logs in the configuration file.NEW_RELIC_LOG_ROLLING_STRATEGY=dayNEW_RELIC_LOG_MAX_FILE_SIZE_MB=100NEW_RELIC_LOG_MAX_FILES=2NEW_RELIC_ERROR_COLLECTOR_IGNORE_ERROR_CODES=401, 403.18NEW_RELIC_ERROR_COLLECTOR_EXPECTED_ERROR_CODES=401, 501-503NEW_RELIC_APPLICATION_LOGGING_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_METRICS_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_INCLUDE="myCustomAttribute1, myOtherCustomAttribute*"NEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_EXCLUDE="myCustomAttribute2, myOtherCustomAttributeMoreSpecificName"NEW_RELIC_APPLICATION_LOGGING_FORWARDING_MAX_SAMPLES_STORED=10000NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LOG_LEVEL_DENYLIST="debug, warn"NEW_RELIC_APPLICATION_LOGGING_LOCAL_DECORATING_ENABLED=trueNEW_RELIC_ALLOW_ALL_HEADERS=trueNEW_RELIC_ATTRIBUTES_ENABLED=trueNEW_RELIC_ATTRIBUTES_INCLUDE=request.headers.*,foo.barNEW_RELIC_ATTRIBUTES_EXCLUDE=request.headers.cookie,request.headers.authorizationNEW_RELIC_UTILIZATION_DETECT_AWS=trueNEW_RELIC_UTILIZATION_DETECT_AZURE=trueNEW_RELIC_UTILIZATION_DETECT_GCP=trueNEW_RELIC_UTILIZATION_DETECT_PCF=trueNEW_RELIC_UTILIZATION_DETECT_DOCKER=trueNEW_RELIC_UTILIZATION_DETECT_KUBERNETES=trueNEW_RELIC_FORCE_NEW_TRANSACTION_ON_NEW_THREAD=trueNEW_RELIC_CODE_LEVEL_METRICS_ENABLED=trueNEW_RELIC_AI_MONITORING_ENABLED=trueNEW_RELIC_AI_MONITORING_RECORD_CONTENT_ENABLED=trueNEW_RELIC_CLOUD_AWS_ACCOUNT_ID=123456789012NEW_RELIC_TRANSACTION_TRACER_SQL_METADATA_COMMENTS_ENABLED=trueNew Relic CodeStreamを使用してIDEからパフォーマンスを監視する場合は、リポジトリをサービスに関連付け、ビルドSHAまたはリリースタグをエラーに関連付ける必要があります。
受信トレイ構成のエラー
次のタグのいずれかを設定すると、エラーが発生しているソフトウェアのバージョンを特定するのに役立ちます。
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に表示されます。
セットアップオプション、newrelic.config
これらのオプションを使用して、 newrelic.configファイル経由でエージェントをセットアップおよび構成します。 .NET エージェントは、次のカテゴリのセットアップ オプションをサポートしています。
構成要素
構成ドキュメントのルート要素はconfiguration要素です。
<configuration xmlns="urn:newrelic-config" agentEnabled="true" maxStackTraceLines="50">configuration要素は次の属性をサポートします。
サービス要素
configuration要素の最初の子はservice要素です。 service要素は、NewRelicサービスへのエージェントの接続を構成します。
<service licenseKey="YOUR_LICENSE_KEY" sendEnvironmentInfo="true" syncStartup="false" sendDataOnExit="false" sendDataOnExitThreshold="60000" autoStart="true"/>service要素は次の属性をサポートします。
重要な要素の隠蔽
obscuringKey要素はservice要素のオプションの子です。 .NET Agentはこの値を使用して、サポートされている構成値の難読化を解除します。たとえば、難読化されたプロキシパスワードが指定された場合、このキーを使用して難読化が解除されます。
<service licenseKey="YOUR_LICENSE_KEY"> <obscuringKey>OBSCURING_KEY</obscuringKey></service>隠蔽キーは、 NEW_RELIC_CONFIG_OBSCURING_KEY環境変数を設定することによって構成することもできます。
注意
セキュリティの推奨事項:難読化された値と同じ構成ファイルに不明瞭なキーを配置すると、セキュリティ上のリスクが生じる可能性があります。難読化されたキーと難読化されたプロキシパスワードを環境変数に配置し、環境内の環境変数へのアクセスを制限することを検討してください。
プロキシ要素
proxy 要素は、 service 要素のオプションの子です。 proxy 要素は、エージェントがプロキシ経由で New Relic バックエンド サービスと通信するときに使用されます。
<service licenseKey="YOUR_LICENSE_KEY"> <proxy host="hostname" port="PROXY_PORT" uriPath="path/to/something.aspx" domain="mydomain.com" user="PROXY_USERNAME" password="PROXY_PASSWORD" passwordObfuscated="OBFUSCATED_PROXY_PASSWORD"/></service>proxy要素は次の属性をサポートします。
ログエレメント
log要素はconfiguration要素の子です。 log要素は New Relic のログ記録を構成します。 エージェントは独自のログ ファイルを生成し、そのログ情報をアプリケーションのログとは別に保持します。
<log enabled="true" level="info" auditLog="false" console="false" directory="PATH\TO\LOG\DIRECTORY" fileName="FILENAME.log" />log要素は次の属性をサポートします。
応募要素(必須)
application要素はconfiguration要素の子です。この必須要素は、アプリケーション名を定義し、サンプリングを無効または有効にします。
データ伝送素子
dataTransmission要素はconfiguration要素の子です。この要素は、データがNew Relicに送信される方法に影響し、特定のデータ送信要件がある場合に使用できます。
<dataTransmission putForDataSend="false" compressedContentEncoding="deflate"/>dataTransmission要素は次の属性をサポートします。
ホスト名
APM UI のデフォルトのホスト名ラベルが役に立たない場合は、New Relic UI でその名前を表示名で修飾できます。 アプリケーション プロセスが再起動され、.NET エージェントが再度レポートを行うと、表示名がServersドロップダウン リストに表示されます。 このホスト名の設定は、アプリケーションのSummaryページのホストのリストには影響しません。
表示名を設定するには、次のいずれかのオプションを選択します。環境変数は、コンフィグファイルの値よりも優先されます。その後、アプリケーションを再起動すると、New Relic UI に変更内容が表示されます。
クラウドプラットフォームの利用
utilization構成要素は、エージェントが使用率情報を収集し、それをNewRelicサービスに送信して価格を決定する方法を制御します。エージェントは、Amazon Web Services(AWS)EC2インスタンス、Dockerコンテナー、Microsoft Azure、Google Cloud Platform、Pivotal Cloud Foundry、Kubernetesから情報を収集できます。
<configuration . . . > <utilization detectAws="true" detectAzure="true" detectGcp="true" detectPcf="true" detectDocker="true" detectKubernetes="true" /></configuration>utilization要素は次の属性をサポートします。
インストゥルメンテーションのオプション
これらのオプションを使用して、アプリケーションや環境のどの要素をインスツルメンテーションするかを設定します。New Relic for .NET は、以下のカテゴリの計測オプションをサポートしています。
計装要素
instrumentation要素はconfiguration要素の子です。既定では、.NETエージェントはIISaspワーカープロセスとMicrosoftAzureWebおよびワーカーの役割を計測します。他のプロセスをインストルメント化するには、カスタムアプリケーションのインストルメンテーションを参照してください。
ルール要素 (インストゥルメンテーション)
重要
この機能は、.NETエージェント 10.21.0 以降で利用できます。
rules要素はinstrumentation要素の子です。 rules要素は、任意の数のignore子要素をサポートします。これにより、指定されたアセンブリで定義されたメソッドを計測しないようにプロファイラーに指示されます。 他のアセンブリで定義されたメソッドは引き続きインストゥルメント化されます。
<instrumentation> <rules> <ignore assemblyName="NameOfAssemblyToIgnore" /> </rules></instrumentation>ignoreルールを使用すると、オプションでクラス名を定義できます。 次の例では、アセンブリMyAssemblyのMyNamespace.MyClassで定義されたメソッドのみが無視されます。 そのアセンブリ内および他のアセンブリ内の他のクラスの他のメソッドは、プロファイラーによって無視されません。
<instrumentation> <rules> <ignore assemblyName="MyAssembly" className="MyNamespace.MyClass" /> </rules></instrumentation>複数の無視ルールを指定できます。 次の例では、Confluent Kafka と StackExchange Redisインストゥルメンテーションの両方を無効にします。
<instrumentation> <rules> <ignore assemblyName="Confluent.Kafka" /> <ignore assemblyName="StackExchange.Redis" /> </rules></instrumentation>カスタムインストゥルメンテーションは、 rules要素を介して無視できないことに注意してください。
アプリケーションエレメント(計測器)
applications要素はinstrumentation要素の子です。applications要素は、どの非 Web アプリを計測するかを指定するapplication子要素をサポートします。 application要素にはname属性が含まれています。さらに、エージェント バージョン 10.48.0 以降では、デフォルト値が「true」であるオプションのinclude属性があります。エージェントがそのプロセスをインストゥルメントされたのを防ぐには、このプロパティを「false」に設定します。
重要
これは、 configuration要素の子であるapplication (構成)要素と同じではありません。
<instrumentation> <applications> <application name="MyService1.exe" /> <application name="MyService2.exe" /> <application name="MyService3.exe" include="false" /> </applications></instrumentation>あるいは、エージェント バージョン 10.48.0 以降では、アプリケーションの環境でNEW_RELIC_INCLUDED_APPLICATION_NAMESおよび/またはNEW_RELIC_EXCLUDED_APPLICATION_NAMES環境変数を設定します。
NEW_RELIC_INCLUDED_APPLICATION_NAMES="MyService1.exe,MyService2.exe"NEW_RELIC_EXCLUDED_APPLICATION_NAMES="MyService3.exe"exclude は include よりも優先されることに注意してください。
属性要素
プロパティは、イベントまたはトランザクションのプロパティを決定するキーの値のペアです。 各プロパティは、 APMエラー トレース、 APMエラー トレース、 Transactionイベント、 TransactionErrorイベント、 Spanイベント、またはPageViewイベントに送信されます。 プライマリのattributes要素は、.NET エージェントのプロパティ収集を有効または無効にし、収集または除外する特定のプロパティを定義します。 特定の宛先ごとに属性設定を構成することもできます。
この例では、エージェントはキーがmyApiKeyで始まるすべての属性 ( myApiKey.bar 、 myApiKey.value ) を除外しますが、カスタムアトリビュートmyApiKey.fooを収集します。
<attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include></attributes>.NET APM属性は、 .NETエージェント属性ページで表示できます。エージェントAPI呼び出しAddCustomAttributeを使用してカスタム属性を定義することもできます。
機能オプション
これらのオプションを使用して、New Relic の機能を有効、無効、および設定します。New Relic for .NET では、以下の機能を設定することができます。
- アプリ・プール
- エラー収集
- ハイセキュリティモード
- 例外メッセージの除去
- Transactionイベント
- カスタムイベント
- カスタムパラメータ
- タグ/ラベル
- ブラウザのインストゥルメンテーション
- スロークエリ
- トランザクショントレース
- データストアトレーサー
- ディストリビューティッド(分散)トレーシング
- 無限のトレース
- クロスアプリケーショントレース
- スパンイベント
- HTTPリクエストヘッダの取得
- アプリケーションログ
- コードレベルの指標
- クラウドプロバイダーのメタデータ
- AIモニタリング
- Kafkaメトリクス
アプリ・プール
重要
これは、システムの グローバルコンフィグファイル にのみ適用されます。
重要
この設定は、IIS ホスティング モデルがインプロセスに設定されている場合にのみ適用されます。
applicationPools要素はconfiguration要素の子です。 applicationPools要素は、プロファイラーに対して、インストルメントするアプリケーションプールを正確に指定し、IISアプリケーションプール名と同じ名前を使用します。この構成要素は、アプリプールのごく一部のみをインストルメント化する必要がある場合に役立ちます。たとえば、特定のサーバーに数百のアプリケーションプールがある場合でも、.NETエージェントがインストルメント化する必要があるのはそれらのプールのほんの一部です。
ここでは、特定のアプリケーションプールに対するインスツルメンテーションを無効にする例を示します。
<applicationPools> <applicationPool name="Foo" instrument="false"/> <applicationPool name="Bar" instrument="false"/></applicationPools>ここでは、現在サーバー上で実行されているすべてのアプリケーションプールのインスツルメンテーションを無効にし、特定のアプリケーションプールのインスツルメンテーションを有効にする例を示します。
<applicationPools> <defaultBehavior instrument="false"/> <applicationPool name="Foo" instrument="true"/> <applicationPool name="Bar" instrument="true"/></applicationPools>applicationPools要素は次の要素をサポートします。
エラー収集
errorCollector要素はconfiguration要素の子です。 errorCollectorは、キャッチされなかった例外に関する情報をキャプチャしてNewRelicに送信するエラー収集を構成します。
<errorCollector enabled="true" captureEvents="true" maxEventSamplesStored="100"> <ignoreClasses> <errorClass>System.IO.FileNotFoundException</errorClass> <errorClass>System.Threading.ThreadAbortException</errorClass> </ignoreClasses> <ignoreMessages> <errorClass name="System.Exception"> <message>Ignore message</message> <message>Ignore too</message> </errorClass> </ignoreMessages> <ignoreStatusCodes> <code>401</code> <code>404</code> </ignoreStatusCodes> <expectedClasses> <errorClass>System.ArgumentNullException</errorClass> <errorClass>System.ArgumentOutOfRangeException</errorClass> </expectedClasses> <expectedMessages> <errorClass name="System.Exception"> <message>Expected message</message> <message>Expected too</message> </errorClass> </expectedMessages> <expectedStatusCodes>403,500-505</expectedStatusCodes> <attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include> </attributes></errorCollector>ヒント
APMでのエラー構成の概要については、「APMでのエラーの 管理」を参照してください。
重要
expectedClasses、 expectedMessages 、およびexpectedStatusCodesの構成設定には、 .NETエージェントバージョン8.31.0.0以降が必要です。
errorCollector要素は、次の要素と属性をサポートします。
ハイセキュリティモード
highSecurity要素はconfiguration要素の子です。高セキュリティ モードを有効にするには、このプロパティをtrueに設定し、New Relic ユーザー インターフェイスで高セキュリティ プロパティを有効にします。高度なセキュリティを有効にすると、SSL が有効になります。リクエストパラメータ、カスタムパラメータ、HTTPリクエストヘッダーは収集されません。例外メッセージの削除が有効になっています。また、クエリをそのままの形式で New Relic に送信することはできません。
例外メッセージの除去
stripExceptionMessages要素はconfiguration要素の子です。例外メッセージの除去を有効にするには、このプロパティをtrueに設定します。デフォルトでは、これは false に設定されています。これは、エージェントがすべての例外からのメッセージを New Relic コレクターに送信することを意味します。高セキュリティ モードを有効にすると、これは自動的に true に変更され、エージェントは例外からメッセージを削除します。
Transactionイベント
transactionEvents要素はconfiguration要素の子です。 transactionEventsを使用してトランザクションイベントを構成します。
<transactionEvents enabled="true" maximumSamplesStored="10000"> <attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include> </attributes></transactionEvents>transactionEvents要素は次の属性をサポートします。
カスタムイベント
customEvents要素はconfiguration要素の子です。 customEventsを使用してカスタムイベントを構成します。
<customEvents enabled="true" maximumSamplesStored="10000"/>customEvents要素は次の属性をサポートします。
カスタムパラメータ
customParameters要素はconfiguration要素の子です。 customParametersを使用してカスタムパラメータを設定します。
<customParameters enabled="true" />customParameters要素は次の属性をサポートします。
ラベル(タグ)
labels要素はconfiguration要素の子です。
これにより、 タグの名前と値が設定されます。このリストは、コロンで区切られた名前と値のペアのセミコロン区切りのリストです。 NEW_RELIC_LABELS環境変数と一緒に使用することもできます。例:
<labels>foo:bar;zip:zap</labels>NEW_RELIC_LABELS="foo:bar;zip:zap"ブラウザのインストゥルメンテーション
browserMonitoring要素はconfiguration要素の子です。 browserMonitoring .NET アプリケーションでを構成します。 browserエンドユーザーのパフォーマンス体験をインサイトに提供します。 これは、各ページのヘッダーとフッターに少量の JavaScript コードを挿入することにより、ユーザーのブラウザーが Web ページをダウンロードしてレンダリングするのにかかる時間を測定することで実現されます。
// If you use both the Exclude and Attribute elements// the Exclude element must be listed first.<browserMonitoring autoInstrument="true"> <requestPathsExcluded> <path regex="url-regex-1"/> <path regex="url-regex-2"/> ... <path regex="url-regex-n"/> </requestPathsExcluded> <attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include> </attributes></browserMonitoring>browserMonitoring要素は次の属性をサポートします。
Browser拡張機能は環境変数を介して有効化または無効化することもできます:
NEW_RELIC_BROWSER_MONITORING_AUTO_INSTRUMENT= true | 1 | false | 0問い合わせの遅さ
slowSql要素はconfiguration要素の子です。 slowSqlは、遅いクエリ実行に関する情報のキャプチャを構成し、これらのクエリの説明プランをキャプチャして難読化します。
<slowSql enabled="true"/>slowSql要素は次の属性をサポートします。
トランザクショントレース
transactionTracer要素はconfiguration要素の子です。 transactionTracerはトランザクショントレースを構成します。トレースには、発行されたクエリステートメントを含む、トランザクションの正確な呼び出しシーケンスが含まれます。
<transactionTracer enabled="true" transactionThreshold="apdex_f" recordSql="obfuscated" explainEnabled="true" explainThreshold="500" maxSegments="3000" maxExplainPlans="20" sqlMetadataCommentsEnabled="false"> <attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include> </attributes> </transactionTracer>transactionTracer要素は次の属性をサポートします。
データストアトレーサー
datastoreTracer要素はconfiguration要素の子です。
<datastoreTracer> <instanceReporting enabled="true" /> <databaseNameReporting enabled="true" /> <queryParameters enabled="false" /></datastoreTracer>datastoreTracer要素は、次のサブ要素をサポートします。
ディストリビューティッド(分散)トレーシング
distributedTracing要素はconfiguration要素の子です。
<distributedTracing enabled="true" excludeNewrelicHeader="false"/>ディストリビューティッド(分散)トレーシングを使用すると、リクエストが分散システム内を移動するときにたどるパスを確認できます。 .NET エージェント バージョン 8.6.45.0 以降が必要で、.NET エージェント 9.0.0.0 以降ではデフォルトで有効になります。
重要
分散トレースを有効にすると、クロスアプリケーショントレースが無効になり、APM機能に他の影響があります。有効にする前に、計画ガイドをお読みください。
分散トレースの設定の詳細については、「。 NETアプリケーションの分散トレースを有効にする」を参照してください。
distributedTracing要素は次の属性をサポートします。
サンプラーの設定
重要
サンプラー設定は、.NET エージェント バージョン 10.45.0 以降で利用可能です。
.NET エージェントは現在、ディストリビューティッド(分散)トレーシングで使用するために構成できる 4 つの異なるサンプリング アルゴリズムをサポートしています。
Sampler Type | Description |
|---|---|
アダプティブサンプラー | .NET エージェントによって使用される元のサンプリング アルゴリズムで、デフォルトで有効になっています。サンプリングの決定はランダムに行われ、サンプリング期間ごとに設定された数のサンプルを保持することを目指します。 |
トレース ID 比率ベースのサンプラー | (ランダムに生成された) トレース ID に基づいて、構成された割合のトレースをサンプリングする、オープン テレメトリー トレース ID 比率ベースのサンプラーの実装。 |
常時オンサンプラー | 名前が示すように、このサンプラーはすべてのトレースをサンプリングします。このサンプラーを有効にすると、アプリケーションのパフォーマンスに影響があり、データの取り込みが増加する可能性があることに注意してください。 |
常にオフのサンプラー | Always On の反対。このサンプラーはトレースをサンプリングしません。非常に特殊なケースで役立ちます。 |
サポートされているサンプラーは複数のレベルで構成できます。
Sampler Level | Description |
|---|---|
ルート | これは、トレースの開始時に適用されるサンプラーです。デフォルトでは、アダプティブ サンプラーはルート サンプラーとして構成されています。 |
リモート親サンプル | これは、トレースにサンプリングされたリモート ペアレント (つまり、アップストリーム サービスで発生したトレース) がある場合に適用されるサンプラーです。たとえば、Always On サンプラーを使用して、現在のアプリケーション内のすべてのトレースがサンプリングされるように構成できます。 |
リモート親はサンプリングされません | これは、トレースにサンプリングされなかったリモート ペアレント (つまり、アップストリーム サービスで発生したトレース) がある場合に適用されるサンプラーです。 |
<sampler>設定要素は<distributedTracing>要素の子であり、次のように構成されます。
<distributedTracing ... > <sampler> <root> <!-- sampler type --> </root> <remoteParentSampled> <!-- sampler type --> </remoteParentSampled> <remoteParentNotSampled> <!-- sampler type --> </remoteParentNotSampled> </sampler></distributedTracing>各サンプラー レベルに対して、次のいずれかのサンプラー設定を指定できます。
<default /> <!-- default is a synonym for <adaptive /> --><adaptive /><traceIdRatioBased ratio="0.12" /><alwaysOn /><alwaysOff /><traceIdRatioBased>要素には必須のratio属性があり、これはサンプリングするトレースの割合を指定する0.0から1.0までの値です。
重要
特定のサンプラー レベルで設定が指定されていない場合、またはそのレベルの設定要素がまったく指定されていない場合は、 Adaptive Samplerが使用されます。
次の環境変数を使用して、サンプラー タイプに可能な値の 1 つを指定して、さまざまなサンプラー レベルでディストリビューティッド(分散)トレーシング サンプラーを構成できます。
NEW_RELIC_DISTRIBUTED_TRACING_SAMPLER_ROOT = default | adaptive | traceIdRatioBased | alwaysOn | alwaysOffNEW_RELIC_DISTRIBUTED_TRACING_SAMPLER_REMOTE_PARENT_SAMPLED = default | adaptive | traceIdRatioBased | alwaysOn | alwaysOffNEW_RELIC_DISTRIBUTED_TRACING_SAMPLER_REMOTE_PARENT_NOT_SAMPLED = default | adaptive | traceIdRatioBased | alwaysOn | alwaysOffこれらの環境変数のいずれかの値としてtraceIdRatioBasedが指定されている場合は、同じサンプラー レベルに対して比率を指定するための対応する環境変数も必要です。
NEW_RELIC_DISTRIBUTED_TRACING_SAMPLER_ROOT_TRACE_ID_RATIO_BASED_RATIO = 0.12NEW_RELIC_DISTRIBUTED_TRACING_SAMPLER_REMOTE_PARENT_SAMPLED_TRACE_ID_RATIO_BASED_RATIO = 0.12NEW_RELIC_DISTRIBUTED_TRACING_SAMPLER_REMOTE_PARENT_NOT_SAMPLED_TRACE_ID_RATIO_BASED_RATIO = 0.12スパンイベントレポート
分散型トレーシングはスパンイベントを報告します。スパンイベントのレポートはデフォルトで有効ですが、 ディストリビュートトレース スパンをレポートするためには有効にする必要があります。スパンイベントを無効にするには、次のいずれかのオプションを選択します。
無限のトレース
Infinite Tracing は、 エージェントの外部にあるトレース オブザーバーを採用することで、分散トレース サービスを拡張します。さまざまなサービスでアプリケーション トレースを 100% 監視し、実用的なデータを提供するため、問題をより迅速に解決できます。
Infinite Tracingを有効にするには、 .NET エージェントのバージョンが 8.30 以降であることを確認し、分散トレースを有効にします。次に、次の追加設定を追加します。
<configuration . . . > <distributedTracing enabled="true" /> <infiniteTracing> <trace_observer host="YOUR_TRACE_OBSERVER_HOST" /> </infiniteTracing></configuration>重要
無限トレーススパンは、 transactionTracer.maxSegments設定によって制限できます。
infiniteTracing要素は次の要素をサポートします。
クロスアプリケーショントレース
crossApplicationTracer要素はconfiguration要素の子です。 crossApplicationTracerは、アプリケーション間でトランザクショントレースをリンクします。サービス指向アーキテクチャーでリンクされると、HTTPを介して相互に通信するすべてのインストルメント化されたアプリケーションは、トランザクショントレースを、それらが呼び出すアプリケーションおよびそれらが呼び出されるアプリケーションと「リンク」するようになります。クロスアプリケーショントレースを使用すると、サービスとアプリケーション間のパフォーマンスの関係を簡単に理解できます。
重要
クロスアプリケーション トレースは、エージェント v9.0.0 の時点で非推奨となり、デフォルトで無効になっています。 将来のエージェントのバージョンでは削除される予定です。 エージェントの v9 以降で CAT を使用するには、 crossApplicationTracer.enabled = trueとdistributedTracing.enabled = falseの両方を設定する必要があります。 ディストリビューティッド(分散)トレーシングを有効にすると、クロスアプリケーション トレーシングが無効になります。
<crossApplicationTracer enabled="true"/>crossApplicationTracer要素は次の属性をサポートします。
スパンイベント
spanEvents要素はconfiguration要素の子です。 spanEventsを使用してスパンイベントを構成します。
<spanEvents enabled="true"> <attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include> </attributes></spanEvents>spanEvents要素は次の属性をサポートします。
HTTPリクエストヘッダの取得
allowAllHeaders要素はconfiguration要素の子です。これをtrueに設定して、.NET エージェントがすべての HTTP 要求ヘッダーをキャプチャーし、それらをrequest.headers.{http-header-name}属性として SpanおよびTransactionイベントに適用できるようにします。これをfalseに設定すると、.NET エージェントのみが次の HTTP 要求ヘッダーを収集できるようになります:
request.headers.refererrequest.headers.acceptrequest.headers.content-lengthrequest.headers.hostrequest.headers.user-agent
重要
allowAllHeaders設定は、.NETAgentバージョン8.40.0以降でのみ使用できます。 allowAllHeadersを使用して属性をキャプチャする場合、キャプチャされたリクエストヘッダー属性は、ルートレベルと宛先レベルの属性設定によって引き続き制御されます。 attributes要素の下のincludeリストにrequest.header.*を設定しなくても(以下を参照)、.NETエージェントはすべてのヘッダー属性を除外します。デフォルトのnewrelic.configは、 request.header.*を含むように設定されています。
<allowAllHeaders enabled="true" /><attributes enabled="true"> <include>request.headers.*</include> ...</attributes>デフォルトのnewrelic.configは、.NETエージェントが不要なデータを収集しないように、次のHTTPリクエストヘッダーを明示的に除外するようにも設定されています。
<attributes enabled="true"> <exclude>request.headers.cookie</exclude> <exclude>request.headers.authorization</exclude> <exclude>request.headers.proxy-authorization</exclude> <exclude>request.headers.x-*</exclude></attributes>アプリケーションログ
重要
これらの構成オプションは、.NET エージェント バージョン 9.7.1 以降でのみ使用できます。コンテキスト データ (カスタム属性) に関連するオプションは、.NET エージェント バージョン 10.4.0 以降でのみ使用できます。
applicationLogging要素はconfiguration要素の子です。 applicationLoggingを使用して、アプリケーションのロギングアクティビティのインストルメンテーションを構成します。
3つの主要なサブ機能があります。
メトリック:ハーベストサイクルごとに書き込まれるログ行の総数(
Logging/lines)、および特定のログレベル(たとえば、Logging/lines/ERROR)で書き込まれるログ行の数に関するメトリックを収集します。ログ転送:有効にすると、エージェントはログデータをキャプチャしてNewRelicに送信します。
- コンテキスト データ (
AddCustomAttribute経由): 有効にすると、エージェントはカスタム ログ属性をキャプチャして転送します。include要素とexclude要素は、他のエージェント属性設定と同じルールに従って、含めるか除外する属性名のカンマ区切りのリストです。デフォルトでは両方とも空であるため、すべてのログ コンテキスト データがキャプチャされて転送されます。 - ログレベルのフィルタリング: カンマ区切りのリストで 1 つ以上のログ レベルを設定すると、エージェントはそれらのレベルのメッセージがキャプチャされ、転送されるのを防ぎます。
- ラベル: 有効にすると、エージェントはエージェント転送ログにカスタム ラベルを追加します。 大文字と小文字を区別しない、カンマで区切られたラベル名のリストである
exclude属性を使用できます。 デフォルトでは、exclude属性が空の場合、エージェントはカスタム ラベルを追加します。
- コンテキスト データ (
ローカルログデコレーション:有効にすると、既存のログは、エラーなどの他のNewRelicデータとログをリンクするメタデータでデコレーションされます。
詳細については、コンテキストでの .NET エージェント ログの使用に関するドキュメントを参照してください。
<applicationLogging enabled="true"> <metrics enabled="true" /> <forwarding enabled="true" maxSamplesStored="10000" logLevelDenyList=""> <contextData enabled="false" include="" exclude="" /> <labels enabled="false" exclude="" /> </forwarding> <localDecorating enabled="false" /></applicationLogging>これらの機能は、環境変数を介して構成することもできます。
NEW_RELIC_APPLICATION_LOGGING_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_METRICS_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_INCLUDE="myCustomAttribute1, myOtherCustomAttribute*"NEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_EXCLUDE="myCustomAttribute2, myOtherCustomAttributeMoreSpecificName"NEW_RELIC_APPLICATION_LOGGING_FORWARDING_MAX_SAMPLES_STORED=10000NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LOG_LEVEL_DENYLIST="debug, warn"NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LABELS_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_LABELS_EXCLUDE="label1, label2"NEW_RELIC_APPLICATION_LOGGING_LOCAL_DECORATING_ENABLED=trueapplicationLogging要素は、次の属性とサブ要素をサポートします。
コードレベルの指標
codeLevelMetrics要素はconfiguration要素の子です。 codeLevelMetricsを使用して、スパンイベントの属性としてキャプチャされた追加のインストルメント化されたメソッドメタデータを介してCodeStreamでコードレベルのメトリックサポートを有効にします。
詳細については、 NewRelicCodeStreamの統合に関するドキュメントを参照してください。
<codeLevelMetrics enabled="true" />これは、環境変数を介して構成することもできます。
NEW_RELIC_CODE_LEVEL_METRICS_ENABLED=trueクラウドプロバイダーのメタデータ
cloud要素はconfiguration要素の子です。 cloud使用して、アプリケーションのクラウド プロバイダー メタデータを構成します。
cloud要素は、次のサブ要素をサポートします。
AIモニタリング
デフォルトでは、AI モニタリングは無効になっています。 AI モニタリングを有効にするには、 aiMonitoring要素でenabled属性をtrueに設定します。 aiMonitoring要素はconfiguration要素の子です。
重要
AI モニタリングを有効にすると、モニタリング対象として選択したモデルとの間で送受信される入力と出力のストリーミング コピー (そこに含まれる個人情報も含む) が記録されます。 AIモニタリングを使用する場合、AIモニタリング機能を提供する目的でモデルユーザーのインタラクションが第三者(New Relic)によって記録される可能性があることについて、モデルユーザーから同意を得る責任があります。
<aiMonitoring enabled="true" />これは、環境変数を介して構成することもできます。
NEW_RELIC_AI_MONITORING_ENABLED=trueaiMonitoring要素は、次のサブ要素をサポートします。
Kafkaメトリクス
The kafka element is a child of the configuration element. Use kafka to configure the Kafka metrics that the agent collects from your application's Kafka producers and consumers.
Supported in .NET agent v10.55.0 and higher.
The kafka element supports the metrics sub-element. All attributes of metrics are optional.
<kafka> <metrics debugEnabled="true" interval="30" clusterMetricsEnabled="true" /></kafka>You can also configure these attributes with environment variables:
NEW_RELIC_KAFKA_METRICS_DEBUG_ENABLED=trueNEW_RELIC_KAFKA_METRICS_INTERVAL=30NEW_RELIC_KAFKA_METRICS_CLUSTER_METRICS_ENABLED=trueThe metrics sub-element supports the following attributes:
app.configまたはweb.configでの設定
ASP.NETおよび.NETFrameworkコンソールアプリの場合、アプリのapp.configまたはweb.configの最も外側の要素である<configuration>で次の設定を構成することもできます。
appsettings.jsonでの設定
.NET Coreアプリの場合、次の条件が当てはまる場合は、 appsettings.jsonで次の設定を構成できます。
appsettings.jsonファイルは、アプリケーションの現在の作業ディレクトリにある必要があります。このアプリケーションには、以下の依存関係が必要です。
重要
ASP.NET Core アプリの場合、 ASPNETCORE_ENVIRONMENT変数を設定すると、.NET エージェントはappsettings.{environment}.jsonから読み取ります。