diff --git a/docs/operate/rum/_category_.json b/docs/operate/rum/_category_.json new file mode 100644 index 00000000..08f1b45b --- /dev/null +++ b/docs/operate/rum/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "RUM", + "position": 8, + "link": { + "type": "generated-index", + "title": "Mobile Real User Monitoring with RUM", + "description": "Monitor real mobile user experience with RUM in base14 Scout. Track crash-free rates, app startup performance, screen load times, network calls, and session timelines for your Flutter applications." + } +} diff --git a/docs/operate/rum/anr.md b/docs/operate/rum/anr.md new file mode 100644 index 00000000..0a821326 --- /dev/null +++ b/docs/operate/rum/anr.md @@ -0,0 +1,51 @@ +--- +title: RUM ANR +sidebar_label: ANR +sidebar_position: 5 +description: + Detect Application Not Responding (ANR) events in your Flutter apps with RUM + in base14 Scout. Analyze frozen-UI durations by app version, OS, and device. +keywords: + [ + rum, + anr, + application not responding, + frozen ui, + mobile performance, + jank, + base14, + scout, + ] +--- + +The **ANR** (Application Not Responding) tab tracks frozen-UI events — periods +where the app's main thread was blocked and unresponsive to user input. + +![ANR](/img/rum/anr.png) + +ANR events include duration breakdowns **by App Version**, **by OS Version**, +and **by Device Model**, helping you pin down which builds and devices freeze +most often. + +--- + +## ANR Details + +Click an ANR group to open the detail view. + +![ANR Details](/img/rum/anr-details.png) + +- **Total Occurrences**, **Affected Users**, and **Affected Sessions** stats +- **Attributes** panel with device, OS, screen, session, and SDK context +- Occurrences broken down **by App Version**, **by OS Version**, and + **by Device Model** +- **Stack Trace (Main Thread)** showing where the main thread was blocked +- **All Threads** dump listing every thread with its state + (`RUNNABLE`, `TIMED_WAITING`, `WAITING`) and frame count — useful for finding + which thread held the lock the main thread was waiting on +- **Breadcrumbs** — the sequence of lifecycle, navigation, and tap events + leading up to the freeze +- **Affected Devices** and **Affected Users** tables + +Use **View Session Timeline** to jump into the full +[session](./sessions.md) where the ANR occurred. diff --git a/docs/operate/rum/crashes.md b/docs/operate/rum/crashes.md new file mode 100644 index 00000000..47257452 --- /dev/null +++ b/docs/operate/rum/crashes.md @@ -0,0 +1,44 @@ +--- +title: RUM Crashes +sidebar_label: Crashes +sidebar_position: 3 +description: + Investigate mobile app crashes with RUM in base14 Scout. Group crashes, + view symbolicated stack traces, and see affected devices, users, app + versions, and OS versions. +keywords: + [ + rum, + crashes, + crash reporting, + symbolication, + stack trace, + native crash, + mobile crash, + base14, + scout, + ] +--- + +The **Crashes** tab groups individual crash events into deduplicated crash +groups so you can prioritize by impact. + +![Crashes List](/img/rum/crashes.png) + +Each crash group shows its **Title**, **Kind**, **Type** (Native or JS Error), +**Occurrences**, affected **Sessions** and **Users**, **App Version**, and +**Last Seen**. + +--- + +## Crash Details + +Click a crash group to open the detail view with: + +- **Symbolicated stack trace** (Java / Android), memory map, and raw tombstone +- Occurrences broken down **by App Version**, **by OS Version**, and + **by Device Model** +- **Affected Devices** (brand, model, OS, app version, count) +- **Affected Users** (user, crash count, last hit) + +![Crash Details](/img/rum/crash-details.png) diff --git a/docs/operate/rum/errors.md b/docs/operate/rum/errors.md new file mode 100644 index 00000000..06fbaf54 --- /dev/null +++ b/docs/operate/rum/errors.md @@ -0,0 +1,52 @@ +--- +title: RUM Errors +sidebar_label: Errors +sidebar_position: 4 +description: + Track non-fatal errors in your Flutter apps with RUM in base14 Scout. Group + and rank JS and Dart errors by occurrence to prioritize fixes. +keywords: + [ + rum, + errors, + non-fatal errors, + dart errors, + js errors, + mobile errors, + base14, + scout, + ] +--- + +The **Errors** tab surfaces non-fatal JS/Dart errors reported by the app, +grouped and ranked by occurrence so you can prioritize the errors affecting the +most users. + +![Errors](/img/rum/errors.png) + +Each error group shows its message, occurrence count, and the sessions and users +affected. Use it alongside [Crashes](./crashes.md) to separate fatal crashes +from recoverable errors. + +--- + +## Error Details + +Click an error group to open the detail view. The header shows the exception +message along with badges such as the error kind (for example `manual_error`) +and whether it was `handled`. + +![Error Details](/img/rum/error-details.png) + +- **Total Occurrences**, **Affected Users**, and **Affected Sessions** stats +- **Attributes** panel with rich context — device, OS, network, process and + runtime details, plus custom attributes like feature flags and experiments +- Occurrences broken down **by App Version**, **by OS Version**, and + **by Device Model** +- **Stack Trace** with numbered frames pointing to the source location +- **Breadcrumbs** — the events (screen views, taps, long tasks, UI hangs) + leading up to the error +- **Affected Devices** and **Affected Users** tables + +Use **View Session Timeline** to open the full [session](./sessions.md) where +the error was thrown. diff --git a/docs/operate/rum/getting-started.md b/docs/operate/rum/getting-started.md new file mode 100644 index 00000000..2ef983fd --- /dev/null +++ b/docs/operate/rum/getting-started.md @@ -0,0 +1,72 @@ +--- +title: Getting Started with RUM +sidebar_label: Getting Started +sidebar_position: 1 +description: + Get started with RUM in base14 Scout. Learn the interface, select a mobile + application, and set a time range to monitor real user experience for your + Flutter apps. +keywords: + [ + rum, + real user monitoring, + mobile monitoring, + flutter monitoring, + getting started, + base14, + scout, + ] +--- + +RUM (Real User Monitoring) is a mobile monitoring Grafana app built into Scout. +It gives you deep visibility into how real users experience your Flutter +applications — tracking crashes, errors, ANRs, app startup, screen performance, +network calls, and full session timelines. + +RUM queries mobile telemetry stored in the Scout Telemetry Data Lake and +correlates crashes, sessions, and screens so you can move from a symptom +(a crash spike) to a root cause (a specific screen, app version, or device) in +a few clicks. + +![RUM Overview](/img/rum/overview.png) + +--- + +## Interface Overview + +The RUM interface consists of: + +| Section | Description | +| ------- | ----------- | +| **Application Selector** | Choose which mobile application to inspect | +| **Navigation Tabs** | Switch between Overview, Errors, Crashes, ANR, Sessions, Screens, Network, and Users | +| **Time Picker** | Set the time range for all panels | +| **Breakdown Filters** | Slice metrics by app version, OS version, and device model | + +--- + +## Select an Application + +The **Applications** tab lists every mobile app reporting telemetry to Scout. + +1. Open the **Applications** tab +2. Select the application you want to monitor +3. RUM loads that app's data across all other tabs + +![Applications](/img/rum/applications.png) + +--- + +## Set the Time Range + +Use the time picker to scope every panel to a time window. All charts, tables, +and breakdowns update to the selected range. + +--- + +## Next Steps + +- [Overview](./overview.md) - Health-at-a-glance dashboard +- [Crashes](./crashes.md) - Crash groups and symbolicated stack traces +- [Sessions](./sessions.md) - Session list and event timelines +- [Screens](./screens.md) - Per-screen performance diff --git a/docs/operate/rum/network.md b/docs/operate/rum/network.md new file mode 100644 index 00000000..c6452405 --- /dev/null +++ b/docs/operate/rum/network.md @@ -0,0 +1,30 @@ +--- +title: RUM Network +sidebar_label: Network +sidebar_position: 8 +description: + Analyze API and network performance from the mobile client's perspective with + RUM in base14 Scout. Track response times, error rates, and failed requests + by endpoint. +keywords: + [ + rum, + network, + api performance, + response time, + error rate, + failed requests, + mobile network, + base14, + scout, + ] +--- + +The **Network** tab surfaces API and network performance from the mobile +client's perspective. + +![Network Performance](/img/rum/network.png) + +- **Avg Response Time by Endpoint** (top 10) +- **All Endpoints** — URL, method, avg duration, error rate, request count +- **Failed Requests** — URL, method, status, occurrences, first/last seen diff --git a/docs/operate/rum/overview.md b/docs/operate/rum/overview.md new file mode 100644 index 00000000..925d907a --- /dev/null +++ b/docs/operate/rum/overview.md @@ -0,0 +1,52 @@ +--- +title: RUM Overview +sidebar_label: Overview +sidebar_position: 2 +description: + Monitor mobile app health at a glance with the RUM Overview dashboard in + base14 Scout. Track crash-free rate, sessions, active users, startup times, + and trends by app version, OS, and device. +keywords: + [ + rum, + overview, + crash-free rate, + mobile health, + app startup, + cold start, + warm start, + base14, + scout, + ] +--- + +The **Overview** tab is your health-at-a-glance dashboard for the selected +mobile application. + +![Overview Dashboard](/img/rum/overview.png) + +--- + +## Key Metrics + +| Metric | Description | +| ------ | ----------- | +| **Crash-Free Rate** | Percentage of sessions with no crashes | +| **Total Sessions** | Number of user sessions in the range | +| **Active Users** | Distinct users in the range | +| **Total Errors** | Count of reported errors | +| **Avg Cold Start** | Average cold app startup time | +| **Avg Warm Start** | Average warm app startup time | + +--- + +## Trends and Breakdowns + +- **Sessions Over Time**, **Crashes Over Time**, and **ANR Duration Over Time** + time-series charts +- Breakdowns of crashes, sessions, and ANR duration **by App Version**, + **by OS Version**, and **by Device Model** +- **Top Crashing Screens** and **Slowest Screens** tables + +Click the **Total Sessions** or **Active Users** stat to jump straight to the +[Sessions](./sessions.md) or [Users](./users.md) tab. diff --git a/docs/operate/rum/screens.md b/docs/operate/rum/screens.md new file mode 100644 index 00000000..dfe24088 --- /dev/null +++ b/docs/operate/rum/screens.md @@ -0,0 +1,43 @@ +--- +title: RUM Screens +sidebar_label: Screens +sidebar_position: 7 +description: + Measure per-screen performance in your Flutter apps with RUM in base14 Scout. + Track load times, frame rendering, memory and CPU usage, jank, and crashes + by screen. +keywords: + [ + rum, + screens, + screen performance, + load time, + frame rendering, + jank, + core web vitals, + mobile performance, + base14, + scout, + ] +--- + +The **Screens** tab measures per-screen performance across your app. + +![Screen Performance](/img/rum/screens.png) + +The screen table reports **Views**, **Unique Sessions**, **Avg Load**, +**p95 Load**, **Avg Time Spent**, **Long Tasks**, and **Crashes**. + +--- + +## Screen Details + +Select a screen to see: + +![Screen Details](/img/rum/screen-details.png) + +- **Load Time Trend** and **Views Over Time** +- Rendering health: **Frame Build Time**, **Frame Raster Time**, **Frame Time** +- Resource usage: **Memory Usage**, **CPU Usage**, **JS Heap Memory** +- **Core Web Vitals** +- **Slowest Loads**, **Long Tasks (Jank Events)**, and **Crashes on this Screen** diff --git a/docs/operate/rum/sessions.md b/docs/operate/rum/sessions.md new file mode 100644 index 00000000..fb0bdf8a --- /dev/null +++ b/docs/operate/rum/sessions.md @@ -0,0 +1,43 @@ +--- +title: RUM Sessions +sidebar_label: Sessions +sidebar_position: 6 +description: + Inspect individual user sessions with RUM in base14 Scout. Review session + status, device details, and a chronological timeline of screen views, taps, + network calls, errors, and crashes. +keywords: + [ + rum, + sessions, + session timeline, + session replay, + mobile sessions, + breadcrumbs, + base14, + scout, + ] +--- + +The **Sessions** tab lists individual user sessions with a status badge — +**Ok**, **Error**, or **Crash**. + +![Sessions List](/img/rum/sessions.png) + +Each row shows **Session ID**, **User**, **Started At**, **Duration**, +**Screens**, **Errors**, **Crashes**, and **Device**. A badge indicates when a +session reported a native crash carried over from a previous session. + +--- + +## Session Timeline + +Click a session to open its timeline — a chronological view of everything that +happened during the session. + +![Session Timeline](/img/rum/session-timeline.png) + +- **Session Attributes** panel with device, OS, app version, and user details +- **Timeline** of events (screen views, taps, network calls, errors, crashes, + breadcrumbs) +- Toggle event types on or off to focus the timeline diff --git a/docs/operate/rum/users.md b/docs/operate/rum/users.md new file mode 100644 index 00000000..a894b40f --- /dev/null +++ b/docs/operate/rum/users.md @@ -0,0 +1,59 @@ +--- +title: RUM Users +sidebar_label: Users +sidebar_position: 9 +description: + Explore identified users and their activity with RUM in base14 Scout. View + per-user sessions, errors, devices, screen performance, and session history. +keywords: + [ + rum, + users, + user monitoring, + session history, + per-user performance, + mobile users, + base14, + scout, + ] +--- + +The **Users** tab lists identified users and their activity. + +![Users](/img/rum/users.png) + +The user table shows **Identifier**, **Sessions**, **Errors**, and **Devices**. +Users with a non-zero error count are highlighted so you can spot who is hitting +problems. + +--- + +## User Details + +Select a user to open their detail view, which brings together everything that +user has done in the app. + +![User Details](/img/rum/user-details.png) + +The header identifies the user and the **Devices**, **OS**, and **App Versions** +they used, followed by **Crashes**, **Errors**, **UI Freezes**, and **Sessions** +stat cards summarizing their experience. + +- **Screen Performance** — per-screen **Views**, **Avg Load**, and + **Avg Time Spent** for this user, so you can see which screens are slow or + failing for them specifically +- **Session History** — the user's sessions with **Started At**, **Duration**, + **Screens**, **Errors**, and **Crashes**, each linking through to its + [session timeline](./sessions.md) + +This makes the Users tab the starting point for support and debugging workflows: +begin from a known user identifier and drill into the exact sessions, screens, +and errors they experienced. + +--- + +## Related Guides + +- [traceX](../tracex/index.md) - Distributed tracing explorer +- [logX](../logx/index.md) - Log explorer with trace correlation +- [Instrument a Flutter app](../../instrument/mobile/flutter.md) diff --git a/static/img/rum/anr-details.png b/static/img/rum/anr-details.png new file mode 100644 index 00000000..7bbf772b Binary files /dev/null and b/static/img/rum/anr-details.png differ diff --git a/static/img/rum/anr.png b/static/img/rum/anr.png new file mode 100644 index 00000000..0a3e0915 Binary files /dev/null and b/static/img/rum/anr.png differ diff --git a/static/img/rum/applications.png b/static/img/rum/applications.png new file mode 100644 index 00000000..959d6aaf Binary files /dev/null and b/static/img/rum/applications.png differ diff --git a/static/img/rum/crash-details.png b/static/img/rum/crash-details.png new file mode 100644 index 00000000..694442fa Binary files /dev/null and b/static/img/rum/crash-details.png differ diff --git a/static/img/rum/crashes.png b/static/img/rum/crashes.png new file mode 100644 index 00000000..87c270c6 Binary files /dev/null and b/static/img/rum/crashes.png differ diff --git a/static/img/rum/error-details.png b/static/img/rum/error-details.png new file mode 100644 index 00000000..df19984a Binary files /dev/null and b/static/img/rum/error-details.png differ diff --git a/static/img/rum/errors.png b/static/img/rum/errors.png new file mode 100644 index 00000000..164c0fb6 Binary files /dev/null and b/static/img/rum/errors.png differ diff --git a/static/img/rum/network.png b/static/img/rum/network.png new file mode 100644 index 00000000..182da195 Binary files /dev/null and b/static/img/rum/network.png differ diff --git a/static/img/rum/overview.png b/static/img/rum/overview.png new file mode 100644 index 00000000..ed5d0a2a Binary files /dev/null and b/static/img/rum/overview.png differ diff --git a/static/img/rum/screen-details.png b/static/img/rum/screen-details.png new file mode 100644 index 00000000..9a2bfcf5 Binary files /dev/null and b/static/img/rum/screen-details.png differ diff --git a/static/img/rum/screens.png b/static/img/rum/screens.png new file mode 100644 index 00000000..1f15d59a Binary files /dev/null and b/static/img/rum/screens.png differ diff --git a/static/img/rum/session-timeline.png b/static/img/rum/session-timeline.png new file mode 100644 index 00000000..956992a4 Binary files /dev/null and b/static/img/rum/session-timeline.png differ diff --git a/static/img/rum/sessions.png b/static/img/rum/sessions.png new file mode 100644 index 00000000..b46a142d Binary files /dev/null and b/static/img/rum/sessions.png differ diff --git a/static/img/rum/user-details.png b/static/img/rum/user-details.png new file mode 100644 index 00000000..880e3829 Binary files /dev/null and b/static/img/rum/user-details.png differ diff --git a/static/img/rum/users.png b/static/img/rum/users.png new file mode 100644 index 00000000..b935c549 Binary files /dev/null and b/static/img/rum/users.png differ