.NET エージェントの API

New Relic .NET エージェント API は、カスタムエラーレポート、メトリックレポート、トランザクションパラメーターをサポートしています。これらの機能を持つライブラリを使うには、プロジェクトに NewRelic.Api.Agent.dll への参照を追加してください。エージェントがインストールされていなかったり、無効になっている場合は、API のメソッド呼び出しを行っても、何も起きません。

メソッド

RecordMetric(System.String,System.Single)
指定された名前のメトリック値を記録します。記録したカスタムメメトリクスを表示するには、カスタムダッシュボードを作成します。

メモ: カスタムメトリックを作成する際に付ける名前は、Custom/ から始めてください。 (例: Custom/MyMetric)

パラメーター:

  • name: メトリック名。先頭 1000 文字のみ有効。最初は、Custom/ とすること。 (例: Custom/MyMetric)
  • value: レスポンスタイム。ミリ秒単位。

:

Stopwatch stopWatch = Stopwatch.StartNew();
System.Threading.Thread.Sleep(5000);
stopWatch.Stop();
NewRelic.Api.Agent.NewRelic.RecordMetric("Custom/DEMO_Record_Metric", stopWatch.ElapsedMilliseconds);
RecordCustomEvent(String, IEnumerable<KeyValuePair<String, Object>>)
指定された名前と属性と共にカスタムイベントを記録します。

パラメーター:

  • eventType: イベントタイプの名前。この名前の制限については、文字列の制約と制限予約語 をご覧ください。
  • attributes: カスタムイベントの属性を含んだ KeyValuePairs の IEnumerable

:

var eventAttributes = new Dictionary<String, Object>{{"foo", "bar"},{"baz", 1}};
NewRelic.Api.Agent.NewRelic.RecordCustomEvent('MyCustomEvent', eventAttributes);
メモ:
たくさんのイベントを送信すると、エージェントのメモリオーバーヘッドが増大します。また、1MB より大きいPost リクエストはイベントの最大数に関係なくの記録されません。
RecordResponseTimeMetric(System.String,System.Int64)
指定されたメトリック名のレスポンスタイム(ミリ秒単位)を記録します。カスタムダッシュボードでは、すべてのアプリケーションタイプを表示できます。

パラメーター:

  • name: レスポンスタイムを表すメトリック名。先頭 1000 文字のみ有効。
  • value: レスポンスタイム。単位:ミリ秒。

:

Stopwatch stopWatch = Stopwatch.StartNew();
System.Threading.Thread.Sleep(5000);
stopWatch.Stop();
NewRelic.Api.Agent.NewRelic.RecordResponseTimeMetric("Custom/DEMO_Record_Response_Time_Metric", stopWatch.ElapsedMilliseconds);
IncrementCounter(System.String)
指定された名前用のメトリックカウンタをインクリメントします。カスタムダッシュボードを介して、すべてのアプリケーションタイプをサポートしています。

パラメーター:

name: インクリメントする対象のメトリック名。先頭 1000 文字のみ有効。

:

NewRelic.Api.Agent.NewRelic.IncrementCounter("IncrementCounter");
NoticeError(System.Exception)
例外によって識別されるエラーを通知し、New Relic のサービスに報告します。このメソッドがトランザクション内で呼び出された場合は、終了時に例外がトランザクションに報告されます。トランザクションの外で呼び出された場合は、トレースエラーが作成され、New Relic サービスに報告されます。トランザクションの実行中は、NoticeError への最初の呼び出しに使う 例外/パラメータのペアだけが、保持されています。

すべてのアプリケーションタイプをサポートしています。

パラメーター:

exception: 報告する例外。例外情報が大きすぎるため、レポートできなくなるのを防ぐため、例外情報の一部のみを保持することもあります。
:

try
{
  var ImNotABool = "43";
  bool.Parse(ImNotABool);
}
catch (Exception ex)
{
  NewRelic.Api.Agent.NewRelic.NoticeError(ex);
}
AddCustomParameter(System.String,System.IConvertible)
現在のトランザクションに キー/値 ペアを追加します。このペアは、エラーやトランザクショントレースでもレポートされます。64以下のユーザーパラメーターであれば、トランザクションごとに追加可能です。この API メソッドを呼び出すたびに、1 ユーザーパラメーターとしてカウントされます。Web アプリケーションのみをサポートしています。

Insights でカスタムパラメータ/属性を使用している場合は、名前を付けるた際は 予約語に含まれる語は使用しないでください。

パラメーター:

  • key: トランザクションパラメーターに追加するキー名。先頭 1000 文字のみ有効。
  • value: 現在のトランザクションに追加する値。数値として記録するには(例えば、min()max()histogram() のような数値を返す Insights の関数を使うには)、値を Single に変換してください。その他の値は文字列に変換されます。

例:

NewRelic.Api.Agent.NewRelic.AddCustomParameter("UserGuid", 1234);

クーポンコード(文字列)とアイテムIDコード(Single 番号)の属性を記録するには、以下のように親メソッドを使うこともできます。

NewRelic.Api.Agent.AddCustomParameter("Discount Code", "Summer Super Sale");
NewRelic.Api.Agent.AddCustomParameter("Item Code", (Single)31456);
AddCustomParameter(System.String,System.String)
現在のトランザクションに キー/値 ペアを追加します。エラーやトランザクショントレースに記録されます。各トランザクションには、64 以下のユーザーパラメーターを追加可能です。この API メソッドを呼び出すたびに、1 ユーザーパラメーターとしてカウントされます。Web アプリケーションのみをサポートしています。

Insights でカスタムパラメーター/属性を使用している場合は、名前を付けるた際は 予約語に含まれる語は使用しないでください。

パラメーター:

  • key: トランザクションパラメーターに追加するキー名。先頭 1000 文字のみ有効。
  • value: 現在のトランザクションに追加する文字列の値。先頭 1000 文字のみ有効。

:

NewRelic.Api.Agent.NewRelic.AddCustomParameter("UserName", "User Name");
SetTransactionName(System.String,System.String)
現在のトランザクションの名前。Web アプリケーションのみサポート。

パラメーター:

  • category: このトランザクションのカテゴリー。
    トランザクションの種類を区別するために使用します。デフォルトは、Custom です。先頭 1000 文字のみ有効。
  • name: スラッシュで始まるトランザクション名。例: /store/order。先頭 1000 文字のみ有効。

:

NewRelic.Api.Agent.NewRelic.SetTransactionName("Other", "MyTransaction");
IgnoreTransaction

現在処理中のトランザクションを無視します。Web アプリケーションのみをサポート。また、カスタム計測ファイルを使用してトランザクションを無視することもできます。

:

NewRelic.Api.Agent.NewRelic.IgnoreTransaction();
GetBrowserTimingHeader

リアルユーザー監視を有効にする HTML スニペットを返します。HTML のヘッダーに追加します。この HTML は、小さな JavaScript ファイルを取得し、ページのタイマーを開始するようにブラウザに指示します。Web アプリケーションのみサポート。

戻り値: ページヘッダーに組み込む HTML 文字列。

aspx における例

<html>
  <head>
    <%= NewRelic.Api.Agent.NewRelic.GetBrowserTimingHeader()%>
  </head>
  <body>
  ...

Razor における例

<!DOCTYPE html>
<html lang="en">
  <head>
    @Html.Raw(NewRelic.Api.Agent.NewRelic.GetBrowserTimingHeader())
    ...
  </head>
  <body>
  ...
バージョン 2.20.24.0 以降の .NET エージェントでは、ページ読み込みタイミング(別名:リアルユーザー監視、RUM)用のフッターには、不要になりました。これを呼び出しても効果はありません。

2.20.24.0 より前のバージョンでは、ページ読み込みタイミングを有効にする HTML スニペットを返しました。これは、HTML のフッターに追加されることを想定しています。Web アプリケーションのみサポート。

戻り値: HTML の下部に組み込まれることを想定した HTML 文字列。

aspx における例

  ...
  <%= NewRelic.Api.Agent.NewRelic.GetBrowserTimingFooter()%>
  </body>
</html>

Razor における例

  ...
  @Html.Raw(NewRelic.Api.Agent.NewRelic.GetBrowserTimingFooter()) 
  </body>
<html>
DisableBrowserMonitoring(System.Boolean)
特定のページへのブラウザ監視スクリプトの自動挿入を無効にします。Web アプリケーションのみサポート。ページ読み込みタイミングを計測したくないページに、この呼び出しを追加します。

推奨: 無効にしたいビューのできるだけ先頭に、このAPIコールを入れてください。

パラメーター:

overrideManual (オプション):
RUM スクリプトの組み込みの全てを無効にするには、このフラグを設定します。手動、自動 RUM 組み込みの両方とも動作します。使用した場合、GetBrowserTimingHeaderGetBrowserTimingFooter の API 呼び出しを上書きします。

例:

NewRelic.Api.Agent.NewRelic.DisableBrowserMonitoring();
SetUserParameters(System.String,System.String,System.String)
現在の Web トランザクションに、ページ読み込みタイミング(リアルユーザー監視、RUM とも呼ぶ)の JavaScript フッターに関連付けるユーザー名、アカウント名、製品名を設定します。現在のWebトランザクションのためにを設定します。Web アプリケーションのみサポート。

パラメーター:

  • userName: 現在のアプリケーションのコンテキスト上に意味をもつ現在のユーザーの User Name または名前。
  • accountName: 現在のアプリケーションのコンテキスト上に意味をもつアカウント名。
  • productName: 現在のアプリケーションのコンテキスト上に意味をもつ製品名。

:

NewRelic.Api.Agent.NewRelic.SetUserParameters("MyUserName", "MyAccountName", "MyProductName");
StartAgent()
まだ開始されていない場合は、エージェントを起動します。

メモ: autoStart 設定オプション が無効になっていない限り、エージェントは、最初に計測対象のメソッドにヒットした際に、自動的にエージェントは開始します。

メモ: syncStartupsendDataOnExit オプションが有効でない場合、このメソッドは、非同期エージェントを起動します(つまり、ブロックされません)。

:

NewRelic.Api.Agent.NewRelic.StartAgent();
SetApplicationName(System.String, System.String,System.String)

New Relic にレポートされるアプリケーション名(複数可)を更新します。アプリケーションの名前付けについては、.NET アプリケーションの名前付をご覧ください。

メモ:
アプリケーション名を更新すると、エージェントは強制的に再起動されます。以前のアプリケーション名のもとで集めたデータが、New Relic にまだ送信されていない場合は、そのデータは破棄されます。

パラメーター:

  • applicationName: 使用するアプリケーション名。
  • applicationName2: ロールアップで使う2番目のアプリケーション名。オプション。
  • applicationName3: ロールアップで使う3番目のアプリケーション名。オプション。

:

NewRelic.Api.Agent.NewRelic.SetApplicationName("MyFirstApplication", "MyApplications");

さらに詳しい情報

追加のドキュメントリソースは次のとおりです。