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=true
New 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
要素はNewRelicのロギングを設定します。エージェントは独自のログファイルを生成して、そのログ情報をアプリケーションのログとは別に保持します。
<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
属性が含まれています。
重要
これは、 configuration
要素の子であるapplication
(構成)要素と同じではありません。
<instrumentation> <applications> <application name="MyService1.exe" /> <application name="MyService2.exe" /> <application name="MyService3.exe" /> </applications></instrumentation>
属性要素
属性は、イベントまたはトランザクションのプロパティを決定するキー値のペアです。 各属性は、 APMトランザクション トレース、 APMエラー トレース、Transaction
イベント、TransactionError
イベント、または PageView
イベントに送信されます。 プライマリattributes
要素は、.NET エージェントの属性収集を有効または無効にし、収集または除外する特定の属性を定義します。 また、宛先に基づいてプロパティ設定を構成することもできます:エラー収集、タグトレース、 browserインストゥルメンテーション、トランザクションイベント。
この例では、エージェントはキーが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モニタリング
アプリ・プール
重要
これは、システムの グローバルコンフィグファイル にのみ適用されます。
重要
この設定は、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
要素は次の属性をサポートします。
問い合わせの遅さ
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"> <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="false" excludeNewrelicHeader="false"/>
分散トレースを使用すると、リクエストが分散システムを通過するときにたどるパスを確認できます。.NETエージェントバージョン8.6.45.0以降が必要であり、.NETエージェント9.0.0.0以降ではデフォルトでオンになっています。
重要
分散トレースを有効にすると、クロスアプリケーショントレースが無効になり、APM機能に他の影響があります。有効にする前に、計画ガイドをお読みください。
分散トレースの設定の詳細については、「。 NETアプリケーションの分散トレースを有効にする」を参照してください。
distributedTracing
要素は次の属性をサポートします。
分散型トレーシングはスパンイベントを報告します。スパンイベントのレポートはデフォルトで有効ですが、 ディストリビュートトレース スパンをレポートするためには有効にする必要があります。スパンイベントを無効にするには、次のいずれかのオプションを選択します。
無限のトレース
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.referer
request.headers.accept
request.headers.content-length
request.headers.host
request.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=true
applicationLogging
要素は、次の属性とサブ要素をサポートします。
コードレベルの指標
codeLevelMetrics
要素はconfiguration
要素の子です。 codeLevelMetrics
を使用して、スパンイベントの属性としてキャプチャされた追加のインストルメント化されたメソッドメタデータを介してCodeStreamでコードレベルのメトリックサポートを有効にします。
詳細については、 NewRelicCodeStreamの統合に関するドキュメントを参照してください。
<codeLevelMetrics enabled="true" />
これは、環境変数を介して構成することもできます。
NEW_RELIC_CODE_LEVEL_METRICS_ENABLED=true
AIモニタリング
デフォルトでは、AI モニタリングは無効になっています。 AI モニタリングを有効にするには、 aiMonitoring
要素でenabled
属性をtrue
に設定します。 aiMonitoring
要素はconfiguration
要素の子です。
<aiMonitoring enabled="true" />
これは、環境変数を介して構成することもできます。
NEW_RELIC_AI_MONITORING_ENABLED=true
aiMonitoring
要素は、次のサブ要素をサポートします。
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
から読み取ります。