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

[复制链接]
查看7118 | 回复0 | 2023-7-29 10:16:58 | 显示全部楼层 |阅读模式
快速开启端到端的用户访问追踪(RUM)-1.jpg
) c5 G" Z' C5 c# v* g
在全民互联网时代,用户访问Web、小程序、Android、iOS等媒介的时间越来越长,努力赚取用户注意力的应用越来越多,产品与服务的更新也越来越频繁。在这样的大环境下,详细了解用户从哪里来,看了哪些页面,停留多长时间,访问速度快慢……不仅有利于挖掘每一个用户行为背后的真实需求,稳定并提升现存流量的转化率,还能反哺产品与服务的双重优化,真正实现用户增长和业绩提升。
6 V; T2 E& P# M+ Q# T
“观测云” 提供了Web、Android、iOS和小程序的用户访问数据监测。完成应用接入后,即可在工作台的「用户访问监测」快速查看和分析各类应用的用户浏览行为及应用相关的性能指标,用于衡量网站及应用的程序的最终用户体验效果。
- G# b6 e7 ~* c/ Y! y
前置条件
4 k4 ^( y* E  j: ?2 X

    9 \9 T: o$ E) L0 T" k
  • 您需要先创建一个【 观测云账号 】https://auth.guance.com/register?channel=toutiao& H; }: x! Q" X) B! Q1 m% e+ f
  • 安装 DataKit 【DataKit 安装文档 】https://www.yuque.com/dataflux/datakit/datakit-how-to9 U4 k4 r: }- ?0 f0 E
  • 将 DataKit 部署成公网可访问【 RUM 配置文档 】https://www.yuque.com/dataflux/datakit/rum#852abae7
    6 z9 V! P$ G* h5 F; b
  • 操作系统支持:全平台6 k- s$ g: b8 Z2 ~: C  k4 J+ x
方法/步骤
/ ^. U* ?) b# b+ F. H6 a9 a
DataKit 默认支持用户访问监测数据的接入,您仅需要完成应用接入,即可通过“观测云” 工作平台实时观测各类应用的用户浏览行为及应用相关的性能指标。

% _: Z4 v& k$ F8 e" `1 a. kStep1: 新建任务
! s" F$ I  x, T* `
1 {, F# G0 h1 V; Z# o) z/ Q
    & c% L2 D( A" K) Y0 _3 |/ b8 t
  • 登录 “观测云” 控制台,进入「用户访问监测」页面,点击右上角「新建应用」,在新窗口输入「应用名称」,点击「创建」即可创建新的用户访问监测任务。+ q: g* B3 X9 d8 B) n* b
  • 创建任务后,您需要依据选择的「应用类型」完成下方对应的配置,即可开启相关应用的用户访问监测。
    7 [8 T9 ?( T, m% `+ K- c; g

. f" ~/ z% x1 x4 m3 j
快速开启端到端的用户访问追踪(RUM)-2.jpg

$ [" G! ~5 `* o7 a  p2 j  MStep2: 配置应用接入6 ~& [1 G6 H6 y, T! c3 R
) D7 o" A& K; j" \  e2 {
以配置Web应用的”同步载入“为例,配置步骤如下:

5 o8 I) u; U, V1 h* i( K
a. 复制当前页面的代码,并依据要求修改当前代码所需的配置信息。如:修改脚本 datakitOrigin 地址为 DataKit 地址(安装DataKit的主机地址)
: W2 d+ {' e" [6 J# a" a, b& M

. j6 N# I% }. S9 t7 {+ t# D
快速开启端到端的用户访问追踪(RUM)-3.jpg

$ C: v/ r0 d& c1 [
b. 进入监测的目标应用,在对应页面HTML中的第一行添加所复制的代码
3 M8 W8 ?2 Z& ?. F, h7 d; x2 K. V
c. 修改完成后保存退出

+ y0 K, t4 X% j5 H* d
更多详情可参考:

4 ]! s* y) W, l+ w7 y
    : X2 Z6 M; O4 p. w! c" [+ E
  • 配置【 Web 应用接入 】https://www.yuque.com/dataflux/doc/eqs7v2! W1 e# H. y! o7 U$ X3 M# w
  • 配置【 Android 应用接入 】https://www.yuque.com/dataflux/doc/pnzoyp  u0 W$ J7 j5 s
  • 配置【 iOS 应用接入 】https://www.yuque.com/dataflux/doc/gsto6k
      l+ i" Z( p2 D7 g# j! C
  • 配置【 小程序应用接入 】https://www.yuque.com/dataflux/doc/clgea8
    ( h8 d( b; ]- I* V
Step3: 查看用户访问数据; S! M# ~) l# t) o6 }" e
2 K- i. p; h, z0 U
在 “观测云” 工作空间「用户访问监测」,点击任意一个应用,即可通过「查看器」对该应用相关的用户访问行为、会话、页面性能、资源勤秋、异常错误等数据进行查看。
& j. a' V/ d; @# A, ^$ Y4 z
    # c+ ]& j1 z# x4 d* Z( n6 F/ u
  • Web监测:包含页面性能、资源加载、JS错误等多个场景;查看器支持页面、资源、JS错误等数据的快速检索和筛选查看。
    # W/ z% D" c8 o1 i
  • Android监测:包含页面性能、资源加载等多个场景;查看器支持页面、资源、崩溃、卡顿等数据的快速检索和筛选查看。( G: ~2 K. I( u2 d5 q
  • iOS监测:包含页面性能、资源加载等多个场景;查看器支持页面、资源、崩溃、卡顿等数据的快速检索和筛选查看。
    + d. m) Y1 Z, ~. i1 a9 o
  • 小程序监测:包含页面性能、资源加载、请求加载、JS错误等多个场景;查看器支持页面、资源、请求、JS错误等数据的快速检索和筛选查看。
    & K4 P/ D% W( G6 p6 q$ E+ j

! {1 B. U  y" y! p
快速开启端到端的用户访问追踪(RUM)-4.jpg

) i* x. a( d3 ~! P
进阶参考
3 S9 \7 D- t0 g
数据采样
9 D& i: F5 a3 w5 l/ h
% R; `: h8 b) [; S% G9 [2 P9 _. s
观测云”支持自定义数据采样率,控制数据上报体量,优化数据存储和采集效率。您可以在配置应用接入时,通过 resourceSampleRate(资源类数据采样率)和 sampleRate(指标类数据采样率)自定义数据收集百分比。
$ W+ V0 C2 n( j% s% B8 U
下面将以Web 应用为例,介绍如何收集90%的Web应用用户访问数据。
. W2 C/ A) q: p( a3 _' E# }  L

    : v  l' p: u2 h" c( H
  • 在 “观测云” 控制台进入「用户访问监测」,通过「新建应用」获取 Web应用的三种方式:NPM 接入、同步载入和异步载入。
    $ y# N8 x1 s; t
  • 以“同步载入”为例,在代码中加入sampleRate: 90,然后复制粘贴到需要接入的页面HTML的第一行,即可按90%的比例采集Web应用的用户访问数据。
    2 B6 H1 z+ i& R) s+ U' W% E
<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>
其他应用采样可参考:
! n6 O" @) Y* ~  x3 h/ U, F2 I
    # D! w( n# S# w
  • IOS采样设置可参考【 IOS 应用接入 】https://www.yuque.com/dataflux/doc/gsto6k#Zx9Q3: l# _% B( w5 A
  • Android采样设置可参考【 Android 应用接入 】https://www.yuque.com/dataflux/doc/pnzoyp#tBmrd& e9 M3 M7 n% m9 z
  • 小程序采样设置可参考【 小程序应用接入 】https://www.yuque.com/dataflux/doc/clgea8#MJwVt3 A1 ?9 p9 ]0 a" N
生成指标
: _" S5 G+ s( z7 A7 ~$ e  }" c: M8 n  q3 M8 [8 l2 s! m/ R) B
为了便于您依据需求设计并实现新的技术指标。“观测云” 支持基于当前空间内的现有数据生成新的指标数据。通过选择「用户访问检测」-「生成指标」功能,参考以下步骤可以帮助您生成新的用户访问数据:

5 a2 m! e6 E- z, `( ^, I
0 c, {' N# I, z
快速开启端到端的用户访问追踪(RUM)-5.jpg

& P, J% M) @2 @9 k! _  C3 r
Step 1: 数据筛选。筛选出当前空间已有的全部/单个应用数据来源,并基于此数据源开始生成新的数据(“ * ”表示为全部数据来源)。

9 K% e: L- J" E4 J, u. `/ p' U
Step 2: 数据查询。基于选定的数据源,您可以对现有数据添加筛选和聚合表达式,请求产生新的指标结果和数据集合。

; ]  F  d4 S, r
    9 c" t! ~6 ~8 m* X" `% n7 }3 `
  • 聚合方法:包含Avg(取平均值)、Min(取最小值)、Max(取最大值)、Count(取数据点数)、p75(统计指定字段75%的值,需选择聚合的字段)、p95(统计指定字段95%的值,需选择聚合的字段)、p99(统计指定字段99%的值,需选择聚合的字段)
    % N( ?: |* l( ~) d- @: A1 E
  • 样本指标:设置的数据生成的样本指标,即通过对样本指标的查询和聚合产生新的指标结果% s2 b' [+ ]7 s7 C
  • 维度:按照所选对象进行数据聚合,即对数据请求中的每一个所选对象都生成一个统计值1 _7 ]( D$ i5 m' a
  • 筛选:支持对现有标签数据添加一个/多个筛选过滤条件,并对同一行筛选条件添加“并且“ (and)、“或者”(or)关系' c/ X$ W* u' h8 ]* R1 U3 u
  • 时间范围:生成指标数据的时间粒度,默认为15分钟,即15分钟内某数据统计展示的效果。+ ~2 j# ?2 n9 I* v- _1 `9 ~
Step 3: 生成指标。对生成指标的方式和结果进行设置,包括生成指标的周期、新生成指标的标签名称和指标集名称。

# S, N3 q9 y4 V) }- U$ V* {4 n! O
    . q% t9 w! t  e8 R' t3 j+ ~0 L! \
  • 频率:生成指标的执行周期,默认1分钟,即每1分钟生成一次新的指标数据2 @% i+ _3 m1 ~! L- s
  • 指标集:设置指标存放的指标集的名称
    , ]  C- v6 D+ c2 ^! E- O+ `* L) m
  • 指标:设置指标的名称,其中指标名称不允许重复,可添加多个指标
    ! z+ P. Y( o. ^* {( |
Step 4: 完成生成规则的填写后,点击「确定」即可完成生成指标规则并开启数据采集。

: Q" G1 d  g; C9 [8 F9 J
所有已添加的规则都将展示在「生成指标」的界面中,用户可进行「编辑」「删除」「启用/禁用」和「查看指标」
. ]' u2 s1 g" Z/ m2 Y/ ]

  Q5 _( g# R! D9 D  I
快速开启端到端的用户访问追踪(RUM)-6.jpg
$ L1 [3 i0 R; P" P  g: u+ r6 l
更多详情可参考【 用户访问监测-生成指标 】https://www.yuque.com/dataflux/doc/sbyggu
! ]  j! g; D2 X7 I' P. ~
Souremap
8 S. G" ]$ G! K  v" n( c' H6 P/ C/ u5 U, |2 S# p
应用在生产环境中发布的时候,为了防止代码泄露等安全问题,一般打包过程中会针对文件做转换、压缩等操作。Souremap 作为一类信息文件,记录了转换压缩后的代码所对应的转换前的源代码位置,构建了处理前以及处理后的代码之间的一座桥梁,方便定位生产环境中出现 bug 的位置。"观测云" 为 Web 应用程序提供 Sourcemap 功能,支持还原混淆后的代码,方便错误排查时在源码中debug,及时帮助用户更快解决问题。
8 F& Q7 ~- `& g2 k6 i
8 g  B  o$ ~) z
快速开启端到端的用户访问追踪(RUM)-7.jpg

/ q# }( }# }2 r
Step 1: 开始使用 Sourcemap前,您需要将应用对应的map文件上传到 “观测云”,“观测云” 会根据拿到的 map文件自动完成映射还原。具体步骤如下:

0 n; |  I9 M# r( Q" ~6 Q1.配置 Javascript bundler:用来映射转换、压缩后的 js 代码。以使用 webpackJS 举例,使用内置插件 SourceMapDevToolPlugin 生成源映射,在下面查看如何在 webpack.config.js 文件中配置它:
, p1 b. A( e8 y" U/ m  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。
1 x  P1 v. y: V! O5 t" g+ f1 k
假设如下 error_stack:

9 M% B5 t7 I8 U" H/ V  \1 a8 d* EReferenceErrorat 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,那么对应压缩包解压后的目录结构如下:

# n/ s9 s1 p8 s% Z3 ^static/js/app.7fb548e3d065d1f48f74.js.map
转换后的 error_stack_source :
9 m3 s9 I" M- d
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
变量说明:
9 o7 T% }* ?" Z/ G3 s) m% W

    $ S7 j- ~" u6 Z3 ^  P9 K
  • <app_id>:对应 RUM 的 applicationId
    9 S5 P: a0 H6 T
  • <dea_address>: DCA 服务的地址,如 http://localhost:9531
    : `3 I' A; r/ l6 g8 @3 c: o
  • <sourcemap_path>:待上传的 sourcemap 压缩包文件路径* ?/ w2 Q% @6 c2 O# @2 g, `. J" M, z
  • <env>:对应 RUM 的 env
    0 c+ P/ _. ?. _4 ?0 c" i
  • <version>:对应 RUM 的 version4 Y) M9 P/ _% P# d" R: ~
2.sourcemap 打包压缩:得到 zip 格式文件。将 sourcemap 文件压缩打包成 zip,命名格式为 <app_id>-<env>-<version>.zip ,并保证该压缩包解压后的文件路径与 error_stack 中 URL 的路径一致。" c: r* k& L( h+ N) Z, r
zip -q -r <app_id>--.zip sourcemap文件目录3.上传:zip 文件上传至 datakit。可以手动上传至 datakit 相关目录, <Datakit 安装目录>/data/rum/,这样就可以对上报的 error 数据自动进行转换,并追加 error_stack_source 字段至该指标集中。也可以使用 http 接口上传和删除该文件,前提是开启 DCA 服务。
) K5 ~9 ^$ U6 j0 s
上传:
/ ?) f, c5 w8 N8 S% ?# G* T
cur1 -x POST '<dca_address>/v1/rum/sourcemap?app_id=<app_id>&env=&version=<versio删除:. L/ R* O! a3 E
cur1 -X DELETE '<dca_address>/v1/rum/sourcemap?app_id=<app_id>&env=&version=<vers
Step 2: 通过访问“观测云”「用户访问监测」,在页面性能数据(view) 和会话数据(session) 详情页面,点击「错误」数据,通过「查看 sourcemap」您可以及时发现错误堆栈信息(真实的代码发生错误的地方)。
$ K9 q" a+ U1 Q6 x7 m& a, L

$ W- v; r* c4 W$ M6 E8 N& j
快速开启端到端的用户访问追踪(RUM)-8.jpg
  p/ z+ L' A& ~; _
注意事项:

3 x6 r0 c5 Q' o: {, i* ?7 k
    5 c3 I5 I* j( u: ^' }
  • 该转换过程,只针对 error 数据。8 U6 `- [% c( q1 u$ W
  • 当前只支持 js 的 sourcemap 转换。6 w" B  n/ ^# H! W. X
  • sourcemap 文件名称需要与原文件保持一致,如果未找到对应的 sourcemap 文件,将不进行转换。5 W" B' A7 f5 e
  • 通过接口上传的 sourcemap 压缩包,不需要重启 DataKit 即可生效,但如果是手动上传,需要重启 DataKit ,方可生效。
    1 i8 q, v8 J# U: K% u( a1 U' Y
自建追踪+ H# ]- V3 s$ `

4 g. N2 W" j" C0 _' R( L
“观测云” 支持你通过「用户访问监测」新建追踪任务,对自定义的链路追踪轨迹进行实时监控。通过预先设定链路追踪轨迹,可以集中筛选链路数据,精准查询用户访问体验,及时发现漏洞、异常和风险。
$ |! q3 [) F5 W9 M
Step 1: 新建追踪

; y3 O: @. Z) B* k4 h! n
在观测云工作空间的「用户访问监测」中,点击「应用名称」进入指定应用,即可通过「追踪」新建追踪轨迹。

( E0 m  x# _) o2 z( M5 G
进行「新建追踪」时,您需要设定名称和字段,并在生成追踪ID后完成引入配置

1 L, t& b1 p( a& F; F9 I* Y
    ) U! L$ v! i. n3 ~
  • 追踪名称:当前追踪任务的名称。支持中英文混写,支持下划线作为分隔符,不支持其他特殊字符,且最多支持64个字符串5 x4 ]/ C0 r5 `5 Z2 d9 g/ ^$ ?
  • 标签:定义链路追踪字段。支持通过下拉框选择当前应用下的标签( key:value ),支持多选# D0 a2 V# t3 ?8 R6 c9 |% S
  • 追踪ID:点击「生成追踪ID」即可新建追踪轨迹,并由系统生成的唯一追踪ID标识。* T& x* Y' V; v/ l6 G
2 a  b; ?# I2 E) z2 v' {" w- ?
快速开启端到端的用户访问追踪(RUM)-9.jpg
7 b* d) r0 Z: V! U- N5 t) Z7 R
Step 2: 配置引入方式
& x# j' w; b3 ^1 e, ~! q' J
生成追踪ID后,需要根据追踪ID信息在应用中引入代码。以Web应用的”NPM引入“为例,配置步骤如下:
1 v% C/ F# O! Q  Y' U8 w
a. 复制当前页面的代码。
3 Q! @5 x  W+ c
b. 初始化 SDK 后,使用所复制的代码添加追踪ID
( z  N0 j9 M3 E5 f" \& V
c. 修改完成后保存退出
$ f( d+ u; ]$ ~2 c! F
# R1 K; C/ i- K4 f
快速开启端到端的用户访问追踪(RUM)-10.jpg
8 [  q( q4 Q0 b2 C& b: z
详细步骤请参考【 追踪配置示例 】https://www.yuque.com/dataflux/doc/gxavg8

9 h& D! _4 ~" R& W& @) `
【 立即体验观测云 】https://auth.guance.com/register?channel=toutiao
/ z8 [1 ^) D' N7 ], K8 w. u; G
1 w/ D* c& c8 T( D' n/ i
快速开启端到端的用户访问追踪(RUM)-11.jpg

, |6 M- [. J& C4 J0 i, e6 H
- v! B2 B. \: z( x. T
快速开启端到端的用户访问追踪(RUM)-12.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

10

金钱

0

收听

0

听众
性别

新手上路

金钱
10 元