Mobile リクエストイベントの属性 (MobileRequest)

アプリからのリクエストは、素晴らしい経験を生み出すことができますが、それがパフォーマンスでない場合は、ユーザーエクスペリエンスが急速に低下する可能性があります。New Relic Mobile は、New Relic Insights に全リクエストをイベントとして保存しています。そのため、リクエストに対して問い合わせを行い、必要な情報を見つけることができます。MobileRequest 属性を利用するには、Android エージェントの 5.14.0以降、または iOS エージェントの 5.14.0以降が必要です。

この機能を利用できるかどうかは、サブスクリプションレベルに依ります。

MobileRequest クエリの例

Insights で作成する一般的なクエリを以下で紹介します。Insight で独自の NRQL クエリを作成するには、MobileRequest 属性を使用します。例の最初の2つは、MobileRequest に加えて MobileRequestError イベントを使って、エラー率を取得しています。

リクエストのドメイン別のエラー率
障害やエラーが発生しやすいドメインはどれですか?

SELECT percentage(count(*), where errorType = 'NetworkFailure' OR errorType = 'HTTPError' and networkError not like 'Cancelled') as 'Error Rate %', filter(count(*), where networkError not like 'Cancelled') as '# of Requests', filter(count(*), where errorType='NetworkFailure' OR errorType='HTTPError' and networkError not like 'Cancelled' as '# of Errors') FROM MobileRequestError, MobileRequest facet requestDomain
ビジネスに重要な API のエラー率
モバイルアプリからのビジネスに最重要な API のエラー率はどのくらいか?

SELECT percentage(count(*), where errorType = 'NetworkFailure' OR errorType = 'HTTPError' and networkError not like 'Cancelled') as 'Error Rate %', filter(count(*), where networkError not like 'Cancelled') as '# of Requests', filter(count(*), where errorType='NetworkFailure' OR errorType='HTTPError' and networkError not like 'Cancelled' as '# of Errors') FROM MobileRequestError, MobileRequest facet requestPath where requestPath = '{MY_API_PATH}'
重要な API のレスポンスタイムのパーセンタイルは?
重要なリクエストの 90パーセンタイルにおける URL 別の応答時間はどのくらいか?

SELECT percentile(responseTime, 90), latest(requestUrl) as 'Latest URL' from MobileRequest facet cases(where requestUrl like '%{YOUR_CORE_API}%' as 'Core API', where requestUrl like '%{YOUR_FEATURE_API}%' as 'New Feature API')
ネットワークリクエストのボリュームは?
バックエンドサービスが受信しているアプリからのネットワークトラフィックはどれくらいか?

SELECT count(*) FROM MobileRequest FACET requestDomain since 3 days ago
レスポンスの遅いユーザーの割合
3秒以上の HTTP レスポンスタイムの影響を受けているのはユーザーの割合は?

SELECT filter(uniqueCount(MobileRequest.uuid), WHERE responseTime > 3) / uniqueCount(MobileSession.uuid) * 100 as '% Users Impacted' FROM MobileRequest, MobileSession since 1 day ago timeseries compare with 2 days ago
ドメイン、キャリア、ASN 所有者、国別のリクエストタイムの分布
ドメイン、国、キャリア、ASN 所有者間の応答時間とリクエスト数の分布は?

SELECT histogram(responseTime, 20, 20) FROM MobileRequest since 3 days ago facet asnOwner
レスポンスタイムのパーセンタイル
パーセンタイル別のレスポンスタイムの内訳は?

  SELECT percentile(responseTime, 98) as '98 percentile (sec)', percentile(responseTime, 90) as '90 percentile (sec)',  percentile(responseTime, 50) as '50 percentile (sec)' from MobileRequest since 3 days ago
セッションあたりのリクエスト数
複数アプリ間におけるセッションごとのリクエスト数は?

SELECT count(*)/uniqueCount(sessionId) from MobileRequest, MobileSession facet appName timeseries

MobileRequest の属性

以下の定義は、Insights の各 MobileRequest イベントで表示されうる全データです。

属性 説明
asn (long) リクエストが発生したネットワークを所有している ISP の ASN 番号。
asnOwner (string) リクエストが発生したネットワークを所有する ISP の名前。
bytesReceived (long) オプション: アプリが requestUrl からレスポンスを受信した場合は、そのレスポンスのサイズ。単位:バイト。
bytesSent (long) オプション: アプリが requestUrl にリクエストを送信した場合は、そのリクエスト。単位:バイト。
connectionType (string) デバイスが利用した接続タイプ(2G、3Gなど)。
deviceSize (string) デバイスのディスプレイサイズ。small、normal、large、xlarge。
deviceType (string) モデル名: iPhone 6S、iPad Pro 等
deviceUuid (string) デバイスの UUID
platform (string) アプリがビルドされたプラットフォーム: Native、Unity、Xamarin
platformVersion (string) プラットフォームのバージョン
requestDomain (string) リクエスト先のドメイン
requestMethod (string) リクエストで利用した HTTP メソッド(GET/PUT/POST/等)

requestPath (string) リクエストの生成に使ったパス
requestUrl (string) リクエストの生成に使った URL
responseTime (double) オプション: レスポンスが、requestDomain から送られてきた場合、リクエストとレスポンスとの間時間。単位: 小数点付き秒。
statusCode (long) リクエスト成功のステータスコード

関連情報

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