基于lighthouse的自动化合成监控方案

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 【第24期】线上体验保障专题
2. 【第1讲】基于Lighthouse的自 动化合成监控方案 分享嘉宾:刘炳男-EIC前端高级开发工程师
3. 大纲 • 背景介绍 • 合成监控方案详解 • 平台设计 • 核心实现 • 规划展望
4. 背景介绍
5. 背景介绍 ⻚面加载时间每减少 100毫秒,用户留存率 ⻚面日均pv:千万级 就会增加 1.11% 分享人:余意 移动端⻚面加载时间超 过3秒, 53% 的访问者 都会选择放弃
6. ⻚面加载时间节点 First Paint (FP) First Contentful Paint (FCP) Largest Contentful Paint Time To Interactive (LCP) (TTI)
7. 性能优化
8. 优化效果 • 首次内容绘制(FCP) 31% • 最大内容绘制(LCP) 31% • 视觉速度指数(SI) 同城宝详情⻚优化前后性能对比 8 优化后 6 4 33% 2 • 可交互时间(TTI) 0 33% 优化前 FCP LCP SI TTI
9. 合成监控方案详解 分享人:余意
10. 什么是合成监控? 真实用户监控(Real User Monitoring) 提交数据 performance API 数据分析 合成监控(Synthetic Monitoring) Chrome 主动url检测 检测服务 数据分析 产出报告
11. 合成监控的优势 • 详细的数据采集,如瀑布图等 • 定性分析,除去设备、网络等不稳定因素对⻚面进行分析、优化 • 不影响真实用户访问性能 • 可视化还原⻚面加载全过程
12. 合成监控方案选型 平台名称 Lighthouse PageSpeed Insights 底层框架 Lighthouse Lighthouse WebPageTest 自有API 是否开源 是 是 是 否 数据维度 支持性 WebPageTest Pingdom 性能、最佳实 性能、优化建议 资源瀑布图等 详细的性能对比 践、SEO等 等 付费、支持用户 nodejs nodejs PHP、linux 监控
13. Lighthouse简介 审核 性能 PWA 可访问性 最佳实践 SEO 使用方式 Chrome插件 Chrome开发者工具 Node CLI Node module
14. Lighthouse架构图
15. Driver工作原理 Driver Connection WebSocket Chrome DevTools Protocol Chrome
16. Driver工作原理 Driver Connection WebSocket Chrome DevTools Protocol Chrome
17. Gatherers工作原理
18. Gatherers工作原理
19. 平台设计 分享人:余意
20. 平台现状——自有平台
21. 平台现状——自有平台
22. 平台现状
23. 平台现状——第三方平台 分享人:余意
24. 平台现状——第三方平台 分享人:余意
25. 平台现状 分享人:余意
26. 平台设计 应用层 基于Performance API 服务层 任务层 框架层 第三方平台 灯塔平台 数据分析 回调方式 过程跟踪 多语言 定时任务 登录信息 任务队列 Koa 业务反馈 优化记录 设备类型 …… 定期榜单 网络状况 分享人:余意 puppeteer运行池 lighthouse Kafka 检测目录 url过滤 bull redis
27. 遇到的一些挑战 • 待检测数量巨大 • 无效⻚面常占据高分段 • 检测任务较耗时,占用内存高 分享人:余意 • 每次检测任务都需要启动puppeteer,造成频繁起停,浪费资源
28. 核心实现 分享人:余意
29. 收集 Kafka Consumer 预处理 Path Hash 检测接口 输出 检测 正则 Redis exists? Y N …… 返回结果 URL去重规则 https://luna.58.com/m/autotemplate?city=bj&ClickID=2 https://seal.58corp.com/#/admin/project?id=58 https://www.58.com/12345/ershoufang Redis set (expire)
30. 收集 Kafka Consumer Path Hash Redis exists? 正则 检测接口 输出 检测 预处理 Y Redis set (expire) response fetch url N …… 返回结果 URL去重规则 登录验证 Y redirect? Y 返回 html?
31. 收集 Kafka Consumer Path Hash Redis exists? 正则 检测接口 输出 检测 预处理 Y Redis set (expire) response fetch url N …… 返回结果 URL去重规则 登录验证 Y redirect? Y 返回 html?
32. 登录验证逻辑 Puppeteer Launch 是否 登录过期 goto 58 login url N 是否携带 用户信息 Y N Y 登录 是否需要 corp登录? 输入登录信息 corp登录 指定账号 检 N Y 58 passport 默认账号 默认用户登录 测
33. 收集 预处理 优先级队列 单条检测 H H H H H H H H H 批量检测 Kafka H H H Lighthouse 运行池 H H 输出 检测 H L L L L L L L L L L L L L L L L L L L L L L E E E E E E E E E E E E E E E E E E E E E E E E E E E E Consumer Puppeteer 初始化 Create All 占用 占用 占用 占用 chromium 实例 chromium 实例 chromium 实例 chromium 实例 占用 空闲 空闲 空闲 chromium 实例 chromium 实例 chromium 实例 chromium 实例 BrowserMax --disable -web-security --no-sandbox --no-zygote ExpireTime —disable -setuid-sandbox --disable-gpu --no-first-run Find Free Run Restart 收集 Close … 分析 重试 是否成功? 报告
34. 收集 预处理 优先级队列 单条检测 H H H H H H H H H 批量检测 Kafka H H H H L L L L L L L L L L L L L L L L L L L L L L E E E E E E E E E E E E E E E E E E E E E E E E E E E E Consumer Puppeteer 初始化 Create All 占用 占用 占用 chromium 实例 chromium 实例 chromium 实例 chromium 实例 占用 空闲 空闲 空闲 chromium 实例 chromium 实例 chromium 实例 chromium 实例 BrowserMax --disable -web-security --no-sandbox --no-zygote ExpireTime —disable -setuid-sandbox --disable-gpu --no-first-run Check Free Run Restart 收集 Close … 分析 重试 服务接口 MongoDB ⻓连接输出 Lighthouse 占用 主动查询 回调 输出 运行池 H H 检测 渲染报告 LHR.json 是否成功? 报告
35. 服务器资源对比
36. 规划展望
37. 规划展望 平台化 生态化 智能化 • 支持更多平台 • 定期产出性能报告 • 性能自动优化 • 增加更多参数支持 • 增加排名机制 • 自动巡检、报警 分享人:余意
38. Thanks~ 分享人:余意
39.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 03:05
浙ICP备14020137号-1 $Map of visitor$