• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

iOS SDK APIガイド

iOS SDK APIを使用して、 カスタムデータを追加する 。例えば、以下のようになります。

  • 自分のコードをインストゥルメント化する。
  • モバイルアプリのイベントからインタラクショントレースを開始、停止することができます。
  • カスタムメトリクスの記録
  • カスタム属性とイベントを送信する
  • 自動的にサポートされていないライブラリからのトラックネットワーキング
  • Objective-C または Swift でカスタム識別子の値を設定し、ユーザーセッションと解析イベントや属性を関連付けます(iOS SDK バージョン5.9.0以上 )。

注意

トレースは大幅に最適化されていますが、パフォーマンスのオーバーヘッドが発生します。何百回も呼び出されることが予想される計測メソッドは避けてください。

SDKをインストールします

one.newrelic.com > Add more dataに移動し、iOS の手順に従って、アプリに最新の iOS SDK がインストルメント化されていることを確認してください。

このドキュメントには、iOS SDKのインスツルメンテーション要件が記載されています。

カスタム属性とイベントに使用できるメソッドの詳細については、 iOSSDKAPIリファレンスを参照してください。次の機能フラグを構成することもできます。

  • Objective-C
  • 迅速

自動的にインストルメント化されたクラスとメソッド

以下のメソッド(リストアップされたクラスとそのサブクラス)は、New Relic によってすでにインスツルメンテーションされています。これらをトレースするために、カスタムインストルメンテーションを追加する必要はありません。

クラス

New Relicで自動的に計測されるメソッド

UIViewController

  • viewDidLoad:
  • viewWillAppear:
  • viewDidAppear:
  • viewWillDisappear:
  • viewDidDisappear:
  • viewWillLayoutSubviews:
  • viewDidLayoutSubviews:

UIImage

  • imageNamed:
  • imageWithContentsOfFile:
  • imageWithData:
  • imageWithData:scale:
  • initWithContentsOfFile:
  • initWithData:
  • initWithData:scale:

NSJSONSerialization

  • JSONObjectWithData:options:error:
  • JSONObjectWithStream:options:error:
  • dataWithJSONObject:options:error:
  • writeJSONObject:toStream:options:error:

NSManagedObjectContext

  • executeFetchRequest:error:
  • processPendingChanges

エージェントは、様々な手法のパフォーマンスをサマリーメトリクスに集約し、 インタラクション ページ に表示します。サマリーカテゴリーには以下のものがあります。

  • View loading
  • UI layout
  • Database
  • Images
  • JSON
  • Network

Objective-Cコードのインストゥルメント化

インタラクションコードの内訳とタイムラインに独自のObjective-Cコードを表示するには、メソッドの最初に_START呼び出しを追加し、メソッドの最後に_STOP呼び出しを追加します。

重要

_STARTごとに常に_STOPを含め、特定のメソッドにこれらのコマンドのセットを1つだけ含めます。トレースシステムはクラスとメソッド名を自動的に取得し、メソッドのパフォーマンスメトリックをNewRelicに報告します。

- (void)myMethod
{
NR_TRACE_METHOD_START(0);
// … existing code
NR_TRACE_METHOD_STOP;
}

ARCを使用していない場合は、メモリリークを回避するために、このバージョンの_STOPマクロを使用してください。

NR_NONARC_TRACE_METHOD_STOP;

メソッドのパフォーマンスをAPMの概要ページの要約データに含める場合は、 NRTraceType列挙値の1つを_STARTマクロに渡します。例えば:

NR_TRACE_METHOD_START(NRTraceTypeDatabase);

Objective-C:カスタム属性とイベントの報告

NewRelic オブジェクトのメソッドを使用して、 カスタムアトリビュートやイベントを報告します 。Objective-C でカスタムアトリビュートとイベントに使用できるメソッドの詳細については、 iOS SDK API リファレンス を参照してください。

BOOLの結果を返すメソッドは、成功した場合はYESを返し、操作が完了しなかった場合はNOを返します。これらのメソッドは、New ReliciOSSDKのバージョン5.0.0以降で使用できます。

SDKは、一度に最大128のユーザー定義のカスタム属性を保存できます。 128を超える属性を保存しようとすると、SDKはNOを返します。

カスタム属性名は必要な最も単純な形式を使用する必要があり、NewRelicはスペースを含まない単一の単語属性を推奨します。属性フレーズはキャメルケースでフォーマットできるため、 My Custom AttributemyCustomAttributeとして指定する方が適切です。カスタムメトリックと同様に:

  • 名前を付けるときは、文字/ ] [ | *を使用しないでください。
  • マルチバイト文字は避けてください。

Objective-C:カスタムネットワークリクエストの追跡

トランザクショナルネットワークのリクエストを、HTTPリクエストと同じような言葉で表現できれば、それを追跡することができます。変わりやすいパスやホスト名を含まない、整形されたURLを使用してください。

complete のリクエストには、この方法を使ってください。

[NewRelic noticeNetworkRequestForURL:(NSURL*)url
httpMethod:(NSString*)httpMethod
withTimer:(NRTimer *)timer
responseHeaders:(NSDictionary *)headers
statusCode:(NSInteger)httpStatusCode
bytesSent:(NSUInteger)bytesSent
bytesReceived:(NSUInteger)bytesReceived
responseData:(NSData *)responseData
traceHeaders:(NSDictionary<NSString*,NSString*>* _Nullable)traceHeaders
andParams:(NSDictionary *)params];

パラメータは以下の通りです。

パラメータ

説明

url

リクエストのURL

httpMethod

リクエストのメソッドタイプ(例:POST、GETなど)。

timer

ネットワークリクエストのタイミングをとったNRTimer

headers

利用可能な場合は、HTTPレスポンスヘッダを含む辞書

httpStatusCode

レスポンスステータスコード

httpStatusCodeが400以上の場合、エージェントはサーバーエラーを記録し、提供されている場合はresponseData本文をキャプチャする場合があります。

bytesSent

リクエストボディのサイズ

bytesReceived

レスポンスのサイズBody

responseData

エージェントがサーバーエラーを記録した場合に取り込まれるレスポンスボディデータ params

traceHeaders

分散トレース用に生成されたヘッダー。Distributed Tracing を使用しない場合、これは nil の可能性があります。

params

HTTPトランザクションがエラーの場合、HTTPエラーメトリックに含まれる追加パラメータ

ソケットやオペレーティングシステムのエラーにより が失敗するリクエストには、この方法を使用してください。

[NewRelic noticeNetworkFailureForURL:(NSURL *)url
httpMethod:(NSString*)httpMethod
withTimer:(NRTimer *)timer
andFailureCode:(NSInteger)iOSFailureCode];

パラメータは以下の通りです。

パラメータ

説明

url

リクエストのURL

httpMethod

リクエストのメソッドタイプ(例:POST、GETなど)。

timer

ネットワークリクエストのタイミングをとったNRTimer

iOSFailureCode

故障コード

失敗コードはNSURLError*コードとして解釈されます。サポートされているコードの完全なリストを表示するには、 NRConstants.hを参照してください。

あなたのSwiftコードを計る

自分のSwiftコードがインタラクションのコードブレークダウンやタイムラインに表示されるように。

  • メソッドの先頭にstartTracingMethod()呼び出しを追加します。
  • 最後にendTracingMethodWithTimer()呼び出しを追加します。
  • startTracingMethod()参照ごとに常にendTracingMethodWithTimer()呼び出しを含めます。
  • これらのコマンドは、1つのメソッドに1セットだけ含まれます。
func myMethod(){
let timer = NRTimer();
NewRelic.startTracingMethod(#selector(MyClass.myMethod),
object: self,
timer: timer,
category: NRTraceTypeNone)
// … existing code
NewRelic.endTracingMethodWithTimer(timer)
}

メソッドのパフォーマンスをAPMの概要ページの要約データに含める場合は、 NRTraceType列挙値の1つをstartTracingMethod()マクロに渡します。例えば:

NewRelic.startTracingMethod(#selector(MyClass.myMethod),
object: self,
timer: timer,
category: NRTraceTypeDatabase)

Swiftではカスタム属性とイベントの報告

NewRelic オブジェクトのメソッドを使用して、 カスタムアトリビュートとイベントを報告します 。Swiftでカスタムアトリビュートとイベントのために利用可能なメソッドの詳細については、 iOS SDK APIリファレンス を参照してください。

BOOLの結果を返すメソッドは、成功した場合はYESを返し、操作が完了しなかった場合はNOを返します。これらのメソッドは、New ReliciOSSDKのバージョン5.0.0以降で使用できます。

SDKは、一度に最大128のユーザー定義のカスタム属性を保存できます。 128を超える属性を保存しようとすると、SDKはNOを返します。

カスタム属性名は必要な最も単純な形式を使用する必要があり、NewRelicはスペースを含まない単一の単語属性を推奨します。属性フレーズはキャメルケースでフォーマットできるため、 My Custom AttributemyCustomAttributeとして指定する方が適切です。カスタムメトリックと同様に:

  • 名前を付けるときは、文字/ ] [ | *を使用しないでください。
  • マルチバイト文字は避けてください。

Swift。カスタムネットワークリクエストの追跡

トランザクショナルネットワークのリクエストを、HTTPリクエストと同じような言葉で表現できれば、それを追跡することができます。変わりやすいパスやホスト名を含まない、整形されたURLを使用してください。

complete のリクエストには、この方法を使ってください。

NewRelic.noticeNetworkRequestForURL(url: NSURL!,
httpMethod: String!,
withTimer: NRTimer!,
responseHeaders:[NSObject : AnyObject]!,
statusCode: Int,
bytesSent: UInt,
bytesReceived: UInt,
responseData: NSData!,
traceHeaders: [String: String]?,
andParams: [NSObject : AnyObject]!)

パラメータは以下の通りです。

パラメータ

説明

url

リクエストのURL

httpMethod

リクエストのメソッドタイプ(例:POST、GETなど)。

timer

ネットワークリクエストのタイミングをとったNRTimer

headers

利用可能な場合は、HTTPレスポンスヘッダを含む辞書

httpStatusCode

レスポンスステータスコード

httpStatusCodeが400以上の場合、エージェントはサーバーエラーを記録し、提供されている場合はresponseData本文をキャプチャする場合があります。

bytesSent

リクエストボディのサイズ

bytesReceived

レスポンスのサイズBody

responseData

エージェントがServer error paramsを記録した場合に取得されるレスポンスボディデータ

traceHeaders

分散トレース用に生成されたヘッダー。Distributed Tracing を使用しない場合、これは nil の可能性があります。

params

HTTPトランザクションがエラーの場合、HTTPエラーメトリックに含まれる追加パラメータ

ソケットやオペレーティングシステムのエラーにより が失敗するリクエストには、この方法を使用してください。

NewRelic.noticeNetworkFailureForURL(url: NSURL!,
httpMethod: NSString!,
withTimer: NRTimer!,
andFailureCode: Int)

パラメータは以下の通りです。

パラメータ

説明

url

リクエストのURL

httpMethod

リクエストのメソッドタイプ(例:POST、GETなど)。

timer

ネットワークリクエストのタイミングをとったNRTimer

iOSFailureCode

故障コード

失敗コードはNSURLError*コードとして解釈されます。サポートされているコードの完全なリストを表示するには、 NRConstants.hを参照してください。

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.