快速开启端到端的用户访问追踪(RUM)

[复制链接]
查看7123 | 回复0 | 2023-7-29 10:16:58 | 显示全部楼层 |阅读模式
快速开启端到端的用户访问追踪(RUM)-1.jpg

+ u+ T& Y2 b8 j% F* ?/ }+ V
在全民互联网时代,用户访问Web、小程序、Android、iOS等媒介的时间越来越长,努力赚取用户注意力的应用越来越多,产品与服务的更新也越来越频繁。在这样的大环境下,详细了解用户从哪里来,看了哪些页面,停留多长时间,访问速度快慢……不仅有利于挖掘每一个用户行为背后的真实需求,稳定并提升现存流量的转化率,还能反哺产品与服务的双重优化,真正实现用户增长和业绩提升。

* B( M' T8 c, L: L
“观测云” 提供了Web、Android、iOS和小程序的用户访问数据监测。完成应用接入后,即可在工作台的「用户访问监测」快速查看和分析各类应用的用户浏览行为及应用相关的性能指标,用于衡量网站及应用的程序的最终用户体验效果。

+ D/ d  k4 k0 y( F3 n4 }
前置条件

- y1 f) ~. P- j0 i  R, Y2 a# ^+ |

    ! t: y9 A$ v0 ]* \8 t, M8 K
  • 您需要先创建一个【 观测云账号 】https://auth.guance.com/register?channel=toutiao* U$ Z, W4 e; x$ g
  • 安装 DataKit 【DataKit 安装文档 】https://www.yuque.com/dataflux/datakit/datakit-how-to
    5 h$ Y5 E4 [6 |. R4 N# n* v
  • 将 DataKit 部署成公网可访问【 RUM 配置文档 】https://www.yuque.com/dataflux/datakit/rum#852abae7
    ; x6 z" m  g! E6 C
  • 操作系统支持:全平台
    0 {1 L' [, g/ ^- s1 K
方法/步骤

9 q8 S( O, e& n
DataKit 默认支持用户访问监测数据的接入,您仅需要完成应用接入,即可通过“观测云” 工作平台实时观测各类应用的用户浏览行为及应用相关的性能指标。
1 E; O; t7 @, C7 D6 y' y6 ^
Step1: 新建任务) J9 b8 _0 O9 g

$ i, Y2 E) @, e! Z  G
    7 B& \2 F2 D6 s( t2 h1 G6 j
  • 登录 “观测云” 控制台,进入「用户访问监测」页面,点击右上角「新建应用」,在新窗口输入「应用名称」,点击「创建」即可创建新的用户访问监测任务。$ l% F" b9 b5 T. R
  • 创建任务后,您需要依据选择的「应用类型」完成下方对应的配置,即可开启相关应用的用户访问监测。/ P9 m: D4 h  M% R: M

8 u% d. u* X* f6 t3 P
快速开启端到端的用户访问追踪(RUM)-2.jpg

. x' c# k6 u$ o0 ~# [. k1 |( q# MStep2: 配置应用接入
- j; a/ q5 p( c1 J8 n; C
" @: P; p; l1 m( R$ V4 Z
以配置Web应用的”同步载入“为例,配置步骤如下:
2 z( K% {0 b8 S! z8 e5 P# I/ R
a. 复制当前页面的代码,并依据要求修改当前代码所需的配置信息。如:修改脚本 datakitOrigin 地址为 DataKit 地址(安装DataKit的主机地址)
/ y; H4 J3 ?5 r' s# L
, ?) U4 @. b3 o, m9 s
快速开启端到端的用户访问追踪(RUM)-3.jpg

& `9 H$ T; M# J+ B. g4 |
b. 进入监测的目标应用,在对应页面HTML中的第一行添加所复制的代码
  ~- T) F2 h$ {# G: T2 [( F- L
c. 修改完成后保存退出
" h" I2 R& g4 s
更多详情可参考:

3 k" K- ]  o0 s0 W. T
    / `- E/ v" {  ^- Z
  • 配置【 Web 应用接入 】https://www.yuque.com/dataflux/doc/eqs7v2
    / f* Z4 m4 H  H4 r
  • 配置【 Android 应用接入 】https://www.yuque.com/dataflux/doc/pnzoyp$ T5 T+ K, i; R0 g$ S- E/ ~
  • 配置【 iOS 应用接入 】https://www.yuque.com/dataflux/doc/gsto6k
    $ _# J4 z- c& l) P* k1 c
  • 配置【 小程序应用接入 】https://www.yuque.com/dataflux/doc/clgea8& Y% T- x- C+ D7 P! E9 i
Step3: 查看用户访问数据" `# R  T  }# Y% f: x

5 s, I6 S6 c5 l0 V3 @( q" Z
在 “观测云” 工作空间「用户访问监测」,点击任意一个应用,即可通过「查看器」对该应用相关的用户访问行为、会话、页面性能、资源勤秋、异常错误等数据进行查看。

+ E7 P, l1 a! `$ d- R! v: _
    4 y, \0 Z6 B* e, U! O$ p5 P
  • Web监测:包含页面性能、资源加载、JS错误等多个场景;查看器支持页面、资源、JS错误等数据的快速检索和筛选查看。
    0 u+ a) U9 `& ~# z1 Q9 W
  • Android监测:包含页面性能、资源加载等多个场景;查看器支持页面、资源、崩溃、卡顿等数据的快速检索和筛选查看。/ ]) d( T. K1 G3 Z
  • iOS监测:包含页面性能、资源加载等多个场景;查看器支持页面、资源、崩溃、卡顿等数据的快速检索和筛选查看。7 Q3 X/ d& `' n
  • 小程序监测:包含页面性能、资源加载、请求加载、JS错误等多个场景;查看器支持页面、资源、请求、JS错误等数据的快速检索和筛选查看。$ V, X1 |1 o/ s# M$ k7 S$ v: }7 R

  F! t4 G) T: E. Y: {
快速开启端到端的用户访问追踪(RUM)-4.jpg

8 D  x. @6 r4 v" J" ^" e. A
进阶参考

2 ]. K: U; B+ h* }" J6 v数据采样
' X# h" P9 F. i* W, t, f0 P$ _4 Z" G* B3 M* K( X
观测云”支持自定义数据采样率,控制数据上报体量,优化数据存储和采集效率。您可以在配置应用接入时,通过 resourceSampleRate(资源类数据采样率)和 sampleRate(指标类数据采样率)自定义数据收集百分比。
4 d, ^" [+ b& j0 c' ^
下面将以Web 应用为例,介绍如何收集90%的Web应用用户访问数据。

- R* s! [/ x' O# p
    ( A$ L  w1 ?$ t0 m. p) Q. N
  • 在 “观测云” 控制台进入「用户访问监测」,通过「新建应用」获取 Web应用的三种方式:NPM 接入、同步载入和异步载入。
    + @+ Z+ x) u. P
  • 以“同步载入”为例,在代码中加入sampleRate: 90,然后复制粘贴到需要接入的页面HTML的第一行,即可按90%的比例采集Web应用的用户访问数据。
    " H. a+ ^! s: x5 S% }4 U
<script src="https://static.guance.com/browser-sdk/v2/dataflux-rum.js" type="text/javascript"></script><script>  window.DATAFLUX_RUM &&    window.DATAFLUX_RUM.init({      applicationId: 'appid_6666666666666666666',      datakitOrigin: '<DATAKIT ORIGIN>', // 协议(包括://),域名(或IP地址)[和端口号]      sampleRate: 90,      env: 'production',      version: '1.0.0',      trackInteractions: true    })</script>
其他应用采样可参考:

3 P) g6 O* t" l
    . V5 w& x3 S- u6 T# l& m8 g
  • IOS采样设置可参考【 IOS 应用接入 】https://www.yuque.com/dataflux/doc/gsto6k#Zx9Q3
    4 i' i# Y8 `. L: j5 }3 _: P$ g0 ~
  • Android采样设置可参考【 Android 应用接入 】https://www.yuque.com/dataflux/doc/pnzoyp#tBmrd
    % e% C/ L7 q: z7 g5 p8 ?
  • 小程序采样设置可参考【 小程序应用接入 】https://www.yuque.com/dataflux/doc/clgea8#MJwVt9 K7 w& o$ D1 v, r+ O
生成指标5 z! a2 H/ T. a& s, e8 ]

( L1 I2 t  i- _; U* E+ _
为了便于您依据需求设计并实现新的技术指标。“观测云” 支持基于当前空间内的现有数据生成新的指标数据。通过选择「用户访问检测」-「生成指标」功能,参考以下步骤可以帮助您生成新的用户访问数据:

# t9 K) B# W; p/ A
2 C  n$ S) y2 t& O! e: w
快速开启端到端的用户访问追踪(RUM)-5.jpg
9 W4 U9 B3 G* f" V& X8 e
Step 1: 数据筛选。筛选出当前空间已有的全部/单个应用数据来源,并基于此数据源开始生成新的数据(“ * ”表示为全部数据来源)。

$ w" @& r$ l) n- R: ?( @" J
Step 2: 数据查询。基于选定的数据源,您可以对现有数据添加筛选和聚合表达式,请求产生新的指标结果和数据集合。

# @* P! \: M0 I6 N
    # Z' a6 v) x8 M4 P* P: C9 j9 L0 o
  • 聚合方法:包含Avg(取平均值)、Min(取最小值)、Max(取最大值)、Count(取数据点数)、p75(统计指定字段75%的值,需选择聚合的字段)、p95(统计指定字段95%的值,需选择聚合的字段)、p99(统计指定字段99%的值,需选择聚合的字段)8 a% I- f$ ]3 C; S( v  a9 S9 _4 h$ J
  • 样本指标:设置的数据生成的样本指标,即通过对样本指标的查询和聚合产生新的指标结果6 L- S) _3 h, l
  • 维度:按照所选对象进行数据聚合,即对数据请求中的每一个所选对象都生成一个统计值( ~, ?4 Q1 Q; z% Y6 ?: E
  • 筛选:支持对现有标签数据添加一个/多个筛选过滤条件,并对同一行筛选条件添加“并且“ (and)、“或者”(or)关系
    : |8 U9 P9 ~6 R- z  M
  • 时间范围:生成指标数据的时间粒度,默认为15分钟,即15分钟内某数据统计展示的效果。: T4 ~4 @/ T, E$ B
Step 3: 生成指标。对生成指标的方式和结果进行设置,包括生成指标的周期、新生成指标的标签名称和指标集名称。
, ~! t. G+ E# j2 z" s; X8 D& |- U
    . |6 \3 L: h+ \# S( J+ a1 \
  • 频率:生成指标的执行周期,默认1分钟,即每1分钟生成一次新的指标数据
    # n3 s' ?- X. _0 p2 C* U
  • 指标集:设置指标存放的指标集的名称3 T8 Z/ t3 M) B1 q# S
  • 指标:设置指标的名称,其中指标名称不允许重复,可添加多个指标  }8 }/ V# P+ e# r6 E9 t0 m+ T
Step 4: 完成生成规则的填写后,点击「确定」即可完成生成指标规则并开启数据采集。

; B4 e  z2 X! E! n; |' O
所有已添加的规则都将展示在「生成指标」的界面中,用户可进行「编辑」「删除」「启用/禁用」和「查看指标」

7 G6 C- h" U4 Z& U5 Z! H  V5 d( R5 ~8 Z. t
快速开启端到端的用户访问追踪(RUM)-6.jpg
" ^, N1 ^& Y& S3 U& C& l
更多详情可参考【 用户访问监测-生成指标 】https://www.yuque.com/dataflux/doc/sbyggu

# l  [% Y  N, O6 T/ j7 O! R$ pSouremap
- g& O, G" c3 K) ^
/ s7 h9 L, }/ r" e( S
应用在生产环境中发布的时候,为了防止代码泄露等安全问题,一般打包过程中会针对文件做转换、压缩等操作。Souremap 作为一类信息文件,记录了转换压缩后的代码所对应的转换前的源代码位置,构建了处理前以及处理后的代码之间的一座桥梁,方便定位生产环境中出现 bug 的位置。"观测云" 为 Web 应用程序提供 Sourcemap 功能,支持还原混淆后的代码,方便错误排查时在源码中debug,及时帮助用户更快解决问题。

5 Q6 B* ]. g/ ]- o3 Y. }9 c& b" [# j* z7 E1 J
快速开启端到端的用户访问追踪(RUM)-7.jpg

- J* w. E, m& J5 j5 ^+ R$ P
Step 1: 开始使用 Sourcemap前,您需要将应用对应的map文件上传到 “观测云”,“观测云” 会根据拿到的 map文件自动完成映射还原。具体步骤如下:

1 q( u* t( h$ D3 c; ]; b' Q1.配置 Javascript bundler:用来映射转换、压缩后的 js 代码。以使用 webpackJS 举例,使用内置插件 SourceMapDevToolPlugin 生成源映射,在下面查看如何在 webpack.config.js 文件中配置它:6 ?$ b9 B# E% B- f  c$ x
// ...const webpack = require('webpack');module.exports = {  mode: 'production',  devtool: false,  plugins: [    new webpack.SourceMapDevToolPlugin({      noSources: false,      filename: '[file].map'    }),    // ...  ],  optimization: {    minimize: true,    // ...  },  // ...};
注意:如果用的是 TypeScript ,在配置 tsconfig.json 时设置 compilerOptions.sourceMap 为 true。
1 e" L) ?. h$ G% a
假设如下 error_stack:
/ U. g  q% j- V) `6 S* t6 R( r7 i
ReferenceErrorat a.hideDetail @ http://localhost:8080/static/js/app.7fb548e3d065d1f48f74.js:1:1037at a.showDetail @ http://localhost:8080/static/js/app.7fb548e3d065d1f48f74.js:1:986at <anonymous> @ http://localhost:8080/static/js/app.7fb548e3d065d1f48f74.js:1:1174
需要转换的路径是 /static/js/app.7fb548e3d065d1f48f74.js,与其对应的 sourcemap 路径为 /static/js/app.7fb548e3d065d1f48f74.js.map,那么对应压缩包解压后的目录结构如下:
7 P4 x) f1 \$ X& ~: G. H
static/js/app.7fb548e3d065d1f48f74.js.map
转换后的 error_stack_source :

( l7 t) c: f. D, |1 Aat a.hideDetail @ webpack:///src/components/header/header.vue:94:0at a.showDetail @ webpack:///src/components/header/header.vue:91:0at <anonymous> @ webpack:///src/components/header/header.vue:101:0
变量说明:

) }" Q2 x& t, }  X# }% G' ^
      T' k% O1 E8 ~
  • <app_id>:对应 RUM 的 applicationId
    " m( r( ?2 J* ?1 M7 Z
  • <dea_address>: DCA 服务的地址,如 http://localhost:9531
    & O2 W5 [% _6 O7 a1 ]; }2 c
  • <sourcemap_path>:待上传的 sourcemap 压缩包文件路径
    8 {2 v) k% t) `8 u# y. ~% k
  • <env>:对应 RUM 的 env- t/ w8 p7 h$ F/ L9 \- y+ Y, J% `
  • <version>:对应 RUM 的 version
    ; w+ g7 }/ q8 F" ]
2.sourcemap 打包压缩:得到 zip 格式文件。将 sourcemap 文件压缩打包成 zip,命名格式为 <app_id>-<env>-<version>.zip ,并保证该压缩包解压后的文件路径与 error_stack 中 URL 的路径一致。
/ ?- q1 C0 C+ Xzip -q -r <app_id>--.zip sourcemap文件目录3.上传:zip 文件上传至 datakit。可以手动上传至 datakit 相关目录, <Datakit 安装目录>/data/rum/,这样就可以对上报的 error 数据自动进行转换,并追加 error_stack_source 字段至该指标集中。也可以使用 http 接口上传和删除该文件,前提是开启 DCA 服务。
' u. E/ D) i9 `% V) q
上传:
5 z9 O- B8 \6 h6 b$ E
cur1 -x POST '<dca_address>/v1/rum/sourcemap?app_id=<app_id>&env=&version=<versio删除:! {$ Q. [! ]: k" _- X
cur1 -X DELETE '<dca_address>/v1/rum/sourcemap?app_id=<app_id>&env=&version=<vers
Step 2: 通过访问“观测云”「用户访问监测」,在页面性能数据(view) 和会话数据(session) 详情页面,点击「错误」数据,通过「查看 sourcemap」您可以及时发现错误堆栈信息(真实的代码发生错误的地方)。

. S  i0 n, I$ `. a
/ F, q# V2 [: ?7 l: p. s2 h
快速开启端到端的用户访问追踪(RUM)-8.jpg
2 p2 Y0 i) Y# ^/ u6 \7 Y
注意事项:
1 y4 N0 p/ ~, l& y2 p  L3 ]6 z
    ( J! R! a* @. T
  • 该转换过程,只针对 error 数据。
    ! Q9 P# \% ?7 v  L
  • 当前只支持 js 的 sourcemap 转换。2 x* _( @5 y/ [  X) x* c+ T0 I' v
  • sourcemap 文件名称需要与原文件保持一致,如果未找到对应的 sourcemap 文件,将不进行转换。
    ' Y( m$ P$ g+ z! |
  • 通过接口上传的 sourcemap 压缩包,不需要重启 DataKit 即可生效,但如果是手动上传,需要重启 DataKit ,方可生效。
    ! [+ b" T0 z0 C: d4 j
自建追踪
: b' e- O( S" @2 U
& s1 [; T. n2 _# X
“观测云” 支持你通过「用户访问监测」新建追踪任务,对自定义的链路追踪轨迹进行实时监控。通过预先设定链路追踪轨迹,可以集中筛选链路数据,精准查询用户访问体验,及时发现漏洞、异常和风险。

/ U% Z+ U9 O8 B6 k- M1 e6 m
Step 1: 新建追踪
1 e2 p$ i4 r- H, a
在观测云工作空间的「用户访问监测」中,点击「应用名称」进入指定应用,即可通过「追踪」新建追踪轨迹。

  X7 ?9 M6 ]+ t3 n$ ^* Z8 r3 z: r
进行「新建追踪」时,您需要设定名称和字段,并在生成追踪ID后完成引入配置
; C0 C2 x* I( p
    7 G0 d3 k& P# ?6 b' \4 u( p
  • 追踪名称:当前追踪任务的名称。支持中英文混写,支持下划线作为分隔符,不支持其他特殊字符,且最多支持64个字符串
    - }0 C/ D( h' E6 b2 B
  • 标签:定义链路追踪字段。支持通过下拉框选择当前应用下的标签( key:value ),支持多选- s  `1 u! r+ D: x9 n
  • 追踪ID:点击「生成追踪ID」即可新建追踪轨迹,并由系统生成的唯一追踪ID标识。
    6 d6 J) Z9 C+ X$ `5 p4 S3 ~

/ s- A: h) P/ B5 ]+ _
快速开启端到端的用户访问追踪(RUM)-9.jpg
# D& [3 |% u4 w) o
Step 2: 配置引入方式
9 P+ i: [* @! H5 Q" H; l2 J
生成追踪ID后,需要根据追踪ID信息在应用中引入代码。以Web应用的”NPM引入“为例,配置步骤如下:
, I- s* Y0 g2 m1 m! ?
a. 复制当前页面的代码。
, e' O% {5 Y& R1 P% `5 g
b. 初始化 SDK 后,使用所复制的代码添加追踪ID
8 D5 X- F8 v3 c/ {6 w, d7 U3 @, S
c. 修改完成后保存退出

9 J8 g1 }( `, x2 N
9 n5 W4 s1 ~! {9 v9 `9 P
快速开启端到端的用户访问追踪(RUM)-10.jpg
7 @% x0 m3 r7 _/ N
详细步骤请参考【 追踪配置示例 】https://www.yuque.com/dataflux/doc/gxavg8

! }% B0 M' E; j1 t# P$ ]8 V
【 立即体验观测云 】https://auth.guance.com/register?channel=toutiao
8 M: \1 u0 L" R

, c/ }2 X2 S& `$ S, V8 Y9 T; G
快速开启端到端的用户访问追踪(RUM)-11.jpg

! g( i6 v5 a0 w+ G; y0 {  O
" @# Z. }9 s( f  q  |" L
快速开启端到端的用户访问追踪(RUM)-12.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

10

金钱

0

收听

0

听众
性别

新手上路

金钱
10 元