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

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

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

3 |8 ]% w1 d8 W, c
“观测云” 提供了Web、Android、iOS和小程序的用户访问数据监测。完成应用接入后,即可在工作台的「用户访问监测」快速查看和分析各类应用的用户浏览行为及应用相关的性能指标,用于衡量网站及应用的程序的最终用户体验效果。
7 g" f9 Q, A7 ?. b/ @# o
前置条件
) @3 C% d6 [! P4 ~# l  {& `

    . a6 W" u4 Z" C$ x$ X
  • 您需要先创建一个【 观测云账号 】https://auth.guance.com/register?channel=toutiao+ v/ b$ I6 [  [1 V
  • 安装 DataKit 【DataKit 安装文档 】https://www.yuque.com/dataflux/datakit/datakit-how-to
    $ \, U! p& w( L+ O3 P; m
  • 将 DataKit 部署成公网可访问【 RUM 配置文档 】https://www.yuque.com/dataflux/datakit/rum#852abae7
    4 D& Z/ h) E: `  M8 C
  • 操作系统支持:全平台9 b* l# i! ^' ?
方法/步骤

2 L" g( Q& `& G1 i
DataKit 默认支持用户访问监测数据的接入,您仅需要完成应用接入,即可通过“观测云” 工作平台实时观测各类应用的用户浏览行为及应用相关的性能指标。
( {7 Y- \5 E) p) r- \
Step1: 新建任务
6 T4 R. J9 Y- W% x/ \6 s
+ b) w1 l5 H9 w
    1 X5 m3 n+ j8 g1 l0 r  c
  • 登录 “观测云” 控制台,进入「用户访问监测」页面,点击右上角「新建应用」,在新窗口输入「应用名称」,点击「创建」即可创建新的用户访问监测任务。# M' I- k* u/ W3 s" T/ W& l* d
  • 创建任务后,您需要依据选择的「应用类型」完成下方对应的配置,即可开启相关应用的用户访问监测。
    ! W  G, s4 f3 }2 X* z- l5 F) g( |
+ o: T( X. l+ d5 }2 L
快速开启端到端的用户访问追踪(RUM)-2.jpg
" |3 ~6 G: d( j
Step2: 配置应用接入
+ J- V5 q' l7 [& B  b0 ^- d/ q. G* I, V& W  e- w5 y  U
以配置Web应用的”同步载入“为例,配置步骤如下:

+ B  Y; C# h' z* x0 X/ w* k4 n
a. 复制当前页面的代码,并依据要求修改当前代码所需的配置信息。如:修改脚本 datakitOrigin 地址为 DataKit 地址(安装DataKit的主机地址)

2 G+ h) W' l6 P& D' f1 P( u2 _6 X, b% d- f8 S3 a
快速开启端到端的用户访问追踪(RUM)-3.jpg
# V6 m" |; f8 x) n  l1 Z# P
b. 进入监测的目标应用,在对应页面HTML中的第一行添加所复制的代码

7 M& a0 S+ O6 h5 v% K, P# h1 z
c. 修改完成后保存退出

- L$ K8 U: m4 V' a
更多详情可参考:

% k2 ~: _5 k9 g% c$ Q" g
    # }2 A% e( o$ u) L, e) T& y
  • 配置【 Web 应用接入 】https://www.yuque.com/dataflux/doc/eqs7v24 _- H- N$ [$ J- N* A
  • 配置【 Android 应用接入 】https://www.yuque.com/dataflux/doc/pnzoyp
    1 |4 ^5 e: O* D3 i
  • 配置【 iOS 应用接入 】https://www.yuque.com/dataflux/doc/gsto6k" h5 |* Z: l! G0 O3 R! I
  • 配置【 小程序应用接入 】https://www.yuque.com/dataflux/doc/clgea8
    & Z, `, r  M. f3 ?6 U
Step3: 查看用户访问数据2 P9 ~% c& K0 a1 [
) ]9 k+ Y! K9 F7 Q5 N0 c
在 “观测云” 工作空间「用户访问监测」,点击任意一个应用,即可通过「查看器」对该应用相关的用户访问行为、会话、页面性能、资源勤秋、异常错误等数据进行查看。
% T% g% w. Z& v

    & S( ?0 T9 w+ A- ]: {* h+ F
  • Web监测:包含页面性能、资源加载、JS错误等多个场景;查看器支持页面、资源、JS错误等数据的快速检索和筛选查看。
    " `" G9 a( p: I7 A" z) |& z- n
  • Android监测:包含页面性能、资源加载等多个场景;查看器支持页面、资源、崩溃、卡顿等数据的快速检索和筛选查看。+ z$ P( w. {& R* |4 P; Z4 s8 R3 n/ s9 v
  • iOS监测:包含页面性能、资源加载等多个场景;查看器支持页面、资源、崩溃、卡顿等数据的快速检索和筛选查看。, r9 H+ r2 v/ K  v( w: n
  • 小程序监测:包含页面性能、资源加载、请求加载、JS错误等多个场景;查看器支持页面、资源、请求、JS错误等数据的快速检索和筛选查看。* ^% d, W5 T5 ]- @( o

9 [- W/ Z* d* C! _+ w
快速开启端到端的用户访问追踪(RUM)-4.jpg

# j. a' W, V0 A  ^* s$ e" g
进阶参考
! G: v3 r0 N% D# v2 G
数据采样
. u5 ]5 \( A* T9 H6 _% {
" t3 d0 K  N& ]- }
观测云”支持自定义数据采样率,控制数据上报体量,优化数据存储和采集效率。您可以在配置应用接入时,通过 resourceSampleRate(资源类数据采样率)和 sampleRate(指标类数据采样率)自定义数据收集百分比。
- |2 e+ z& A' f& _" _7 W7 B
下面将以Web 应用为例,介绍如何收集90%的Web应用用户访问数据。

5 A3 Z& V& H0 }
    . v* L  _5 ]0 l
  • 在 “观测云” 控制台进入「用户访问监测」,通过「新建应用」获取 Web应用的三种方式:NPM 接入、同步载入和异步载入。
    5 o8 }, v" H8 j6 }3 q8 l
  • 以“同步载入”为例,在代码中加入sampleRate: 90,然后复制粘贴到需要接入的页面HTML的第一行,即可按90%的比例采集Web应用的用户访问数据。6 T  A9 ]% B2 k. M
<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>
其他应用采样可参考:

& U% R" O2 `, g8 R* U: T* i* x
    % j$ a" P( z3 J- P$ i
  • IOS采样设置可参考【 IOS 应用接入 】https://www.yuque.com/dataflux/doc/gsto6k#Zx9Q3
    ! c6 u" W1 x+ L: K" ?
  • Android采样设置可参考【 Android 应用接入 】https://www.yuque.com/dataflux/doc/pnzoyp#tBmrd
    7 o0 p$ i) k2 a2 S( m4 \( T8 {$ j' E% x
  • 小程序采样设置可参考【 小程序应用接入 】https://www.yuque.com/dataflux/doc/clgea8#MJwVt  H2 O) ]5 B$ T9 `" C5 `
生成指标* w& p/ B/ L: P0 _
# S; M8 L  X$ Z2 R  n) F  R" t! E
为了便于您依据需求设计并实现新的技术指标。“观测云” 支持基于当前空间内的现有数据生成新的指标数据。通过选择「用户访问检测」-「生成指标」功能,参考以下步骤可以帮助您生成新的用户访问数据:
- `  x6 ^/ V, B/ I# k5 d4 w

" `! }' b2 i( L7 w- \8 t
快速开启端到端的用户访问追踪(RUM)-5.jpg
. [! w- n) A4 n) y
Step 1: 数据筛选。筛选出当前空间已有的全部/单个应用数据来源,并基于此数据源开始生成新的数据(“ * ”表示为全部数据来源)。

' H. x+ \$ X4 ?! y
Step 2: 数据查询。基于选定的数据源,您可以对现有数据添加筛选和聚合表达式,请求产生新的指标结果和数据集合。

  A0 p: ]# I7 V

    . Y  N1 _1 V. M
  • 聚合方法:包含Avg(取平均值)、Min(取最小值)、Max(取最大值)、Count(取数据点数)、p75(统计指定字段75%的值,需选择聚合的字段)、p95(统计指定字段95%的值,需选择聚合的字段)、p99(统计指定字段99%的值,需选择聚合的字段)
    ! ^" x" I1 Q4 z) r) G
  • 样本指标:设置的数据生成的样本指标,即通过对样本指标的查询和聚合产生新的指标结果
    / G. M& E* I* s+ ]6 N" j
  • 维度:按照所选对象进行数据聚合,即对数据请求中的每一个所选对象都生成一个统计值) g! Y) A2 m- a0 c. ~  i# {- S/ ~
  • 筛选:支持对现有标签数据添加一个/多个筛选过滤条件,并对同一行筛选条件添加“并且“ (and)、“或者”(or)关系+ j# x' k3 W/ {3 L& ~
  • 时间范围:生成指标数据的时间粒度,默认为15分钟,即15分钟内某数据统计展示的效果。" M- ?4 Z0 r; D  e; ?' H
Step 3: 生成指标。对生成指标的方式和结果进行设置,包括生成指标的周期、新生成指标的标签名称和指标集名称。

4 O  l9 @+ U2 \% ]3 D
    0 C( i% Z" a% _: ]( K9 L+ M
  • 频率:生成指标的执行周期,默认1分钟,即每1分钟生成一次新的指标数据7 i5 _) v4 s& {1 i
  • 指标集:设置指标存放的指标集的名称
    6 ^+ O  w: }) f; P/ O
  • 指标:设置指标的名称,其中指标名称不允许重复,可添加多个指标
    8 y, i# d) E) K9 U
Step 4: 完成生成规则的填写后,点击「确定」即可完成生成指标规则并开启数据采集。
2 @) l" g2 K( Q" I
所有已添加的规则都将展示在「生成指标」的界面中,用户可进行「编辑」「删除」「启用/禁用」和「查看指标」
! U8 D; t) l8 x1 d' T! a
0 _2 ?  |5 R6 f. |# h( [- n
快速开启端到端的用户访问追踪(RUM)-6.jpg
8 E$ f' \& C/ H0 k
更多详情可参考【 用户访问监测-生成指标 】https://www.yuque.com/dataflux/doc/sbyggu

& u( z8 x: s$ r" u* |' P4 W0 qSouremap
* Z  a- _8 D5 o$ ^9 n/ v/ {  W/ a+ b2 U2 D# ^3 v. D* i
应用在生产环境中发布的时候,为了防止代码泄露等安全问题,一般打包过程中会针对文件做转换、压缩等操作。Souremap 作为一类信息文件,记录了转换压缩后的代码所对应的转换前的源代码位置,构建了处理前以及处理后的代码之间的一座桥梁,方便定位生产环境中出现 bug 的位置。"观测云" 为 Web 应用程序提供 Sourcemap 功能,支持还原混淆后的代码,方便错误排查时在源码中debug,及时帮助用户更快解决问题。
* b) Q% f: B' l) q

' E4 m3 J- t4 o0 K% {
快速开启端到端的用户访问追踪(RUM)-7.jpg
3 q' u( f/ z) g, [$ f. X$ z; |1 O
Step 1: 开始使用 Sourcemap前,您需要将应用对应的map文件上传到 “观测云”,“观测云” 会根据拿到的 map文件自动完成映射还原。具体步骤如下:
& a& U+ ~6 d2 @+ @
1.配置 Javascript bundler:用来映射转换、压缩后的 js 代码。以使用 webpackJS 举例,使用内置插件 SourceMapDevToolPlugin 生成源映射,在下面查看如何在 webpack.config.js 文件中配置它:. o2 d* ?) O7 ?, ~% r& o
// ...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。
4 K1 y, @' \* M( ^3 Z/ \
假设如下 error_stack:
$ N, B8 K# ]* z5 `8 V. S8 r. z7 c% N
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,那么对应压缩包解压后的目录结构如下:
* [% U: e  r9 q
static/js/app.7fb548e3d065d1f48f74.js.map
转换后的 error_stack_source :
5 c* E( X/ }2 |! o( L+ ~) ?8 a
at 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
变量说明:

5 f% x* F  i1 d* c: p
    ( d' ^1 I4 {; a% y' W
  • <app_id>:对应 RUM 的 applicationId
    : L8 r$ D6 k# M* A4 T8 |) ?
  • <dea_address>: DCA 服务的地址,如 http://localhost:9531
    5 t6 K3 p0 j4 L9 I1 G
  • <sourcemap_path>:待上传的 sourcemap 压缩包文件路径
    ) R7 l( {9 r/ d4 Z# Y6 H
  • <env>:对应 RUM 的 env& S3 O# G. O) L  H# O# I" I
  • <version>:对应 RUM 的 version: j0 E2 D( ~" t
2.sourcemap 打包压缩:得到 zip 格式文件。将 sourcemap 文件压缩打包成 zip,命名格式为 <app_id>-<env>-<version>.zip ,并保证该压缩包解压后的文件路径与 error_stack 中 URL 的路径一致。* ]- a" N* v) ^; {
zip -q -r <app_id>--.zip sourcemap文件目录3.上传:zip 文件上传至 datakit。可以手动上传至 datakit 相关目录, <Datakit 安装目录>/data/rum/,这样就可以对上报的 error 数据自动进行转换,并追加 error_stack_source 字段至该指标集中。也可以使用 http 接口上传和删除该文件,前提是开启 DCA 服务。
; M+ g* U) {% U$ X  _7 A( f
上传:
/ p+ w0 {( l% M9 s4 j& s( x, O" F/ j
cur1 -x POST '<dca_address>/v1/rum/sourcemap?app_id=<app_id>&env=&version=<versio删除:) M8 i0 |5 }( s, Y
cur1 -X DELETE '<dca_address>/v1/rum/sourcemap?app_id=<app_id>&env=&version=<vers
Step 2: 通过访问“观测云”「用户访问监测」,在页面性能数据(view) 和会话数据(session) 详情页面,点击「错误」数据,通过「查看 sourcemap」您可以及时发现错误堆栈信息(真实的代码发生错误的地方)。

8 Y: C+ q% [- r' h) U& y4 N$ C! s3 S
快速开启端到端的用户访问追踪(RUM)-8.jpg

* T5 e7 |& ~- j3 e8 h3 _% X% K
注意事项:
7 A/ g& c) {+ r5 H2 a
    7 G+ C5 x5 T$ @8 G0 k
  • 该转换过程,只针对 error 数据。
    # _6 H- D/ e/ q' m
  • 当前只支持 js 的 sourcemap 转换。' _! E8 O3 {- H* I& A5 R7 _! w
  • sourcemap 文件名称需要与原文件保持一致,如果未找到对应的 sourcemap 文件,将不进行转换。
    ' J5 S% ~: Y8 j* }, o
  • 通过接口上传的 sourcemap 压缩包,不需要重启 DataKit 即可生效,但如果是手动上传,需要重启 DataKit ,方可生效。# N& [: `( h/ W! U. G" F
自建追踪" a# ~; d) g3 S) s4 ]/ d
4 q  c# D+ X+ R
“观测云” 支持你通过「用户访问监测」新建追踪任务,对自定义的链路追踪轨迹进行实时监控。通过预先设定链路追踪轨迹,可以集中筛选链路数据,精准查询用户访问体验,及时发现漏洞、异常和风险。

+ V9 C1 ~) v+ i  u: K9 o9 ?
Step 1: 新建追踪

5 ?) E  o/ O: t5 p# n* Z
在观测云工作空间的「用户访问监测」中,点击「应用名称」进入指定应用,即可通过「追踪」新建追踪轨迹。

6 e: L, C0 f4 v$ C
进行「新建追踪」时,您需要设定名称和字段,并在生成追踪ID后完成引入配置

& A4 x2 l4 L' t5 a* E0 @6 G

    : z& k3 w6 U3 `9 m$ l
  • 追踪名称:当前追踪任务的名称。支持中英文混写,支持下划线作为分隔符,不支持其他特殊字符,且最多支持64个字符串) [. s. L2 w5 ~! i0 z( n/ q
  • 标签:定义链路追踪字段。支持通过下拉框选择当前应用下的标签( key:value ),支持多选  O& g. g, c' r+ `  q6 d; K. g
  • 追踪ID:点击「生成追踪ID」即可新建追踪轨迹,并由系统生成的唯一追踪ID标识。
    $ c% I8 ~2 h8 |9 S% W

9 l3 R1 A# ~0 Q! }, I8 x
快速开启端到端的用户访问追踪(RUM)-9.jpg

0 Q; n! U- E3 e& W
Step 2: 配置引入方式

4 i2 Q% B) p* ^; Z" h' d
生成追踪ID后,需要根据追踪ID信息在应用中引入代码。以Web应用的”NPM引入“为例,配置步骤如下:

. T2 m0 O% I* A/ a2 W
a. 复制当前页面的代码。
- m& w3 g9 C7 E5 ?
b. 初始化 SDK 后,使用所复制的代码添加追踪ID

; e2 G' {; a, i- P
c. 修改完成后保存退出
' P( `% s. E& e( z! C/ ~; |
/ }! _4 t. E* K+ S* {" @8 z
快速开启端到端的用户访问追踪(RUM)-10.jpg
/ G* }" U, ^" X! H/ a! K( |
详细步骤请参考【 追踪配置示例 】https://www.yuque.com/dataflux/doc/gxavg8

. c5 I- s/ d0 u& e# k
【 立即体验观测云 】https://auth.guance.com/register?channel=toutiao
3 _) l# C+ j; h3 o+ I
0 Z* u, l' l* V/ o% A
快速开启端到端的用户访问追踪(RUM)-11.jpg
- j7 z, @0 U- J; [% b5 s7 D
$ r7 |% l8 ]! o- ~
快速开启端到端的用户访问追踪(RUM)-12.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

10

金钱

0

收听

0

听众
性别

新手上路

金钱
10 元