データをクエリする方法はいくつかあります。 このドキュメントでは、 データからのNRQLクエリの例をいくつか紹介します。 モバイルで報告されるイベントと利用可能な属性の説明については、 「モバイル イベント」を参照してください。
Mobile、MobileSession、およびMobileCrashイベントのクエリ例
モバイルクエリでは、インタラクション、ロケーション、デバイスプロファイル、アプリのバージョン、クラッシュ、パフォーマンスなど、さまざまなモバイルデータを理解し、比較することができます。
これらの例では、 Mobile
、 MobileSession
、およびMobileCrash
イベント タイプに対して作成されたクエリを使用しています。
SELECT uniqueCount(uuid) FROM Mobile SINCE 1 day ago FACET name
SELECT uniqueCount(uuid) FROM MobileSession WHERE countryCode='CN' FACET regionCode SINCE 7 days ago
SELECT uniqueCount(uuid) FROM MobileSession FACET osVersion SINCE 7 days ago
SELECT percentile(sessionDuration, 90) FROM MobileSession SINCE 1 day ago COMPARE WITH 2 days ago
SELECT histogram(memUsageMb) FROM MobileSession WHERE sessionDuration > 5
SELECT count(*) FROM MobileCrash FACET crashException
SELECT percentage(uniqueCount(sessionId), WHERE category = 'Crash') AS `Crash rate`
FROM MobileSession, MobileCrash FACET appVersion SINCE 90 days ago
MobileRequestイベントクエリの例
この機能には、モバイル監視エージェント バージョン 5.14.0 以降が必要です。MobileRequest
データはデフォルトで有効になっています:
Android バージョン 5.14.0 または iOS バージョン 5.14.0 以降の以前のバージョンでは、この機能を有効にする必要があります。 最新のAndroidまたはiOSバージョンにアップグレードするか、必要な機能フラグをアプリに追加します。
以下は、一般的なユースケースに対応する NRQL クエリです。MobileRequest
属性を使用して、独自の NRQL クエリを作成します。最後の 2 つの例では、 MobileRequest
に加えてMobileRequestError
イベントを使用してエラー率を取得しています。
失敗やエラーが発生しやすいドメインは?
SELECT percentage(count(*), WHERE errorType = 'NetworkFailure' OR errorType = 'HTTPError')
count(*) AS '# of Requests',
filter(count(*), WHERE errorType='NetworkFailure' OR errorType='HTTPError' AS '# of Errors')
FROM MobileRequestError, MobileRequest FACET requestDomain
最もビジネスクリティカルなAPIのモバイルアプリで見られるエラー率はどのくらいですか?
SELECT percentage(count(*), WHERE errorType = 'NetworkFailure' OR errorType = 'HTTPError')
count(*) AS '# of Requests',
filter(count(*), WHERE errorType='NetworkFailure' OR errorType='HTTPError' AS '# of Errors')
FROM MobileRequestError, MobileRequest FACET requestPath WHERE requestPath = 'MY_API_PATH'
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
httpのレスポンスタイムが3秒を超えることで影響を受けるユーザーの割合は?
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オーナーごとの応答時間とリクエスト数の分布は?
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
MobileRequestError イベントクエリの例
以下は、一般的なユースケースに対応する NRQL クエリです。MobileRequestError
属性を使用して、独自の NRQL クエリを作成します。
エラーが多いのはどのクエリですか?
SELECT count(*) FROM MobileRequestError WHERE errorType = 'HTTPError' FACET requestUrl
私のアプリケーションで最も一般的なネットワーク障害は何ですか?
SELECT count(*) FROM MobileRequestError WHERE errorType = 'NetworkFailure' FACET networkError
失敗やエラーが発生しやすいドメインは?
SELECT percentage(count(*), WHERE errorType = 'NetworkFailure' OR errorType = 'HTTPError')
count(*) AS '# of Requests',
filter(count(*), WHERE errorType='NetworkFailure' OR errorType='HTTPError' AS '# of Errors')
FROM MobileRequestError, MobileRequest FACET requestDomain
最もビジネスに不可欠なAPIのモバイルアプリでのエラー率は?
SELECT percentage(count(*), WHERE errorType = 'NetworkFailure' OR errorType = 'HTTPError')
count(*) AS '# of Requests',
filter(count(*), WHERE errorType='NetworkFailure' OR errorType='HTTPError' AS '# of Errors')
FROM MobileRequestError, MobileRequest FACET requestPath WHERE requestPath = 'MY_API_PATH'
エラーが発生しているユーザー数は、総ユーザー数と比較してどのくらいですか?
SELECT filter(uniqueCount(MobileRequestError.uuid), WHERE errorType = 'HTTPError')
/ uniqueCount(MobileSession.uuid) * 100 AS '% Users Impacted by Errors'
FROM MobileRequestError, MobileSession COMPARE WITH 7 days AGO
私のアプリケーションのどのバージョンで最もエラーが発生していますか?
SELECT count(*) FROM MobileRequestError FACET appVersion
私のアプリケーションで最も問題があるのは、どのユニークデバイス(UUID)ですか?
SELECT count(*), latest(device), latest(carrier), latest(asnOwner), latest(countryCode)
FROM MobileRequestError FACET deviceUuid LIMIT 100 SINCE 1 days ago
過去のHTTPエラー数はどのようになっていますか(ドメイン別)?
SELECT count(*) FROM MobileRequestError WHERE errorType = 'HTTPError' FACET requestDomain TIMESERIES
MobileHandledException イベントクエリの例
以下は、 処理される一般的な例外のユース ケースの NRQL クエリです。MobileHandledException
属性を使用して、独自の NRQL クエリを作成します。
処理された例外の数が最も多く報告されたアプリは?
SELECT count(*) FROM MobileHandledException FACET appName SINCE 3 days ago
私のアプリケーションで最も一般的な例外発生箇所はどこか?どのくらいの数の例外があって、どこで発生するのか?
SELECT count(*) FROM MobileHandledException FACET exceptionLocation SINCE 3 days ago
どのインタラクションが最も多くの例外を生み出すか?
SELECT count(*) FROM MobileHandledException FACET lastInteraction SINCE 3 days ago
最も多く報告される例外メッセージは何ですか?
SELECT count(*) FROM MobileHandledException FACET exceptionMessage SINCE 3 days ago
例外を報告する最も一般的な方法は何ですか?
SELECT count(*) FROM MobileHandledException FACET exceptionLocationMethod SINCE 3 days ago
ユーザーが遭遇する処理例外の頻度は?
SELECT percentage(uniqueCount(sessionId), WHERE exceptionLocation IS NOT NULL)
FROM MobileSession, MobileHandledException SINCE 3 days ago