Open14

NewRelicでモバイルアプリの分析を実施する際のメモ

ころむにーころむにー

Androidでバックグラウンドにある最中は recordCustomEventrecordMetricは動作しない

ころむにーころむにー

アプリからイベントなどが送信されて、NewRelicのダッシュボードに反映されるまで、体感15分程度かかる

ころむにーころむにー

クエリ(NRQL)による検索は、デフォルト状態だとWeb画面上の期間指定が反映されている。
クエリ内で期間指定を強制したい場合は、クエリ画面の Ignore time picker をONにし、 SINCE 句を用いる。

SELECT * FROM  MobileRequestError WHERE appName = 'hoge' SINCE 90 days ago
ころむにーころむにー

クエリ(NRQL)による検索は、最大100件までしか表示されない。
ページングを行いたい場合は、 LIMITOFFSET を用いる。

SELECT * FROM  MobileRequestError WHERE appName = 'hoge' LIMIT 100 OFFSET 200
ころむにーころむにー

NRQLで時刻により検索する場合は、タイムゾーンに気を付ける必要がある。
何も指定していないと UTC で検索されるため、JST で検索する場合は以下のような指定を行う必要がある。

SELECT * FROM Mobile SINCE '2023-07-05 11:00:00 +0900' UNTIL '2023-07-05 11:01:00 +0900'

https://docs.newrelic.com/jp/docs/query-your-data/nrql-new-relic-query-language/get-started/nrql-syntax-clauses-functions/#sel-since

ころむにーころむにー

NRQLによる検索結果で表示される Timestamp は、ユーザー設定のタイムゾーンで表示される。

ころむにーころむにー

分散トレーシングの機能を使えば、モバイルアプリとAPI側でのイベントを俯瞰で観れるか?

ころむにーころむにー

分散トレーシングの機能だと、モバイルアプリのHTTPリクエストを起点として、APIやマイクロサービス側でリクエストが発生している様子を関連づけてみることができる。

ころむにーころむにー

HTTPリクエストの特定のヘッダーを MobileRequest で収集するには、 addHTTPHeadersTrackingFor が利用できる。

https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/add-tracked-headers/

さらにレスポンスBodyの一部を収集するなど細かく制御したい場合は、 NetworkRequestsNetworkErrorRequests の自動収集をOFFにしつつ、 noticeHttpTransaction を用いてHTTPリクエストの完了時にイベントを手動で収集すれば良さそう。

https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/configure-settings/#networking

https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile/mobile-sdk/network-request-success/

ころむにーころむにー

直近1週間のデータと、さらにその1週間前のデータを比較するには、 COMPARE WITH 構文が便利。

SELECT average(duration) FROM PageView
  SINCE 1 week ago COMPARE WITH 1 week AGO
ころむにーころむにー

addHTTPHeadersTrackingFor で収集したヘッダーをNRQLで検索する方法。

例えばヘッダーキーが X-TEST のような名前だとした際、通常ハイフン - を含むカラム名はNRQLにそのまま指定できない。
この場合は、バッククォート ` でエスケープしてやると、指定できる。

SELECT `X-TEST` FROM MobileRequest