关于运维:开启端到端的用户访问追踪RUM

39次阅读

共计 5229 个字符,预计需要花费 14 分钟才能阅读完成。

简介

在全民互联网时代,用户拜访 Web、小程序、Android、iOS 等媒介的工夫越来越长,致力赚取用户注意力的利用越来越多,产品与服务的更新也越来越频繁。在这样的大环境下,具体理解用户从哪里来,看了哪些页面,停留多长时间,访问速度快慢……不仅有利于开掘每一个用户行为背地的实在需要,稳固并晋升现存流量的转化率,还能反哺产品与服务的双重优化,真正实现用户增长和业绩晋升。

“观测云”提供了 Web、Android、iOS 和小程序的用户拜访数据监测。实现利用接入后,即可在工作台的「用户拜访监测」疾速查看和剖析各类利用的用户浏览行为及利用相干的性能指标,用于掂量网站及利用的程序的最终用户体验成果。

前置条件

● 装置 DataKit(DataKit 装置文档)
● 将 DataKit 部署成公网可拜访(RUM 配置文档)
● 操作系统反对:全平台

办法 / 步骤

DataKit 默认反对用户拜访监测数据的接入,您仅须要实现利用接入,即可通过“观测云”工作平台实时观测各类利用的用户浏览行为及利用相干的性能指标。

Step1: 新建工作

  1. 登录“观测云”控制台,进入「用户拜访监测」页面,点击右上角「新建利用」,在新窗口输出「利用名称」,点击「创立」即可创立新的用户拜访监测工作。
  2. 创立工作后,您须要根据抉择的「利用类型」实现下方对应的配置,即可开启相干利用的用户拜访监测。

Step2: 配置利用接入

以配置 Web 利用的”同步载入“为例,配置步骤如下:

a. 复制以后页面的代码,并根据要求批改以后代码所需的配置信息。如:批改脚本 datakitOrigin 地址为 DataKit 地址(装置 DataKit 的主机地址)

b. 进入监测的指标利用,在对应页面 HTML 中的第一行增加所复制的代码

c. 批改实现后保留退出

更多详情可参考:

配置 Web 利用接入

配置 Android 利用接入

配置 iOS 利用接入

配置 小程序利用接入

Step3: 查看用户拜访数据

在“观测云”工作空间「用户拜访监测」,点击任意一个利用,即可通过「查看器」对该利用相干的用户拜访行为、会话、页面性能、资源勤秋、异样谬误等数据进行查看。

Web 监测:蕴含页面性能、资源加载、JS 谬误等多个场景;查看器反对页面、资源、JS 谬误等数据的疾速检索和筛选查看。

Android 监测:蕴含页面性能、资源加载等多个场景;查看器反对页面、资源、解体、卡顿等数据的疾速检索和筛选查看。

iOS 监测:蕴含页面性能、资源加载等多个场景;查看器反对页面、资源、解体、卡顿等数据的疾速检索和筛选查看。

小程序监测:蕴含页面性能、资源加载、申请加载、JS 谬误等多个场景;查看器反对页面、资源、申请、JS 谬误等数据的疾速检索和筛选查看。

进阶参考

数据采样

观测云”反对自定义数据采样率,控制数据上报体量,优化数据存储和采集效率。您能够在配置利用接入时,通过 resourceSampleRate(资源类数据采样率)和 sampleRate(指标类数据采样率)自定义数据收集百分比。

上面将以 Web 利用为例,介绍如何收集 90%的 Web 利用用户拜访数据。

  1. 在“观测云”控制台进入「用户拜访监测」,通过「新建利用」获取 Web 利用的三种形式:NPM 接入、同步载入和异步载入。
  2. 以“同步载入”为例,在代码中退出 sampleRate: 90,而后复制粘贴到须要接入的页面 HTML 的第一行,即可按 90% 的比例采集 Web 利用的用户拜访数据。
<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>

其余利用采样可参考:

IOS 采样设置可参考 IOS 利用接入。
Android 采样设置可参考 Android 利用接入。
小程序采样设置可参考小程序利用接入。

生成指标

为了便于您根据需要设计并实现新的技术指标。“观测云”反对基于以后空间内的现有数据生成新的指标数据。通过抉择「用户拜访检测」-「生成指标」性能,参考以下步骤能够帮忙您生成新的用户拜访数据:

Step 1: 数据筛选。筛选出以后空间已有的全副 / 单个利用数据起源,并基于此数据源开始生成新的数据(“*”示意为全副数据起源)。

Step 2: 数据查问。基于选定的数据源,您能够对现有数据增加筛选和聚合表达式,申请产生新的指标后果和数据汇合。

聚合办法:蕴含 Avg(取平均值)、Min(取最小值)、Max(取最大值)、Count(取数据点数)、p75(统计指定字段 75% 的值,需抉择聚合的字段)、p95(统计指定字段 95% 的值,需抉择聚合的字段)、p99(统计指定字段 99% 的值,需抉择聚合的字段)
样本指标:设置的数据生成的样本指标,即通过对样本指标的查问和聚合产生新的指标后果
维度:依照所选对象进行数据聚合,即对数据申请中的每一个所选对象都生成一个统计值
筛选:反对对现有标签数据增加一个 / 多个筛选过滤条件,并对同一行筛选条件增加“并且“(and)、“或者”(or)关系
工夫范畴:生成指标数据的工夫粒度,默认为 15 分钟,即 15 分钟内某数据统计展现的成果。

Step 3: 生成指标。对生成指标的形式和后果进行设置,包含生成指标的周期、新生成指标的标签名称和指标集名称。

频率:生成指标的执行周期,默认 1 分钟,即每 1 分钟生成一次新的指标数据
指标集:设置指标寄存的指标集的名称
指标:设置指标的名称,其中指标名称不容许反复,可增加多个指标

Step 4: 实现生成规定的填写后,点击「确定」即可实现生成指标规定并开启数据采集。

所有已增加的规定都将展现在「生成指标」的界面中,用户可进行「编辑」「删除」「启用 / 禁用」和「查看指标」

更多详情可参考:用户拜访监测 - 生成指标

Souremap

利用在生产环境中公布的时候,为了避免代码泄露等平安问题,个别打包过程中会针对文件做转换、压缩等操作。Souremap 作为一类信息文件,记录了转换压缩后的代码所对应的转换前的源代码地位,构建了解决前以及解决后的代码之间的一座桥梁,不便定位生产环境中呈现 bug 的地位。” 观测云 ” 为 Web 应用程序提供 Sourcemap 性能,反对还原混同后的代码,不便谬误排查时在源码中 debug,及时帮忙用户更快解决问题。

Step 1: 开始应用 Sourcemap 前,您须要将利用对应的 map 文件上传到“观测云”,“观测云”会依据拿到的 map 文件主动实现映射还原。具体步骤如下:

  1. 配置 Javascript bundler:用来映射转换、压缩后的 js 代码。以应用 webpackJS 举例,应用内置插件 SourceMapDevToolPlugin 生成源映射,在上面查看如何在 webpack.config.js 文件中配置它:
// ...
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。

假如如下 error_stack:

ReferenceError
at a.hideDetail @ http://localhost:8080/static/js/app.7fb548e3d065d1f48f74.js:1:1037
at a.showDetail @ http://localhost:8080/static/js/app.7fb548e3d065d1f48f74.js:1:986
at <anonymous> @ http://localhost:8080/static/js/app.7fb548e3d065d1f48f74.js:1:1174

须要转换的门路是 /static/js/app.7fb548e3d065d1f48f74.js,与其对应的 sourcemap 门路为 /static/js/app.7fb548e3d065d1f48f74.js.map,那么对应压缩包解压后的目录构造如下:

static/js/app.7fb548e3d065d1f48f74.js.map

转换后的 error_stack_source :

at a.hideDetail @ webpack:///src/components/header/header.vue:94:0
at a.showDetail @ webpack:///src/components/header/header.vue:91:0
at <anonymous> @ webpack:///src/components/header/header.vue:101:0

变量阐明:
: 对应 RUM 的 applicationId
: DCA 服务的地址,如 http://localhost:9531
: 待上传的 sourcemap 压缩包文件门路
:对应 RUM 的 env
:对应 RUM 的 version

  1. sourcemap 打包压缩:失去 zip 格式文件。将 sourcemap 文件压缩打包成 zip,命名格局为 <app_id>-<env>-<version>.zip,并保障该压缩包解压后的文件门路与 error_stack 中 URL 的门路统一。

zip -q -r <app_id>--.zip sourcemap 文件目录

  1. 上传:zip 文件上传至 datakit。能够手动上传至 datakit 相干目录,<Datakit 装置目录 >/data/rum/,这样就能够对上报的 error 数据主动进行转换,并追加 error_stack_source 字段至该指标集中。也能够应用 http 接口上传和删除该文件,前提是开启 DCA 服务。

上传:

cur1 -x POST '<dca_address>/v1/rum/sourcemap?app_id=<app_id>&env=&version=<versio

删除:

cur1 -X DELETE '<dca_address>/v1/rum/sourcemap?app_id=<app_id>&env=&version=<vers

Step 2: 通过拜访“观测云”「用户拜访监测」,在页面性能数据(view) 和会话数据(session)详情页面,点击「谬误」数据,通过「查看 sourcemap」您能够及时发现谬误堆栈信息(实在的代码产生谬误的中央)。

注意事项:
● 该转换过程,只针对 error 数据。
● 以后只反对 js 的 sourcemap 转换。
● sourcemap 文件名称须要与原文件保持一致,如果未找到对应的 sourcemap 文件,将不进行转换。
● 通过接口上传的 sourcemap 压缩包,不须要重启 DataKit 即可失效,但如果是手动上传,须要重启 DataKit,方可失效。

自建追踪

“观测云”反对你通过「用户拜访监测」新建追踪工作,对自定义的链路追踪轨迹进行实时监控。通过事后设定链路追踪轨迹,能够集中筛选链路数据,精准查问用户拜访体验,及时发现破绽、异样和危险。
Step 1: 新建追踪
在观测云工作空间的「用户拜访监测」中,点击「利用名称」进入指定利用,即可通过「追踪」新建追踪轨迹。
进行「新建追踪」时,您须要设定名称和字段,并在生成追踪 ID 后实现引入配置
追踪名称:以后追踪工作的名称。反对中英文混写,反对下划线作为分隔符,不反对其余特殊字符,且最多反对 64 个字符串
标签:定义链路追踪字段。反对通过下拉框抉择以后利用下的标签(key:value ),反对多选
追踪 ID:点击「生成追踪 ID」即可新建追踪轨迹,并由系统生成的惟一追踪 ID 标识。

Step 2: 配置引入形式
生成追踪 ID 后,须要依据追踪 ID 信息在利用中引入代码。以 Web 利用的”NPM 引入“为例,配置步骤如下:
a. 复制以后页面的代码。
b. 初始化 SDK 后,应用所复制的代码增加追踪 ID
c. 批改实现后保留退出

具体步骤请参考:追踪配置示例

正文完
 0