iOS SDK API の利用

New Relic Mobile 用の iOS SDK API を利用する手順は以下のとおりです。

トレース処理は(トレースのオーバーヘッドが小さくなるよう)最適化されていますが、ある程度のオーバーヘッドはあります。そのため、何百回も呼ばれることが予想されるメソッドを計測するのは避けてください。

SDK のインストール

rpm.newrelic.com の指示に従って、New Relic Mobile 用の最新の SDK で、アプリが計測されるようにしてください。

自動的に実装されるクラスとメソッド

以下にあるクラスやそのサブクラスのメソッドは 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

New Relic Mobile は、New Relic Mobile の Interaction breakdown 表に表示されるsummary metrics[概要メトリクス]に、さまざまなメソッドのパフォーマンスを集約します。概要のカテゴリは以下のとおりです。

  • View Loading
  • UI Layout
  • Database
  • Images
  • JSON
  • Network

Objective-C コードの計測

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

- (void)myMethod
{
  NR_TRACE_METHOD_START(0);

  // … existing code

  NR_TRACE_METHOD_STOP;
}

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

NR_NONARC_TRACE_METHOD_STOP;
_START をコールしたら、には必ず _STOP もコールする必要があります。指定されたメソッドにこれらのコマンドのセットを1つだけ含るようにしてください。トレースシステムは、自動的にクラスとメソッド名を取得し、メソッドのパフォーマンスメトリクスを New Relic Mobile に送信します。

メソッドのパフォーマンスを Overview ページの要約データに含めるには、NRTraceType enum の値のどれかを _START マクロに渡します。以下のようにします。

NR_TRACE_METHOD_START(NRTraceTypeDatabase);
インタラクションを作成し、完了する
デフォルトでは、ビューコントローラーがプッシュされるとインタラクションが開始されます。Objective-C とのインタラクションを手動で開始させるには、以下の API を呼び出します。

NSString* uniqueIdentifier = NR_START_NAMED_INTERACTION(@"name");

このマクロは、現在の行から name インタラクショントレースを自動的に追跡し始めます。それ以前に実行していたインタラクションも完了します。この API コールを使うと、そのインタラクションの完了に使う一意の識別子を返します。

NR_INTERACTION_STOP(uniqueIdentifier);

このインタラクションが既に自動的に完了していない場合、このマクロは uniqueIdentifier に関連付くインタラクションを完了します。このメソッドを呼び出す必要はありません。

デフォルトのインタラクションの名前を変更する
デフォルトでは、iOS エージェントは新しいビューコントローラが表示されると、インタラクショントレースを開始します。インタラクションの名前は、Display <ViewController> 形式となります。Objective-C でこのデフォルト名を変更するには、ビューコントローラに - (NSString*) customNewRelicInteractionName インスタンスメソッドを実装します。戻り値の文字列はインタラクション名になります。
アプリケーションのカスタムバージョンを設定する
New Relic iOS SDK を使って、Objective-C でアプリのカスタムバージョン文字列を設定できます。 CFBundleShortVersionString に定義された文字列を使う代わりに、+[NewRelic startWithApplicationToken:]; を呼ぶ前に、+[NewRelic setApplicationVersion:] メソッドをアプリのカスタムバージョンを渡して、コールします。

    [NewRelic setApplicationVersion:(NSString*) appVersion];
カスタムビルド識別子を設定する

New Relic iOS SDK のバージョン 5.1.0 以降では、API メソッドを使って、New Relic Mobile の Crash details ページで、アプリのバージョンの横に表示されるカスタムビルド識別子を設定できます。以下のように Objective-C で Xcode で定義された CFBundleVersion 文字列を使用する代わりに、+[NewRelic setApplicationBuild:] メソッドを呼び出してカスタムビルド識別子を渡します。

    [NewRelic setApplicationBuild:(NSString*) buildNumber];
カスタムメトリクスを作成する
カスタムメトリック API を使って、任意の数値データを名前付きイベントとして記録できます。カスタムメトリクスを使うことで、アプリケーション固有のイベントを追跡できるようになります。

複数の API を使って、さまざまなレベルの情報をカスタムメトリクスとして記録できます。 Objective-C でアプリからカスタムメトリックを記録する方法は以下の通りです。

    [NewRelic recordMetricWithName:(NSString *)name
      category:(NSString *)category
        value:(NSNumber *)value];

このメソッドは、Custom/[Category]/[Name] という形式のメトリックとして記録されます。呼出しカウントは1で、合計値は渡された値と等しくなります。複数の呼出しを行うと、New Relic Mobile 標準のメトリック集約ルールに従ってカウントと値は集約されます。

name パラメータは、New Relic Mobile UI に表示されるメトリックのテキスト名です。メトリックを最大限に活用するために、明確かつ簡潔なメトリック名を使用してください。

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

  • UI の表示に適した大文字と小文字、空白を使います。メトリック名は、UIにそのまま表示されます。
  • メトリック名を大文字にします。
  • / ] [ | * 文字は使用しないでください。
  • マルチバイト文字は使用しないでください。

その他の引数を受け入れるバリエーションについては、NewRelic.h を参照して、記録するメトリックを詳細に調整してください。

Objective-C: Insights にカスタム属性とカスタムイベントを送信する

NewRelic オブジェクトで以下のメソッドを使用して、カスタム属性やカスタムイベントを New Relic Insights に送信します。BOOL を戻り値として返すメソッドは、成功した場合は YES を、処理が完了しなかった場合は NO を返します。これらのメソッドは、New Relic iOS SDK のバージョン 5.0.0 以降で使用できます。

SDK は一度に最大64個のユーザー定義属性を格納できます。 64より多い属性を格納しようとすると、SDK は NO を返します。

カスタム属性名として、最もシンプルなものとすべきです。New Relic では空白を含まない、1つの単語を推奨しています。属性 の にはキャメルケースを使えるため、My Custom Attribute のような場合は myCustomAttribute とするのがよりより名前です。カスタムメトリクスと同様に以下の制約があります。

  • / ] [ | * 文字は使用しないでください。
  • マルチバイト文字は使用しないでください。

Objective-C におけるカスタム属性やカスタムイベント用のメソッドは以下のとおりです。

setAttribute
メソッド:

+ (BOOL) setAttribute:(NSString*)name value:(id) value;

NSString* で指定した名前と NSString*NSString* の型の値を持つ属性を作成します。呼び出し毎に、setAttribute は以前の値と型を上書きします。

timestampcategoryappIdappName, uuidNewRelic 接頭辞となっているものを除き、モバイルのデフォルト属性はすべて上書きできます。

:

BOOL attributeSet = [NewRelic setAttribute:@"username" value:@"SampleUserName"];
BOOL attributeSet = [NewRelic setAttribute:@"rate" value:@9999.99];
incrementAttribute
メソッド:

+ (BOOL) incrementAttribute:(NSString*)name;

指定した属性の数を1つ増やします。属性が存在しない場合は、値が 1 の属性を作成します。

:

BOOL incremented = [NewRelic incrementAttribute@"rate"];

メソッド:

+ (BOOL) incrementAttribute:(NSString*)name value:(NSNumber*)amount;

指定された属性のカウントを NSNumber* で指定された量だけ増やします。

:

BOOL incremented = [NewRelic incrementAttribute:@"rate" value:@1];
removeAttribute
メソッド:

+ (BOOL) removeAttribute:(NSString*)name;

NSString* で指定された属性を削除します。
:

BOOL attributeRemoved = [NewRelic removedAttribute@"rate"];
removeAllAttributes
メソッド:

+ (BOOL) removeAllAttributes();

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

:

BOOL attributesRemoved = NewRelic.removeAllAttributes();
recordEvent
メソッド:

+ (BOOL) recordEvent:(NSString*)name attributes:(NSDictionary*)attributes;

Insights のカスタムイベントを記録します。 JSON 要素として属性のリストを指定できます。

:

BOOL eventRecorded = [NewRelic recordEvent:@"eventName"
attributes:@{@"attributeName1": @”value1”, @"attributeName2": @2}];
setMaxEventPoolSize
メソッド:

+ (void) setMaxEventPoolSize:(unsigned int)size;

イベントプールの最大サイズを設定します。上限に達すると、エージェントは次の収穫サイクルで送信されるまで、古いイベントと新しいイベントを破棄して、イベントのサンプリングを開始します。

:

BOOL poolSizeSet = [NewRelic setMaxEventPoolSize:1000];
setMaxEventBufferTime
メソッド:

+ (void) setMaxEventBufferTime:(unsigned int)seconds;

エージェントがイベントをメモリに保存する上限の時間を秒単位で設定します。最も古いイベントがこの時間を超えたとき、エージェントは収穫サイクルでバッファしているコンテンツを送信します。

:

BOOL fiveMinuteLimitSet = [NewRelic setMaxEventBufferTime:600];
currentSessionId
メソッド:

+ (NSString*) currentSessionId;

現在のセッションのIDを返します。

:

NSString* sessionId = [NewRelic currentSessionId];

Objective-C: 独自のネットワークリクエストを追跡する

HTTP リクエストに類似したトランザクションネットワークリクエストを表現できる場合は、New Relic Mobile でそれを追跡できます。可変なパスやホスト名を含まない well-formed な URL を使用してください。

完了したリクエストで、以下のメソッドを使います。

[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
                           andParams:(NSDictionary *)params];

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

パラメーター 説明
url リクエストの URL
httpMethod リクエストのメソッドの種類。例: POST, GET など。
timer ネットワークリクエストを計測した NRTimer
headers HTTP レスポンスヘッダーを含むディクショナリー(使用可能な場合)
httpStatusCode レスポンスのステータスコード

httpStatusCode が 400 以上の場合、New Relic Mobile はサーバーエラーを記録し、提供されている場合は responseData ボディをキャプチャします。

bytesSent リクエストボディのサイズ
bytesReceived レスポンスボディのサイズ
responseData New Relic Mobile がサーバーエラーのパラメーターを記録する場合にキャプチャされた、レスポンスボディのデータ
params HTTP トランザクションがエラーとなった場合、HTTP エラーのメトリックに含まれるパラメータ。

ソケットや OS のエラーにより失敗したリクエストの場合は、以下のメソッドを使います。

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

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

パラメーター 説明
url リクエストの URL
httpMethod リクエストのメソッドの種類。例: POST, GET など。
timer ネットワークリクエストを計測した NRTimer
iOSFailureCode エラーコード。

エラーコードは NSURLError* コードとして解釈されます。 New Relic Mobile サポート対象のコードのリストについては、NRConstants.h をご覧ください。

Objective-C: フィーチャーフラグの設定

iOS SDK エージェントは、+[NewRelic startWithApplicationToken:] を呼び出す前に、機能設定のフラグも提供します。NewRelic.h で定義されている以下のメソッドを使って、Objective-C でフィーチャーフラグを設定します。

+[NewRelic enableFeatures:(NRMAFeatureFlags)flags];

+[NewRelic disableFeatures:(NRMAFeatureFlags)flags];

利用可能なフィーチャーフラグは以下の通りです。

NRFeatureFlag_InteractionTracing
インタラクションの追跡を有効(デフォルト)/無効にします。
NRFeatureFlag_DefaultInteractions
デフォルトで計測されるのクラスとメソッドのみインタラクショントレースを有効(デフォルト)/無効にします。カスタムインタラクションは報告されます。
NRFeatureFlag_SwiftInteractionTracing
Swfit コードのインタラクショントレースを有効(デフォルト)/無効にします。NRFeatureFlag_InteractionTracing が無効の場合、この機能は常に無効になります。

この機能を有効にする前に、Swift のインタラクショントレースを有効にするを確認してください。適切な手順を実行しないと、この機能を有効にすると、アプリが不安定になる可能性があります。
NRFeatureFlag_CrashReporting
New Relic Mobile のクラッシュレポートを有効(デフォルト)/無効にします。
NRFeatureFlag_NSURLSessionInstrumentation
NSURLSession ネットワーク計測を有効(デフォルト)/無効にします。
NRFeatureFlag_ExperimentalNetworkingInstrumentation
実験的なネットワーク計測を有効(デフォルト)/無効にします。NRMAURProtocol を介したすべての NSURLConnection ネットワークリクエストを強制的にコントロールします。この設定の変更により、アプリの安定性が低下する可能性があります。
NRFeatureFlag_HttpResponseBodyCapture
HTTP エラーにおける HTTP レスポンスのボディのキャプチャを有効(デフォルト)/無効にします。New Relic は、HTTP エラーのレスポンスボディのみをキャプチャします。

これらの機能はビットマスクされています。つまり、、ビット単位で組み合わせることで、複数の機能を同時に有効したり、無効にできます。以下は、Swift インタラクショントレースと実験的なネットワークの計測を有効にし、NSURLSession 計測とクラッシュレポートを無効にしている場合の設定です。

 [NewRelic enableFeatures:NRFeatureFlag_SwiftInteractionTracing | NRFeatureFlag_ExperimentalNetworkingInstrumentation];
 [NewRelic disableFeatures:NRFeatureFlag_NSURLSessionInstrumentation | NRFeatureFlag_CrashReporting]; 
 [NewRelic startWithApplicationToken:...];

Swift コードの計測

Swift コードをインタラクションコードの内訳表やタイムラインに表示する手順は以下の通りです。

  • メソッドの最初に startTracingMethod() コールを追加します。
  • そのメソッドの最後に endTracingMethodWithTimer() コールを追加します。
  • startTracingMethod() 参照毎に endTracingMethodWithTimer() コールは必要です。
  • メソッドにはこれらのセットを1つだけ含めること。
    func myMethod(){
        let timer = NRTimer();
        NewRelic.startTracingMethod(#selector(MyClass.myMethod),
                object: self,
                timer: timer,
                category: NRTraceTypeNone)
        // … existing code
        NewRelic.endTracingMethodWithTimer(timer)
      }

メソッドのパフォーマンスを Overview ページの要約データで表示するには、以下のように NRTraceType enum 値を startTracingMethod() マクロに渡します。

NewRelic.startTracingMethod(#selector(MyClass.myMethod),
            object: self,
            timer: timer,
            category: NRTraceTypeDatabase)
Swift インタラクションを作成し、完了する
デフォルトでは、ビューコントローラーがプッシュされるとインタラクションが開始されます。インタラクションを手動で開始させるには、以下の API を呼び出します。

let uniqueIdentifier = NewRelic.startInteractionWithName("My Interaction");

このコールは、現在の行から My Interaction という名前でインタラクショントレースを自動的に追跡し始めます。それ以前に実行していたインタラクションも完了します。この API コールを使うと、そのインタラクションの完了に使う一意の識別子を返します。

NewRelic.stopCurrentInteraction(uniqueIdentifier)

このインタラクションが自動的に完了していない場合、このメソッドは uniqueIdentifier に関連付くインタラクションを完了します。このメソッドは明示的に呼び出す必要はありません。

デフォルトの Swift インタラクション名を変更する

デフォルトでは、iOS エージェントは新しいビューコントローラが表示されると、インタラクショントレースを開始します。インタラクションの名前は、Display <ViewController> 形式となります。このデフォルト名を変更するには、ビューコントローラに customNewRelicInteractionName() -> String メソッドを実装します。戻り値の文字列はインタラクション名になります。

Swift でアプリのカスタムバージョンを設定する

New Relic iOS SDK を使って、アプリのカスタムバージョン文字列を設定できます。 CFBundleShortVersionString に定義された文字列を使う代わりに、NewRelic.startWithApplicationToken(); を呼ぶ前に NewRelic.setApplicationVersion() メソッドをアプリのカスタムバージョンを渡して、コールします。

NewRelic.setApplicationVersion(String appVersion)
Swift でカスタムビルド識別子を設定する

New Relic iOS SDK のバージョン 5.1.0 以降では、API メソッドを使って、New Relic Mobile の Crash details ページで、アプリのバージョンの横に表示されるカスタムビルド識別子を設定できます。以下のように Objective-C で Xcode で定義された CFBundleVersion 文字列を使用する代わりに、NewRelic.setApplicationBuild() メソッドを呼び出してカスタムビルド識別子を渡します。

    NewRelic.setApplicationBuild(buildNumber)
Swift でカスタムメトリクスを作成する
カスタムメトリック API を使って、任意の数値データを名前付きイベントとして記録できます。カスタムメトリクスを使うことで、アプリケーション固有のイベントを追跡できるようになります。

複数の API を使って、さまざまなレベルの情報をカスタムメトリクスとして記録できます。 アプリからカスタムメトリックを記録する方法は以下の通りです。

NewRelic.recordMetricWithName(name: String!, category: String!, value: NSNumber!)

このメソッドは、Custom/[Category]/[Name] という形式のメトリックとして記録されます。呼出しカウントは1で、合計値は渡された値と等しくなります。複数の呼出しを行うと、New Relic Mobile 標準のメトリック集約ルールに従ってカウントと値は集約されます。

name パラメータは、New Relic Mobile UI に表示されるメトリックのテキスト名です。メトリックを最大限に活用するために、明確かつ簡潔なメトリック名を使用してください。

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

  • UI の表示に適した大文字と小文字、空白を使います。メトリック名は、UIにそのまま表示されます。
  • メトリック名を大文字にします。
  • / ] [ | * 文字は使用しないでください。
  • マルチバイト文字は使用しないでください。

その他の引数を受け入れるバリエーションについては、NewRelic.h を参照して、記録するメトリックを詳細に調整してください。

Swift: Insights にカスタム属性やカスタムイベントを送信する

NewRelic オブジェクトで以下のメソッドを使用して、カスタム属性やカスタムイベントを New Relic Insights に送信します。BOOL を戻り値として返すメソッドは、成功した場合は YES を、処理が完了しなかった場合は NO を返します。これらのメソッドは、New Relic iOS SDK のバージョン 5.0.0 以降で使用できます。

SDK は一度に最大64個のユーザー定義属性を格納できます。 64より多い属性を格納しようとすると、SDK は NO を返します。

カスタム属性名として、最もシンプルなものとすべきです。New Relic では空白を含まない、1つの単語を推奨しています。属性 の にはキャメルケースを使えるため、My Custom Attribute のような場合は myCustomAttribute とするのがよりより名前です。カスタムメトリクスと同様に以下の制約があります。

  • / ] [ | * 文字は使用しないでください。
  • マルチバイト文字は使用しないでください。

カスタム属性やカスタムイベント用のメソッドは以下のとおりです。

setAttribute
メソッド:

NewRelic.setAttribute(name: String!, value: AnyObject!>) -> Bool

String! で指定した名前と String!NSNumber! の型の値を持つ属性を作成します。呼び出し毎に、setAttribute は以前の値と型を上書きします。

timestampcategoryappIdappName, uuidNewRelic 接頭辞となっているものを除き、モバイルのデフォルト属性はすべて上書きできます。

:

var attributeSet = NewRelic.setAttribute("username", value: "SampleUserName")
attributeSet = NewRelic.setAttribute("rate", value: 9999.99)
incrementAttribute
メソッド:

NewRelic.incrementAttribute(name: String!) -> Bool

指定した属性の数を1つ増やします。属性が存在しない場合は、値が 1 の属性を作成します。
:

let incremented = NewRelic.incrementAttribute("rate")

Method:

NewRelic.incrementAttribute(name: String!, value: NSNumber!) -> Bool

指定された属性のカウントを NSNumber! で指定された量だけ増やします。

:

let incremented = NewRelic.incrementAttribute(name: String!, value: NSNumber!)
removeAttribute
メソッド:

NewRelic.removeAttribute(name: String!) -> Bool

String! で指定された属性を削除します。

:

let attributeRemoved = NewRelic.removedAttribute("rate")
removeAllAttributes
メソッド:

NewRelic.removeAllAttributes() -> Bool

セッションからすべての属性を削除します。
:

let attributesRemoved = NewRelic.removeAllAttributes()
recordEvent
メソッド:

NewRelic.recordEvent(name: String!, attributes:[NSObject : AnyObject]!) -> Bool

Insights のカスタムイベントを記録します。 JSON 要素として属性のリストを指定できます。

:

let event = NewRelic.recordEvent("eventName",
attributes: ["attributeName1" : "value1", "attributeName2": 2])
setMaxEventPoolSize
メソッド:

NewRelic.setMaxEventPoolSize(size: UInt32)

イベントプールの最大サイズを設定します。上限に達すると、エージェントは次の収穫サイクルで送信されるまで、古いイベントと新しいイベントを破棄して、イベントのサンプリングを開始します。

:

let poolSizeSet = NewRelic.setMaxEventPoolSize(1000)
setMaxEventBufferTime
メソッド:

NewRelic.setMaxEventBufferTime(seconds: UInt32)

エージェントがイベントをメモリに保存する上限の時間を秒単位で設定します。最も古いイベントがこの時間を超えたとき、エージェントは収穫サイクルでバッファしているコンテンツを送信します。

:

let fiveMinuteLimitSet = NewRelic.setMaxEventBufferTime(600)
currentSessionId
メソッド:

NewRelic.currentSessionId() -> String

現在のセッションのIDを返します。

:

let sessionId = NewRelic.currentSessionId()

Swift: 独自のネットワークリクエストを追跡する

HTTP リクエストに類似したトランザクションネットワークリクエストを表現できる場合は、New Relic Mobile でそれを追跡できます。可変なパスやホスト名を含まない well-formed な URL を使用してください。

完了したリクエストで、以下のメソッドを使います。

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

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

パラメーター 説明
url リクエストの URL
httpMethod リクエストのメソッドの種類。例: POST, GET など。
timer ネットワークリクエストを計測した NRTimer
headers HTTP レスポンスヘッダーを含むディクショナリー(使用可能な場合)
httpStatusCode レスポンスのステータスコード

httpStatusCode が 400 以上の場合、New Relic Mobile はサーバーエラーを記録し、提供されている場合は responseData ボディをキャプチャします。

bytesSent リクエストボディのサイズ
bytesReceived レスポンスボディのサイズ
responseData New Relic Mobile がサーバーエラーのパラメーターを記録する場合にキャプチャされた、レスポンスボディのデータ
params HTTP トランザクションがエラーとなった場合、HTTP エラーのメトリックに含まれるパラメータ。

ソケットや OS のエラーにより失敗したリクエストの場合は、以下のメソッドを使います。

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

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

パラメーター 説明
url リクエストの URL
httpMethod リクエストのメソッドの種類。例: POST, GET など。
timer ネットワークリクエストを計測した NRTimer
iOSFailureCode エラーコード
エラーコードは、NSURLError* コードとして解釈されます。New Relic Mobile がサポートしているコードのリストは、NRConstants.h をご覧ください。

Swift: フィーチャーフラグの設定

New Relic iOS エージェントは、NewRelicstartWithApplicationToken() を呼び出す前に機能設定のフラグも提供しています。フィーチャーフラグを設定するには、NewRelic.h で定義されている以下のメソッドを呼出します。

NewRelic.enableFeatures(featureFlags: NRMAFeatureFlags)

NewRelic.disableFeatures(featureFlags: NRMAFeatureFlags)

利用可能なフィーチャーフラグは以下の通りです。

NRFeatureFlag_InteractionTracing
インタラクションの追跡を有効(デフォルト)/無効にします。
NRFeatureFlag_SwiftInteractionTracing
この機能を有効にする前に、Swift のインタラクショントレースを有効にするを確認してください。適切な手順を実行しないと、この機能を有効にすると、アプリが不安定になる可能性があります。

Swift コードのインタラクション追跡を有効(デフォルト)/無効にします。NRFeatureFlag_InteractionTracing が無効の場合、この機能は常に無効になります。

NRFeatureFlag_CrashReporting
New Relic Mobile のクラシュレポートを有効(デフォルト)/無効にします。
NRFeatureFlag_NSURLSessionInstrumentation
NSURLSession ネットワーク計測を有効(デフォルト)/無効にします。
NRFeatureFlag_ExperimentalNetworkingInstrumentation
実験的なネットワーク計測を有効(デフォルト)/無効にします。NRMAURProtocol を介したすべての NSURLConnection ネットワークリクエストを強制的にコントロールします。この設定の変更により、アプリの安定性が低下する可能性があります。
NRFeatureFlag_HttpResponseBodyCapture
HTTP エラーにおける HTTP レスポンスのボディのキャプチャを有効(デフォルト)/無効にします。New Relic は、HTTP エラーのレスポンスボディのみをキャプチャします。

関連情報

関連情報は以下のとおりです。