移动/游戏
在 Dynatrace 最新 RUM 上排查…
适用于用 DQL 查询 Dynatrace RUM 的 `user.events`、`user.sessions` 和 `dt.frontend.*` 指标,分析 Web/移动前端 Core Web Vitals、会话、点击、错误、崩溃和前后端关联。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在 Dynatrace 最新 RUM 上特定
解决思路
- 使用 DQL 监控 Web 和移动前端的 Real User Monitoring(RUM);只针对最新 Dynatrace RUM,不要使用 RUM Classic 数据。
- 按问题选择数据源:用 `timeseries dt.frontend.*` 看趋势、仪表盘、告警,因为它是聚合指标。
- 按问题选择数据源:用 `fetch user.events` 做根因分析,查看单次页面浏览、请求、点击、错误,因为它是逐事件粒度。
- 按问题选择数据源:用 `fetch user.sessions` 分析跳出率、会话时长、会话级聚合,因为它是逐会话粒度。
- 经验法则:先用 metrics 判断问题形态,再下钻到 events 找原因;当问题是用户旅程而不是单次交互时用 sessions。
- 查阅概念和数据模型文档:https://docs.dynatrace.com/docs/observe/digital-experience/new-rum-experience/concepts
- 查阅完整 user events 事件模型:https://docs.dynatrace.com/docs/semantic-dictionary/model/rum/user-events
- 查阅 DQL 语言参考(函数、语法、操作符):https://docs.dynatrace.com/docs/platform/grail/dynatrace-query-language
- 使用 `dt.frontend.*` 指标时,可用维度包括:`frontend.name`、`device.type`、`geo.country.iso_code`、`browser.name`、`os.name`、`dt.rum.user_type`、`dt.smartscape.frontend`。
- Core Web Vitals 指标:`dt.frontend.web.page.largest_contentful_paint`、`dt.frontend.web.page.interaction_to_next_paint`、`dt.frontend.web.page.cumulative_layout_shift`、`dt.frontend.web.page.first_input_delay`。
- Navigation timing 指标:`dt.frontend.web.navigation.time_to_first_byte`、`dt.frontend.web.navigation.dom_interactive`、`dt.frontend.web.navigation.load_event_end`。
- 错误计数使用 `dt.frontend.error.count`。
- 请求量和延迟使用 `dt.frontend.request.count` / `dt.frontend.request.duration`。
- 用户操作量和时长使用 `dt.frontend.user_action.count` / `dt.frontend.user_action.duration`。
- 活跃会话和活跃用户使用 `dt.frontend.session.active.estimated_count` / `dt.frontend.user.active.estimated_count`;这两者是基数指标,聚合时用 `countDistinct()`。
- 在 `user.events` 和 `user.sessions` 上通用过滤字段:`frontend.name`,优先用它做所有过滤;在 `user.sessions` 上它是数组(一个会话可跨多个 frontends)。
- 使用 `dt.smartscape.frontend` 仅作为 Smartscape 实体引用,用来访问实体属性(如 tags 或 linked services),不要用于按名称过滤;不要先查询 Smartscape 将名称解析为实体 ID 再与 `user.events` join,始终直接在 `frontend.name` 上过滤。
- 通用过滤:`dt.rum.user_type`,取值为 `real_user`、`synthetic`、`robot`。
- 通用过滤:`dt.rum.application.type`,取值为 `web` 或 `mobile`。
- 通用过滤:`dt.rum.session.id`、`dt.rum.instance.id`。
- 通用过滤:`os.name`、`geo.country.iso_code`、`client.isp`。
- 通用过滤:`client.ip` 客户端 IP 地址;这是敏感字段,默认隐藏,见 Field Permissions。
- `user.events` Web 专用过滤:`browser.name`、`browser.version`、`device.type`。
- `user.events` 移动专用过滤:`device.model.identifier`、`device.manufacturer`、`app.short_version`。
- 常见 characteristic 过滤:用 `| filter characteristics.has_X` 将 `user.events` 限定到特定事件类型。
- `characteristics.has_page_summary`:页面加载(Web)。
- `characteristics.has_view_summary`:视图(SPA + 移动屏幕)。
- `characteristics.has_navigation`:导航事件。
- `characteristics.has_user_action`:用户操作。
- `characteristics.has_error`:所有错误。
- 查阅 characteristics 完整参考:references/characteristics.md。
- 字段权限:`client.ip`、`user.identifier` 等敏感字段属于 fieldset `builtin-sensitive-user-events-and-sessions`,在 `user.events` 和 `user.sessions` 上默认隐藏;无权限用户看到 `null`,按这些字段过滤或分组会静默返回空结果。
- 授权策略语句:`ALLOW storage:fieldsets:read WHERE storage:fieldset-name="builtin-sensitive-user-events-and-sessions"`。
- 查阅字段权限参考:https://docs.dynatrace.com/docs/shortlink/rum-on-grail-permissions#field-permissions
- 下钻模式第 1 步:按 `by: {frontend.name}` 分组,找出受影响的应用;如需预先区分 Web 与移动端,按 `dt.rum.application.type`(`web` 或 `mobile`)过滤。
- 下钻模式第 2 步:定位受影响页面或视图;`page.name` 是页面 URL 归一化后的 Dynatrace 实体名,仅 Web;`view.name` 是 SPA 路由或移动屏幕名,Web 和移动都可用。
- `page.name` 和 `view.name` 可同时存在于同一事件;对 Web SPA,`page.name` 反映顶层文档,`view.name` 反映当前路由,按 `view.name` 分组粒度更细;移动端只用 `view.name`。
- 附加收窄维度:特定请求/端点用 `url.domain`、`url.path`(Web + 移动),用于某 API 调用的性能或错误模式。
- 附加收窄维度:单个用户会话用 `dt.rum.session.id`(Web + 移动),用于复现特定用户旅程,并连接 session replay。
- 附加收窄维度:设备形态用 `device.type`(仅 Web),用于桌面、移动浏览器、平板模式。
- 附加收窄维度:浏览器兼容性用 `browser.name`、`browser.version`(仅 Web),用于只在某些浏览器出现的问题。
- 附加收窄维度:App 版本用 `app.short_version`(仅移动),用于特定 App 版本引入的回归。
- 附加收窄维度:地理用 `geo.country.iso_code`(Web + 移动),用于区域基础设施或 CDN 问题。
- 附加收窄维度:合成与真实流量用 `dt.rum.user_type`(Web + 移动),用于在面向用户分析前排除 synthetic monitors。
- 工作流参考文件:开始工作流时再加载对应 reference,不要预先加载。
- 事件 characteristics(类型、过滤器、event_type 导出)参考 `references/characteristics.md`。
- Web Vitals(LCP、FCP、FID、INP、CLS)参考 `references/web-vitals.md`。
- 会话、跳出、互动分析参考 `references/user-sessions.md`。
- 用户操作(交互生命周期、完成原因、超时)参考 `references/user-actions.md`。
- 错误、异常、失败请求参考 `references/error-tracking.md`。
- 前后端关联(机制、trace 覆盖率、`frontend.link`)参考 `references/frontend-backend-linking.md`。
- CSP 违规(安全策略执行和阻断资源)参考 `references/csp-violations.md`。
- 移动应用启动、崩溃、ANR、原生信号参考 `references/mobile-monitoring.md`。
- 请求延迟、长任务、JS profiling、地理性能参考 `references/web-performance-analysis.md`。
- 可见性变化(标签切换、后台时间、互动质量)参考 `references/visibility-changes.md`。
- 慢页面加载(后端 vs 渲染 vs 网络 vs JS 分诊)参考 `references/slow-page-load-playbook.md`。
- 诊断零结果、异常、模糊数据参考 `references/troubleshooting.md`。
- 性能阈值:LCP:Good < 2.5 s | Poor > 4.0 s。
- 性能阈值:INP:Good < 200 ms | Poor > 500 ms。
- 性能阈值:CLS:Good < 0.1 | Poor > 0.25。
- 性能阈值:FCP:Good < 1.8 s | Poor > 3.0 s。
- 性能阈值:TTFB:Good < 800 ms | Poor > 1800 ms。
- 移动冷启动:Good < 3 s | Poor > 5 s。
- 移动温启动:Good < 1.5 s | Poor > 2 s。
- 移动热启动:Good < 500 ms | Poor > 1 s。
- 长任务:> 50 ms 有问题,> 250 ms 严重。
- 查阅 Web vitals 阈值参考:https://web.dev/articles/vitals
- 适用领域:真实用户 Web 和移动前端遥测——Core Web Vitals、会话、点击、错误、崩溃、浏览器/App 端请求延迟、前后端关联。
- 非本技能领域:合成监控/可用性检查用 `dt-obs-synthetic`。
- 非本技能领域:后端服务、trace、span 用 `dt-obs-services`、`dt-obs-tracing`。
- 非本技能领域:基础设施、主机用 `dt-obs-hosts`。
- 非本技能领域:日志用 `dt-obs-logs`。
- 非本技能领域:问题和事件用 `dt-obs-problems`。
适用边界 · 注意事项
- 不要用于合成监控/可用性检查(HTTP/browser/network checks);这些属于 `dt-obs-synthetic`。
- 不要用于后端服务、trace/span、基础设施/主机、日志、问题/事件等非前端 RUM 领域。
- 不要使用旧版 RUM Classic 数据;本技能只针对最新 Dynatrace RUM。