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

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

, f3 h! [# o0 U1 H# j: z8 E
在全民互联网时代,用户访问Web、小程序、Android、iOS等媒介的时间越来越长,努力赚取用户注意力的应用越来越多,产品与服务的更新也越来越频繁。在这样的大环境下,详细了解用户从哪里来,看了哪些页面,停留多长时间,访问速度快慢……不仅有利于挖掘每一个用户行为背后的真实需求,稳定并提升现存流量的转化率,还能反哺产品与服务的双重优化,真正实现用户增长和业绩提升。
! d2 }( s; c8 K! i" M/ U! a; ]
“观测云” 提供了Web、Android、iOS和小程序的用户访问数据监测。完成应用接入后,即可在工作台的「用户访问监测」快速查看和分析各类应用的用户浏览行为及应用相关的性能指标,用于衡量网站及应用的程序的最终用户体验效果。
7 ~) V7 g# Z1 _  b9 p' u2 P
前置条件

. O( W* |# @7 E

    : }) d4 {( Q/ |) Y* j3 b
  • 您需要先创建一个【 观测云账号 】https://auth.guance.com/register?channel=toutiao
    + Y9 h7 h  h* w2 D7 p! Y
  • 安装 DataKit 【DataKit 安装文档 】https://www.yuque.com/dataflux/datakit/datakit-how-to
    $ I' G/ ?* c7 l1 J6 Z: @) F4 _
  • 将 DataKit 部署成公网可访问【 RUM 配置文档 】https://www.yuque.com/dataflux/datakit/rum#852abae7
    ; L7 K" L, ]. d7 a% H2 m8 Z
  • 操作系统支持:全平台
    0 e$ W/ z& n2 O: @, r1 q/ n4 D
方法/步骤

8 i! h/ o0 l# e0 O$ m
DataKit 默认支持用户访问监测数据的接入,您仅需要完成应用接入,即可通过“观测云” 工作平台实时观测各类应用的用户浏览行为及应用相关的性能指标。

+ l' l  H8 ?. SStep1: 新建任务- P5 Y3 X0 R6 _" P( @
2 ]5 o0 H: h$ [& {" |) w; z/ Z$ j
    / |. e3 j. w: r, f: C
  • 登录 “观测云” 控制台,进入「用户访问监测」页面,点击右上角「新建应用」,在新窗口输入「应用名称」,点击「创建」即可创建新的用户访问监测任务。
    + R1 o) g+ v7 M% s3 o3 n* J
  • 创建任务后,您需要依据选择的「应用类型」完成下方对应的配置,即可开启相关应用的用户访问监测。+ z9 @6 f. D9 z/ h/ x( `

# V4 I2 b& r/ Z
快速开启端到端的用户访问追踪(RUM)-2.jpg
+ D# S! b! p3 z( m
Step2: 配置应用接入
# A, U/ D: s& t: w
% M+ A* C1 A' _, f# N7 f- I
以配置Web应用的”同步载入“为例,配置步骤如下:
+ U2 y2 `" B# A9 Q( O- k' e
a. 复制当前页面的代码,并依据要求修改当前代码所需的配置信息。如:修改脚本 datakitOrigin 地址为 DataKit 地址(安装DataKit的主机地址)
, k2 r4 G0 q2 A4 A
- c  S& ?5 r% B# k, G
快速开启端到端的用户访问追踪(RUM)-3.jpg
. b% y! Z# k1 k; |% i
b. 进入监测的目标应用,在对应页面HTML中的第一行添加所复制的代码
& h' [# H1 U; d9 [! R  s
c. 修改完成后保存退出

$ V- h4 q4 q9 l- Q! r
更多详情可参考:
* P& ?' I$ R6 q8 J

    . A' ?' B. @, k$ E; I! K3 h
  • 配置【 Web 应用接入 】https://www.yuque.com/dataflux/doc/eqs7v2
    4 d: W# O; R1 g7 ~
  • 配置【 Android 应用接入 】https://www.yuque.com/dataflux/doc/pnzoyp
    ( J- W; {" y/ V# y. G$ \5 u$ s
  • 配置【 iOS 应用接入 】https://www.yuque.com/dataflux/doc/gsto6k+ p/ K) d- i# E3 n  ]" Q  O( ^
  • 配置【 小程序应用接入 】https://www.yuque.com/dataflux/doc/clgea8, f% R3 O- c! U1 l1 J
Step3: 查看用户访问数据
$ L$ Z/ R4 k7 x8 G& \0 {# d, L; p) |0 a9 ?7 V! f
在 “观测云” 工作空间「用户访问监测」,点击任意一个应用,即可通过「查看器」对该应用相关的用户访问行为、会话、页面性能、资源勤秋、异常错误等数据进行查看。
7 J$ Z5 p5 `' i1 l+ E3 z; F$ H

    ; l% D: x1 [& g  b
  • Web监测:包含页面性能、资源加载、JS错误等多个场景;查看器支持页面、资源、JS错误等数据的快速检索和筛选查看。$ v! Q" [3 L; P4 [0 J
  • Android监测:包含页面性能、资源加载等多个场景;查看器支持页面、资源、崩溃、卡顿等数据的快速检索和筛选查看。0 o) j+ h/ J7 [2 }
  • iOS监测:包含页面性能、资源加载等多个场景;查看器支持页面、资源、崩溃、卡顿等数据的快速检索和筛选查看。; X$ Y2 @3 ?% y9 Z. k
  • 小程序监测:包含页面性能、资源加载、请求加载、JS错误等多个场景;查看器支持页面、资源、请求、JS错误等数据的快速检索和筛选查看。
    ! y6 c1 b) J6 S, k

0 w; y. H' N1 u+ O! Z
快速开启端到端的用户访问追踪(RUM)-4.jpg

$ F0 X% v& E  D8 V( |, u( \; e
进阶参考

: }) Z( W1 I% Z. D  M数据采样
: ?, n% K6 P$ ^/ r$ I& O7 v) q! I
: X9 s) P0 q- l8 a" r, z$ ]
观测云”支持自定义数据采样率,控制数据上报体量,优化数据存储和采集效率。您可以在配置应用接入时,通过 resourceSampleRate(资源类数据采样率)和 sampleRate(指标类数据采样率)自定义数据收集百分比。

+ @- \! R8 ~# T8 j% y- ~5 K$ ^3 H
下面将以Web 应用为例,介绍如何收集90%的Web应用用户访问数据。
2 m! S  c, w  L4 X& |4 P- D

    * Z+ |, C0 B  j
  • 在 “观测云” 控制台进入「用户访问监测」,通过「新建应用」获取 Web应用的三种方式:NPM 接入、同步载入和异步载入。9 [8 C+ R# w: G0 }0 r
  • 以“同步载入”为例,在代码中加入sampleRate: 90,然后复制粘贴到需要接入的页面HTML的第一行,即可按90%的比例采集Web应用的用户访问数据。& x3 a/ @, R) ]& x% I- L
<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>
其他应用采样可参考:
2 D. [" m. f0 R" Z. k0 m9 H
    4 p$ ~& S6 h7 t  J# k3 Y1 a
  • IOS采样设置可参考【 IOS 应用接入 】https://www.yuque.com/dataflux/doc/gsto6k#Zx9Q3
    ) C) G8 {: O5 D/ ~. w+ s
  • Android采样设置可参考【 Android 应用接入 】https://www.yuque.com/dataflux/doc/pnzoyp#tBmrd% b7 D) |7 W7 ]& U" E
  • 小程序采样设置可参考【 小程序应用接入 】https://www.yuque.com/dataflux/doc/clgea8#MJwVt  y% z1 K# [7 X3 ^2 O
生成指标. U$ ?( E. f+ ]

/ o6 ]3 b$ ], F& V0 m. x
为了便于您依据需求设计并实现新的技术指标。“观测云” 支持基于当前空间内的现有数据生成新的指标数据。通过选择「用户访问检测」-「生成指标」功能,参考以下步骤可以帮助您生成新的用户访问数据:
7 M! P8 r" I( u/ J5 [! ?
: d5 t! g4 ?! K& ?* P; e- w
快速开启端到端的用户访问追踪(RUM)-5.jpg

) F& H# b6 Q" x5 Z$ i
Step 1: 数据筛选。筛选出当前空间已有的全部/单个应用数据来源,并基于此数据源开始生成新的数据(“ * ”表示为全部数据来源)。
' d/ y  g. S* D
Step 2: 数据查询。基于选定的数据源,您可以对现有数据添加筛选和聚合表达式,请求产生新的指标结果和数据集合。

, x5 x' i8 v! P, N7 }3 V9 Y
    , T) o" h( U# M4 p
  • 聚合方法:包含Avg(取平均值)、Min(取最小值)、Max(取最大值)、Count(取数据点数)、p75(统计指定字段75%的值,需选择聚合的字段)、p95(统计指定字段95%的值,需选择聚合的字段)、p99(统计指定字段99%的值,需选择聚合的字段)1 F* ^/ O3 i/ ]& q7 N
  • 样本指标:设置的数据生成的样本指标,即通过对样本指标的查询和聚合产生新的指标结果7 r# B7 G3 s; U; q) q
  • 维度:按照所选对象进行数据聚合,即对数据请求中的每一个所选对象都生成一个统计值7 P/ l2 m; M+ F6 A1 ~% V  x0 |
  • 筛选:支持对现有标签数据添加一个/多个筛选过滤条件,并对同一行筛选条件添加“并且“ (and)、“或者”(or)关系
    : P/ T4 b& p" J- y! u2 p- ]% Y
  • 时间范围:生成指标数据的时间粒度,默认为15分钟,即15分钟内某数据统计展示的效果。
      `# A* O, U* b$ |! G# h, Z" c9 P
Step 3: 生成指标。对生成指标的方式和结果进行设置,包括生成指标的周期、新生成指标的标签名称和指标集名称。

' g; y" ~4 j! J) r# X
    ) s" L: B  G3 T9 L' e& T4 m; P
  • 频率:生成指标的执行周期,默认1分钟,即每1分钟生成一次新的指标数据) v6 x8 I0 g* I
  • 指标集:设置指标存放的指标集的名称
    4 u# F6 ^2 e" H5 F4 m3 v
  • 指标:设置指标的名称,其中指标名称不允许重复,可添加多个指标5 |: G; I  X/ M# s0 e
Step 4: 完成生成规则的填写后,点击「确定」即可完成生成指标规则并开启数据采集。

, O/ P% U3 I) \8 x4 ?
所有已添加的规则都将展示在「生成指标」的界面中,用户可进行「编辑」「删除」「启用/禁用」和「查看指标」

& I. P/ }: k* v& e- {/ T$ m3 i: Q) S: ]* }5 P
快速开启端到端的用户访问追踪(RUM)-6.jpg

: B3 N. |7 @8 z4 ^) v  E
更多详情可参考【 用户访问监测-生成指标 】https://www.yuque.com/dataflux/doc/sbyggu

9 c& `- S8 `, U/ |! USouremap: c, U/ |5 e/ @. A5 Q
8 o& J6 w0 u9 f; m* t, o
应用在生产环境中发布的时候,为了防止代码泄露等安全问题,一般打包过程中会针对文件做转换、压缩等操作。Souremap 作为一类信息文件,记录了转换压缩后的代码所对应的转换前的源代码位置,构建了处理前以及处理后的代码之间的一座桥梁,方便定位生产环境中出现 bug 的位置。"观测云" 为 Web 应用程序提供 Sourcemap 功能,支持还原混淆后的代码,方便错误排查时在源码中debug,及时帮助用户更快解决问题。

; h  e% _# {# R+ y- a, F
/ ~1 L* J7 i  B. c- e
快速开启端到端的用户访问追踪(RUM)-7.jpg
/ g) o) t9 J  _% ]" U
Step 1: 开始使用 Sourcemap前,您需要将应用对应的map文件上传到 “观测云”,“观测云” 会根据拿到的 map文件自动完成映射还原。具体步骤如下:
4 L# U8 g; X: H2 E* {4 r) X
1.配置 Javascript bundler:用来映射转换、压缩后的 js 代码。以使用 webpackJS 举例,使用内置插件 SourceMapDevToolPlugin 生成源映射,在下面查看如何在 webpack.config.js 文件中配置它:
, ^* @8 ?) H8 \+ F# J8 |// ...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。

. V& X$ E( p, q
假设如下 error_stack:
" L+ _- P" Q4 A5 t; l. z* |
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. |8 e! h0 `
static/js/app.7fb548e3d065d1f48f74.js.map
转换后的 error_stack_source :

+ _( v# ]& B$ Y3 d5 P# Iat 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
变量说明:

; t9 N7 P3 E- i8 S( J
    8 a' ^1 a8 @& v+ p8 S! M% o
  • <app_id>:对应 RUM 的 applicationId0 Y- H+ _# O  Q% J
  • <dea_address>: DCA 服务的地址,如 http://localhost:9531: h3 C* x, i2 u6 s# B, V) v
  • <sourcemap_path>:待上传的 sourcemap 压缩包文件路径
    # m% J" c8 g% w2 F9 U7 g; k
  • <env>:对应 RUM 的 env
    ( [0 h: |; |: A" M* y
  • <version>:对应 RUM 的 version! v( J- b' P$ n( r" f( l# O
2.sourcemap 打包压缩:得到 zip 格式文件。将 sourcemap 文件压缩打包成 zip,命名格式为 <app_id>-<env>-<version>.zip ,并保证该压缩包解压后的文件路径与 error_stack 中 URL 的路径一致。
( ~; F4 a% w- Q" \% ^# D# I* @( Fzip -q -r <app_id>--.zip sourcemap文件目录3.上传:zip 文件上传至 datakit。可以手动上传至 datakit 相关目录, <Datakit 安装目录>/data/rum/,这样就可以对上报的 error 数据自动进行转换,并追加 error_stack_source 字段至该指标集中。也可以使用 http 接口上传和删除该文件,前提是开启 DCA 服务。" f. e0 C# m6 \2 n0 ~
上传:

8 R: R- i# C" M; y# [cur1 -x POST '<dca_address>/v1/rum/sourcemap?app_id=<app_id>&env=&version=<versio删除:
( f4 n, M2 {- _2 V+ Z2 e- L! b9 G; ycur1 -X DELETE '<dca_address>/v1/rum/sourcemap?app_id=<app_id>&env=&version=<vers
Step 2: 通过访问“观测云”「用户访问监测」,在页面性能数据(view) 和会话数据(session) 详情页面,点击「错误」数据,通过「查看 sourcemap」您可以及时发现错误堆栈信息(真实的代码发生错误的地方)。
  G2 w# L. _! i: s) ^/ o
" v/ m8 V5 ~/ n
快速开启端到端的用户访问追踪(RUM)-8.jpg
/ I8 s$ {0 G9 s% W; _4 u$ g
注意事项:

% h5 s5 d3 T/ F" s) j
    7 y/ {5 B4 [+ [: O/ s1 ^  N0 d) K$ G
  • 该转换过程,只针对 error 数据。
    ) `0 n* r: o$ E3 n& Q
  • 当前只支持 js 的 sourcemap 转换。; U: T& d* g( u& t- V' L+ n2 w
  • sourcemap 文件名称需要与原文件保持一致,如果未找到对应的 sourcemap 文件,将不进行转换。  [# K0 J% g# B- N
  • 通过接口上传的 sourcemap 压缩包,不需要重启 DataKit 即可生效,但如果是手动上传,需要重启 DataKit ,方可生效。
    ! S% i& R$ O9 Z. I# t* |
自建追踪$ {/ A/ c- U$ h
; p. I7 R% J9 X7 A! C
“观测云” 支持你通过「用户访问监测」新建追踪任务,对自定义的链路追踪轨迹进行实时监控。通过预先设定链路追踪轨迹,可以集中筛选链路数据,精准查询用户访问体验,及时发现漏洞、异常和风险。

* m9 g5 r! C! W9 Q3 f" e
Step 1: 新建追踪

" C1 z* B; v: X' g
在观测云工作空间的「用户访问监测」中,点击「应用名称」进入指定应用,即可通过「追踪」新建追踪轨迹。
: A: @0 G* D  C( f' F
进行「新建追踪」时,您需要设定名称和字段,并在生成追踪ID后完成引入配置

1 p1 S4 P' c4 S! y0 M

    4 n+ I2 G! ^, C/ g5 R5 j
  • 追踪名称:当前追踪任务的名称。支持中英文混写,支持下划线作为分隔符,不支持其他特殊字符,且最多支持64个字符串
    % |, u7 v/ |, L3 f5 |6 \
  • 标签:定义链路追踪字段。支持通过下拉框选择当前应用下的标签( key:value ),支持多选
    ! l4 J  z) H# @& e/ V5 `
  • 追踪ID:点击「生成追踪ID」即可新建追踪轨迹,并由系统生成的唯一追踪ID标识。
    + ^# H- `- p- h& m) S

# ^' K# I" s! d# R- E& \, k
快速开启端到端的用户访问追踪(RUM)-9.jpg

2 }0 G& N$ n6 ?/ ^( p
Step 2: 配置引入方式
% I+ t, Z3 d6 o: H* s* f; P. l
生成追踪ID后,需要根据追踪ID信息在应用中引入代码。以Web应用的”NPM引入“为例,配置步骤如下:
2 ]' H( a+ a# b6 ^  b2 T
a. 复制当前页面的代码。
: w( Q3 P5 O# `9 n; j$ x0 s
b. 初始化 SDK 后,使用所复制的代码添加追踪ID
, Q$ x* ?2 a  Z" {+ [. L
c. 修改完成后保存退出

4 j+ E% w  D  m; Y" F& l% ^3 u- Q# Q2 U  p+ t8 Q# _% I# m$ `0 N
快速开启端到端的用户访问追踪(RUM)-10.jpg
& \7 }! o. ?+ ^: U: f, d
详细步骤请参考【 追踪配置示例 】https://www.yuque.com/dataflux/doc/gxavg8

- A8 [! c% ?7 N. N
【 立即体验观测云 】https://auth.guance.com/register?channel=toutiao
. S" X7 `2 A) U' I% {

1 _. i% s. l6 S
快速开启端到端的用户访问追踪(RUM)-11.jpg

9 m; ?1 f" F# T. W) R: M  x# s7 V- x: s6 M/ w* W
快速开启端到端的用户访问追踪(RUM)-12.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

10

金钱

0

收听

0

听众
性别

新手上路

金钱
10 元