New Relic Unity SDK API を使うと、細かい設定やプラグインが標準で行う以外の計測を行えるようになります。
目次
- SDK のインストール
- インタラクションの生成と完了
- 独自のビルド識別子の設定
- デモ用クラッシュの実行
- カスタムメトリクスの記録
- Insihgts へカスタムイベントやカスタム属性の送信
- 独自のネットワークリクエストを追跡
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 , BYTES 、SECONDS 、BYTES_PER_SECOND 、OPERATIONS 。 |
valueUnit |
メトリック値の測定単位。PERCENT 、BYTES 、SECONDS 、BYTES_PER_SECOND 、OPERATIONS 。 |
収集したカスタムメトリクスを確認するには、標準の手順であるカスタムダッシュボードの作成をご覧ください。
Insihgts へカスタムイベントやカスタム属性の送信
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 に定義されています。正常な値は、Unknown
、BadURL
、TimedOut
、CannotConnectToHost
、DNSLookupFailed
、BadServerResponse
、SecureConnectionFailed
です。