Unity SDK API

New Relic Unity SDK API を使うと、細かい設定やプラグインが標準で行う以外の計測を行えるようになります。

SDK のインストール

New Relic Mobile 用の現在の SDK が、正常にアプリを計測していることを計測のインストール手順に従って確認します。

インタラクションの生成と完了

インタラクションを開始する方法は以下のとおりです。

string interactionIdentifier = NewRelicAgent.StartInteractionWithName("new interaction");

インタラクションを停止する方法は以下のとおりです。

NewRelicAgent.StopCurrentInteraction(interactionIdentifier);

インタラクションはメソッドトレースと合わせて動作します。トレースするメソッドの開始点にstartTracingMethod を追加し、終了時点に endTracingMethodWithTimer を追加します。

メソッドのトレースを開始する方法は以下のとおりです。

Timer methodTimer = new Timer();
NewRelicAgent.StartTracingMethod("MethodName","ClassName",methodTimer,NewRelicAgent.NRTraceType.None);

メソッドのトレースを終了するには、以下のように startTracingMethod と同じタイマーを追加します。

NewRelicAgent.EndTracingMethodWithTimer(methodTimer);

独自のビルド識別子の設定

独自のビルド識別子は、New Relic Agent (Script) 設定の下にある NewRelicAgent のゲームオブジェクトのインスペクター欄のApplication Build に設定できます。

デモ用クラッシュの実行

プロジェクトがクラッシュするという問題を抱えているならば、New Relic Unity プラグインは、デモでクラッシュさせる API を提供しています。

New Relic は、利用可能であれば、ボタンクリックのイベントハンドラーに以下のコードを追加することを推奨しています。

NewRelicAgent.CrashNow("message")

カスタムメトリクスの記録

カスタムメトリックの API を使えば、任意の数値データと名前付きイベントを記録できます。カスタムメトリクスは、アプリケーションに固有の高いレベルのイベントの追跡に便利です。

複数の API を利用すると様々なレベルのカスタムメトリクスを記録できます。カスタムメトリックを生成する手順は、以下のとおりです。

NewRelicAgent.RecordMetricWithName(String name, String category)

name パラメーターは、New Relic Mobile UI に表示されるメトリック名です。メトリックを最大限に活用するには、明確、簡潔な名前を設定してください。。

カスタムメトリック名の名前付けのガイドラインは以下のとおりです。

  • 文字と空白を使用して、識別しやすい名前にしてください。メトリック名はそのままで表示されます。
  • 大文字を使う。
  • / ] [ | * などの記号を使うのを避ける。
  • マルチバイトの文字の利用を避ける。

カスタムメトリックにもっと細かい指定を行いたい場合は、以下の三つの API を使用します。

NewRelicAgent.RecordMetricWithName(String name, String category, double value)

NewRelicAgent.RecordMetricWithName(string name, string category, double value, string valueUnits)

NewRelicAgent.RecordMetricWithName(string name, string category, double value, string valueUnits, string countUnits)

上記のメソッドは、以下の情報を記録できます。

パラメーター 説明
count イベントの発生回数
totalValue 記録の合計値
exclusiveValue 記録の排他値。例えば、他の場所で計測された測定値が合計値に含まれる場合
countUnit メトリック数の測定単位。PERCENT, BYTESSECONDSBYTES_PER_SECONDOPERATIONS
valueUnit メトリック値の測定単位。PERCENTBYTESSECONDSBYTES_PER_SECONDOPERATIONS

収集したカスタムメトリクスを確認するには、標準の手順であるカスタムダッシュボードの作成をご覧ください。

Insihgts へカスタムイベントやカスタム属性の送信

SDK は、最大 64 ユーザー定義属性まで一度に保存できます。64属性を超えると、SKD は、false を返します。

NewRelicAgent 名前空間にある以下の静的なメソッドを使うと、New Relic Insights へカスタム属性やカスタムイベントを送信できます。メソッドは、成功した場合は、true を返します。完了しなかった場合は、false を返します。

以下のメソッドは、カスタム属性やカスタムイベントで役にたつメソッドです。

RecordEvent (name, attributes)
NewRelicAgent.RecordEvent (string name, string dictionary attributes)

Insights のカスタムイベントを記録します。マップとして属性のリストをしていできます。

SetAttribute (name, value)
NewRelicAgent.SetAttribute (string name, string value)
NewRelicAgent.SetAttribute (string name, double value)

名前と文字列または float の値を指定して属性を追加できます。SetAttribute は、同じ名前が指定された場合は、上書きします。

Examples

boolean attributeSet = NewRelicAgent.SetAttribute(“username”, “SampleUserName”);
boolean attributeSet = NewRelicAgent.SetAttribute("rate", 9999.99);
IncrementAttribute (name [, value])
public static boolean IncrementAttribute(String name);
public static boolean incrementAttribute(String name, double value)

値を指定しない場合、このメソッドは、指定した属性のカウントを1増やします。属性が存在しない場合は、1 の値を持つ属性を作成します。

値を指定した場合は、指定数分、属性の数値を増やします。

boolean incremented = NewRelicAgent.IncrementAttribute("rate");
boolean incremented = NewRelicAgent.IncrementAttribute("rate", 9999.99, false);
RemoveAttribute (name)
NewRelicAgent.RemoveAttribute(String name)

指定した属性を削除します。

boolean attributeRemoved = NewRelicAgent.RemoveAttribute("rate");
removeAllAttributes
NewRelicAgent.removeAllAttributes()

セッションから全属性を削除します。

boolean attributesRemoved = NewRelicAgent.RemoveAllAttributes();

独自のネットワークリクエストを追跡

New Relic Mobile の API には、ネットワーク・リクエストやネットワーク障害追跡用のメソッドがあります。例えば、noticeHttpTransaction ファミリーのメソッドを使うと、様々なレベルのデータを含む HTTP トランザクションを記録できます。ネットワーク・リクエストが失敗した場合は、noticeNetworkFailure に失敗に関する情報が記録できます。

NoticeNetworkRequest
NewRelicAgent.NoticeNetworkRequest ("http://newrelic.com", "GET", timer, null, 200, 1024, 8192, bytes, httpParameters);
パラメーター 説明
url リクエストの URL
httpMethod 利用している HTTP メソッド。 GET や POST。
statusCode HTTP レスポンスのステータスコード。OK の場合、200など
timer ネットワーク・リクエスト開始時点で作成したタイマー
bytesSent 送信したリクエストのバイト数
bytesReceived 受信したレスポンスのバイト数
responseBody HTTP レスポンスのボディ。HTTP トランザクションがエラーの場合、レスポンスボディは捨てられ、HTTP Error メトリックが含まれます。
params HTTP トランザクションがエラーの場合、HTTP Error メトリックに含まれているパラメーター。
NoticeNetworkFailure
NewRelicAgent.NoticeNetworkFailure(String url, String httpMethod, Timer timer, NewRelicAgent.NetworkFailureCode failureCode, String message)
パラメーター 説明
url リクエストの URL
httpMethod 利用する HTTP メソッド。GET や POST。
timer ネットワーク・リクエスト開始時点で作成したタイマー
exception 発生した例外。New Relic Mobile は、自動的に多くの一般的な例外をネットワーク障害のタイプに振り分けます。
failure 発生したネットワーク障害のタイプ。例外が、自動的にネットワークの障害を解決できない場合、このメソッドは、障害を正確に分類するために使用できます。値は、NetworkFailure enum に定義されています。正常な値は、UnknownBadURLTimedOutCannotConnectToHostDNSLookupFailedBadServerResponseSecureConnectionFailed です。