mcpField
D
dt-obs-frontends

dt-obs-frontends

github.com/dynatrace云与 DevOps1692.6k 次安装今天更新
代码仓库

关于 dt-obs-frontends

dt-obs-frontends 是面向 Dynatrace 前端观测的技能,供分析 Web 和移动应用真实用户遥测的人员使用。它按指标、事件和会话分层组织 DQL 分析,并提供常见排查流程。

主要功能

  1. 01查询 Web 和移动端 RUM 数据
  2. 02分析 Core Web Vitals 与导航性能
  3. 03按事件、会话和用户操作排查
  4. 04调查错误、请求延迟与崩溃
  5. 05关联前端与后端数据

适用场景

  1. 01定位 Web 页面性能下降
  2. 02分析移动应用会话与崩溃
  3. 03按浏览器或应用版本排查问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dynatrace/dynatrace-for-ai --skill dt-obs-frontends

安装后在 Claude Code 中输入/dt-obs-frontends确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
characteristics.md
csp-violations.md
error-tracking.md
frontend-backend-linking.md
mobile-monitoring.md
slow-page-load-playbook.md
troubleshooting.md
user-actions.md
user-sessions.md
visibility-changes.md
web-performance-analysis.md
web-vitals.md

详细介绍

前端可观测性(RUM)

使用 DQL 通过真实用户监控(RUM)监控 Web 和移动端前端。 目标是 最新 Dynatrace 上的 RUM——请勿使用 RUM Classic 数据。

概念和数据模型: https://docs.dynatrace.com/docs/observe/digital-experience/new-rum-experience/concepts

数据模型

三个数据源,分别用于回答不同的问题:

数据源用途粒度
timeseries dt.frontend.*趋势、仪表板、告警聚合指标
fetch user.events根本原因分析、单个页面浏览 / 请求 / 点击 / 错误单个事件
fetch user.sessions跳出率、会话时长、会话级聚合数据单个会话

经验法则:先用指标了解问题的整体情况,再深入查看事件以弄清原因。涉及用户旅程而非单次交互的问题,请使用会话数据。

完整事件模型: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):

  • 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 — Core Web Vitals
  • 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 中为数组(一个会话可能跨越多个前端)。dt.smartscape.frontend 是 Smartscape 实体引用——使用它访问实体属性,例如标签或关联服务,而非按名称筛选。请避免查询 Smartscape 来将名称解析为实体 ID,再与 user.events 连接——始终直接按 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 地址 (敏感字段——默认隐藏;请参阅下文的字段权限)

user.events — 仅 Web:

  • browser.name、browser.version、device.type

user.events — 仅移动端:

  • device.model.identifier、device.manufacturer、app.short_version

常用特征筛选条件(将 user.events 限定为特定事件类型——使用 | filter characteristics.has_X):

  • characteristics.has_page_summary — 页面加载(Web)
  • characteristics.has_view_summary — 视图(SPA + 移动端屏幕)
  • characteristics.has_navigation — 导航事件
  • characteristics.has_user_action — 用户操作
  • characteristics.has_error — 所有错误

完整特征参考:references/characteristics.md

字段权限

某些字段是敏感字段,属于 builtin-sensitive-user-events-and-sessions 字段集。在 user.events 和 user.sessions 中,这些字段默认都是隐藏的——无权访问的用户会看到 null,按这些字段筛选或分组的查询会静默返回无结果。

此技能中使用的敏感字段:

  • client.ip — 客户端 IP 地址
  • user.identifier — 真实用户身份

使用以下策略语句授予访问权限:

ALLOW storage:fieldsets:read WHERE storage:fieldset-name="builtin-sensitive-user-events-and-sessions"

参考:字段权限

逐层深入分析模式

无论具体问题领域是什么(错误、性能、后台活动等),大多数调查都会遵循这种分层方法:

1. 确定前端

首先按 by: {frontend.name} 分组,找出受影响的应用。如果需要在分析开始时区分 Web 和移动端,请按 dt.rum.application.type(web 或 mobile)筛选。

2. 找出受影响的页面或视图

这两个字段都可用于所有事件(不局限于特定特征):

  • page.name — 规范化为 Dynatrace 实体名称的页面 URL;仅限 Web
  • view.name — SPA 路由或移动端屏幕名称;Web 和移动端均可用

同一事件上可能同时存在这两个字段。对于 Web SPA,page.name 表示顶层文档,而 view.name 表示当前路由——按 view.name 分组可获得更细的粒度。对于移动端,仅使用 view.name。

进一步缩小范围的维度

维度字段平台使用场景
特定请求 / 端点url.domain, url.pathWeb + 移动端特定 API 调用的性能或错误模式
单个用户会话dt.rum.session.idWeb + 移动端重现特定用户的操作过程;可关联到会话回放
设备形态device.type仅限 Web桌面端、移动浏览器或平板模式
浏览器兼容性browser.name, browser.version仅限 Web仅在特定浏览器上出现的问题
应用版本app.short_version仅限移动端特定应用版本引入的回归问题
地理位置geo.country.iso_codeWeb + 移动端区域基础设施或 CDN 问题
合成流量与真实流量dt.rum.user_typeWeb + 移动端在面向用户的分析前排除合成监控流量

工作流

每个工作流都对应一个或多个参考文档。开始工作流时再加载参考文档,无需提前加载。

工作流参考文档
事件特征 — 类型、筛选条件、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
前端与后端关联 — 机制、追踪覆盖率、frontend.linkreferences/frontend-backend-linking.md
CSP 违规 — 安全策略执行与被阻止的资源references/csp-violations.md
移动应用启动、崩溃、ANR、原生信号references/mobile-monitoring.md
请求延迟、长任务、JS 性能分析、地理位置性能references/web-performance-analysis.md
可见性变化 — 切换标签页、后台停留时间、参与度质量references/visibility-changes.md
页面加载缓慢 — 后端、渲染、网络、JS 分诊references/slow-page-load-playbook.md
诊断零结果、异常、含义不明确的数据references/troubleshooting.md

性能阈值(速查)

  • LCP:良好 < 2.5 s | 较差 > 4.0 s
  • INP:良好 < 200 ms | 较差 > 500 ms
  • CLS:良好 < 0.1 | 较差 > 0.25
  • FCP:良好 < 1.8 s | 较差 > 3.0 s
  • TTFB:良好 < 800 ms | 较差 > 1800 ms
  • 移动端冷启动:良好 < 3 s | 较差 > 5 s
  • 移动端温启动:良好 < 1.5 s | 较差 > 2 s
  • 移动端热启动:良好 < 500 ms | 较差 > 1 s
  • 长任务:> 50 ms 为问题,> 250 ms 为严重问题

Web vitals 阈值(LCP、INP、CLS、FCP、TTFB):https://web.dev/articles/vitals

适用场景

此技能适用于真实用户 Web 和移动端前端遥测,包括 Core Web Vitals、会话、点击、错误、崩溃、来自浏览器/应用的请求延迟,以及前端与后端关联。

以下场景请使用其他技能:

  • 合成监控 / 可用性检查 → dt-obs-synthetic
  • 后端服务、追踪、跨度 → dt-obs-services、dt-obs-tracing
  • 基础设施、主机 → dt-obs-hosts
  • 日志 → dt-obs-logs
  • 问题和事件 → dt-obs-problems

评论

支持 Markdown