写点什么

UEM 系列(二)初识 UEM“探针”技术

  • 2020-02-13
  • 本文字数:1027 字

    阅读完需:约 3 分钟

UEM系列(二)初识UEM“探针”技术

本篇是 UEM 系列的第二篇,今天让我们一起来初识一下 UEM 当中的"探针"技术。欢迎大家访问以下链接来阅读我们 UEM 系列以往的文章。


链接:https://www.toutiao.com/i6600983314784322056/


1、 UEM 核心功能


用户体验一般分为移动应用体验(UEM App)和浏览器应用体验(UEM Web)两部分。对移动应用的用户体验支持,国内外很多厂商的产品都较为成熟和完善,大家在网上能够找到很多可以参考的项目,UAVStack 开源项目目前主要关注于面向浏览器应用的用户体验。


一般来说,UEM 的核心功能包括以下内容:



2、 "探针"技术捕获数据解密


UEM 的核心在于浏览器探针,通过自动注入到监测网页的 JS 代码,对实际用户访问的网页性能数据进行全样本采集和分析,找到影响用户体验问题本源,帮助用户持续优化 Web 应用性能。


浏览器探针的作用在于以下几点:


  1. 采集浏览器基本信息

  2. 采集页面性能数据(Navigation Timing API)

  3. 采集 AJAX 性能数据+请求/响应数据

  4. 采集 JS 错误数据(包括:出错页面或脚本 URL,引用页面 URL,Error Message,错误位置:行号,列号,等等)

  5. 采集页面追踪数据(Resource Timing API)

  6. 将捕获的数据上传到 UEM Server,便于进行后续的存储、多维度分析、预警和优化等


浏览器探针是根据浏览器状态来采集页面性能数据的。每次页面请求,当获取到 onload 事件结束,则以事件结束时间定义为页面完成时间。当有异步请求再次加载内容,那么这些异步请求记录在 AJAX 数据当中。基于采集到的数据,可以得到以下页面性能指标:



基于这些指标,页面加载流程的分解和可视化将会变得十分简单。


3、 页面加载流程可视化



页面加载流程可视化是 UEM 数据统计的一个重要手段,是 UEM 成果的通俗展示方式。上图是页面加载流程可视化的一个示意图。上述页面性能数据是实时上传的,但数据上传分四个时机:整个页面加载完成后上传、离开页面时上传、发生 JS 错误时上传和有 AJAX 请求时上传。此外,浏览器探针是自动注入到监测网页的,UEM Server 会监听应用服务器的输出,当用户开启自动注入功能,UEM Server 会在应用服务器的输出函数内自动注入 UEM 的浏览器探针,具体实现方式将在以后的分享中详细介绍。通过大量的实验室数据对比,自动注入 UEM 浏览器探针对服务器性能几乎无影响。


本文主要目的是让读者对 UAVStack 的 UEM 和浏览器探针的作用有一个整体的认识,具体的实现将在以后的分享中详细介绍,敬请期待,同时欢迎大家继续关注 UAVStack 官方微信群,相信您一定会有收获!


本文转载自宜信技术学院网站。


原文链接:


2020-02-13 21:47926

评论

发布
暂无评论
发现更多内容

YAML管理Kubernetes应用

CTO技术共享

致敬经典!这款华为主题能让你的手机秒变“历代Mate”

最新动态

随机生成也是需要有效控制的

zxhtom

9月月更

库调多了,都忘了最基础的概念-《方法篇》

知识浅谈

9月月更

Linux系统安装配置jdk

Centos 7 jdk8 9月月更

Java进阶(五)Junit测试

No Silver Bullet

JUnit 测试 单元测试 9月月更

NFT数字藏品介绍:NFT数字藏品(交易平台)系统开发

开源直播系统源码

区块链 NFT 数字藏品 数字馆藏

1分钟了解什么是数据湖?标准的数据湖什么样?

雨果

数据湖

【iOS逆向】某营业厅算法分析

小陈

Java网络编程之InetAddress类详解,URL和URI的区别,URLDecoder和URLEncoder,IPv6和IPv4区别,IPv6的三种表示方法

共饮一杯无

Java 9月月更 URL和URI

P8大佬私藏的:微服务与分布式系统实践详解,YYDS!

程序知音

Java 分布式 SpringCloud 后端技术 微服务架构师

Containerd ctr、crictl、nerdctl 实战

CTO技术共享

生产环境中使用 Linkerd

CTO技术共享

自动化测试如何管理测试数据

老张

自动化测试

产品需求文档必须消亡

ShineScrum

Scrum 敏捷 产品开发 PRD

如何使用Postman调试HMS Core推送接口?

HarmonyOS SDK

移动推送

[教你做小游戏] 滑动选中!PC端+移动端适配!完美用户体验!斗地主手牌交互示范

HullQin

CSS JavaScript html 前端 9月月更

《小米创业思考》之一:小米历程

郭明

读书笔记

C语言_1 背景,和Hello world

泾箐

c 9月月更

C语言_2 变量

泾箐

c 9月月更

i++需要多少QPS才能测出BUG

FunTester

LeetCode-27. 移除元素(java)

bug菌

9月日更 Leet Code 9月月更

阿里云林小平:如何实现资源高效运维及成本分析

阿里云弹性计算

运维 资源管理

真的破防了!在华为主题熄屏显示找到我的第一台Mate

最新动态

数字化转型和信息化的区别是什么?

雨果

数字化转型 企业信息化

LeetCode-28. 实现strStr()(java)

bug菌

9月日更 Leet Code 9月月更

查看k8s的etcd数据

程序员欣宸

Kubernetes 9月月更

云原生(三十六) | Kubernetes篇之Harbor入门和安装

Lansonli

云原生 9月月更

蒙特卡洛方法与蒙特卡洛搜索树(一)

Joshua

机器学习 算法 蒙特卡洛

「趣学前端」骨架屏,分享一波前端UI组件开发的经验

叶一一

JavaScript 前端 组件 9月月更

UEM系列(二)初识UEM“探针”技术_行业深度_谢知求_InfoQ精选文章