10 分钟快速构建能承载海量数据的数字化体验监控平台

首先简单介绍一下什么是数字化体验监控。数字化体验监控(DEM,Digital Experience Monitoring)是多个来源采集的数据集组合起,通过将可视化,分析和机器学习功能方法,来实现可用性和性能监控的方法。通过观察和分析数据集,来优化应用和服务,达到提升终端,人和设备的体验的目的。

通常,如果想构建一套能够承载海量数据的具有实时数据监控,日志搜索和分析功能的数字化体验监控平台,一般需要完成以下几个步骤:

  1. 首先需要开发包括移动端,web 端等在内的数据采集探针,收集包括首开,crash,http 性能,卡顿,日志等相关的数据,并进行上报;
  2. 搭建一个收点网关,进行一些数据清洗和过滤;
  3. 搭建消息队列服务缓存数据,如 kafka;
  4. 搭建存储服务,如 HDFS 、 Elasticsearch 等,将数据落存储;
  5. 搭建实时,离线数据分析平台,如 Spark、Flink 等;
  6. 数据可视化展示、告警系统。

实现以上功能,不仅需要有一个资深大数据背景的技术团队和客户端团队的支撑以及漫长的开发周期,系统上线后仍需持续投入精力持续维护迭代,以应对诸如逐步上升的数据量和快速变化的需求;若是对平台的横向扩展能力没考虑周全,众多开源组件崩盘的风险很可能会让之前的投入白费。

为了让用户可将资源精力聚焦于业务价值提升而无需担忧复杂的大数据技术和部署运维难题。七牛大数据平台 Pandora 和七牛数字化体验监控平台 DEM 应运而生。

七牛数字化体验监控平台 DEM

七牛数字化体验管理平台 DEM(Digital Experience Management)是基于七牛大数据平台 Pandora 及对象存储服务 Kodo 构建的一套支持全平台面向海量数据的数字化体验管理平台。使用七牛 DEM 能够快速赋能应用海量终端用户体验数据监控和分析的能力,免去搭建和运维迭代大数据平台的烦恼。

移动 App 常见痛点

崩溃定位

  • 快速暴露、发现、定位、修复
  • 统计错误,报警
  • 长时间保存
  • 机器学习分析

交互响应慢

  • ANR 定位
  • 界面卡顿
  • API 调用慢

网络问题

  • 连接超时
  • 网络错误
  • CDN问题
  • 客户端网络信息收集



日志分析

  • 客户端上报日志

  • 长时间保存
  • 机器学习分析

七牛 DEM 特点

  • 客户端开源,用户可以查看,修改,定制
  • 海量数据,永久存储
  • 自定义数据上报
  • 网络诊断数据
  • 开放式的数据流,结合Pandora大数据平台,做各种离线,实时分析
  • 日志上报
  • 按真实数据量付费



DEM 架构

七牛 DEM 是构建在七牛大数据平台 Pandora 之上的 SaaS 产品,其构成组件如下:


图1

1、准备工作

在使用DEM之前,您必须做好以下准备工作:

  • 拥有七牛云账号;
  • 到七牛云官网申请 Access Key 和 Secret Key;
  • 联系客服或销售人员开通 Pandora 及 DEM 相关服务;

2、快速开始

创建第一个 App

图2

在浏览器中打开我们的主页
https://predem.qiniu.com
使用您的七牛账号登录,然后即可如下图所示,快速创建您的第一个 App。

  • 在创建 App 时,您可以选择开启或关闭各个功能组件,如崩溃上报、网络性能上报和App卡顿监控,这些开关默认都是开启的
  • App 创建成功之后,请到该 App 的 App 设置页面,获取 App Key,供相关 SDK 上报数据使用



3、安装各平台的探针 SDK

-iOS SDK

首先前往
https://github.com/pre-dem/pre-dem-objc
使用 Coacoapods 安装 iOS SDK

然后,只需如下两行代码,您便可将 sdk 集成到您的 App 中:


图3
-Android SDK

首先前往
https://github.com/pre-dem/pre-dem-android 安装 Android SDK

然后您只需在"MainActivity"中的 onResume() 方法(如未找到该方法请新增)中初始化 Android APM SDK

DEMManager.start("apm.domain.com", "appkey", this.getApplicationContext());


图4

-Web SDK

首先前往
https://github.com/pre-dem/pre-dem-web 安装 Web SDK

然后将 pre-dem-web.js 文件引入到你需要的 html 页面中, 然后初始化 SDK。


图5

至此您已经完成了探针 SDK 的集成,当您下次运行您的 App 时,SDK 将收集相关体验监控数据并上报到七牛 DEM 平台。是的,就是如此简单。

4、在 DEM 控制台查看 App 体验数据

crash 监控

当您的 App 发生 crash 后,在控制台您能够看到如下图所示的 crash 日志,目前我们支持按照时间进行过滤,另外也可以按照机型系统版本等多种维度进行查询。点击详情之后可以看到 crash 的详情,这样您可以快速排查并解决相关错误。


图6

网络诊断日志

我们的 SDK 提供有发起网络诊断的接口,当您的 App 主动调用该接口之后,SDK 将进行 Ping,HTTP request 等多种网络诊断,并将结果将发上报到七牛 DEM 平台,在控制台您能够看到如下图所示的网络诊断日志,目前我们支持按照时间进行过滤,另外也可以按照机型系统版本等多种维度进行查询。


图7

网络性能监控

当您的 App 产生 http 请求或使用内置 webview 打开了网页,在控制台可以看到如下图所示统计分析图标,展示包括下载速度以及错误率等多个维度的统计信息。


图8

卡顿监控

当您的 App 发生卡顿后,在控制台您能够看到如下图所示的卡顿监控日志,目前我们支持按照时间进行过滤,另外也可以按照机型系统版本等多种维度进行查询。点击详情之后可以看到卡顿的详情,这样您可以快速排查并解决相关错误。


图9

web 性能监控

当用户打开了网页后,web sdk 将自动上报网页打开的性能数据,在控制台可以看到如下图所示统计分析图标,展示包括页面加载各个阶段的时间,各资源加载时间等多个维度的统计信息。


图10

日志上报

我们在 SDK 中提供日志采集的接口,当您调用之后 SDK 将采集您的日志并上报,在控制台您能够看到如下图所示的日志,目前我们支持按照时间进行过滤,另外也可以按照机型系统版本等多种维度进行查询。


图11

自定义上报

我们在 SDK 中也提供了自定义事件的上报接口,通过该接口,您能够自由上报想上报的事件,上报的数据将存储于 Pandora 大数据平台,您可以自由新建计算任务进行统计并导出到下游的持久化组件中,然后选择自己开发或 Grafana 等来进行相关数据的展示。详见 Pandora 使用文档
http://pandora-docs.qiniu.com


图12

【七牛云大数据平台,点击了解更多】