快速搭建产品的数据分析平台——思路篇

数据分析平台的目标
    产品上线有必定流量后都会有数据分析的需求,分析运营状态、用户行为、应用运行状况等等,为产品改进提供数据支撑。可是数据分析可大可小:既可作到只提供概览,也可作到对每条数据的分析;既可只分析业务指标像用户增加状况等,也可能要分析用户行为或者系统参数等。所以,搭建一个数据分析平台以前必定要了解本身的需求才知道要作到什么程度。
    笔者在本文搭建的数据分析平台,主要想达到5个目标:
  1. 了解产品状态:包含业务指标、应用指标和系统指标三大部分。业务指标好比用户增加状况,新增订单状况;也有应用指标,好比用户的搜索次数,登录次数,应用运行状态等;还会有系统指标,好比nginx,mysql,redis运行状况,系统使用率等等;(见效果图1)
  2. 异常行为的详细分析:当从第1步中发现有异常指标时,可能须要抽取出某一天,某个用户,某个IP产生的全部记录对它们分析;(见效果图2)
  3. 集中对多个产品的分析:咱们本身的产品就超过有近10个,要了解产品状态须要登录每一个产品后台显然是太费劲了,因此须要集中管理;
  4. 灵活扩展:当须要对多个产品作数据分析时,不可能去期望每一个产品的数据指标都同样,而是数据分析平台要可以针对不一样产品快速建立指标,好比免费的产品就没有订单相关的指标,而收费产品就有这些指标。
  5. 权限管理:业务指标和行为指标一般是给运营和产品人员看的,而运营人员和产品人员要看的产品可能不是同一个,应该要有权限管理才能确保不一样角色只看到属于他们的内容。
解决方案
    最初咱们想在各个产品集成数据分析功能,而后作一个集中式的数据分析平台管理各个项目,实际分析后本身开发工做量过大,并不现实。转而思考使用开源产品或者第三方平台。可是单个数据分析平台一般难以彻底知足咱们的全部目标,所以在思路上转为考虑将多个数据分析平台组合在一块儿。
    在测试了多个开源产品和平台之后,最终引入Grafana+ELK做为数据分析的平台。为方便讨论,咱们将数据分析分红三大场景:概览、分析和监控。解决方案之因此须要多个产品组合在一块儿,是由于不一样的产品对于不一样角色,不一样场景的侧重点不一样,一款产品要同时覆盖运营、产品、开发这些角色对数据分析的需求不太现实 ,所以经过组合的方式解决此问题。
    (图片来源:《腾讯好文!如何设计内容精确、体验友好的Dashboard?(上篇)》)
    解决方案分为三个部分:
  1. 产品自身后台:只支持业务指标的概览,不实现分析和监控功能。该部分并无解决目标问题,可是这个观念能够防止投入过多资源到产品后台的开发上。
  2. Grafana:业务指标、应用指标以及系统指标的概览和监控,和比较弱的分析功能。该平台解决目标1,3,4,5。
  3. ELK:对异常行为作详细分析。尽管ELK也能够支持概览和监控,可是只适合开发人员,而Grafana已经能解决目标问题,因此ELK主要承担分析的职责。该平台解决目标2。
效果图
1.Grafana快速呈现业务指标和用用户行为指标效果图:
Grafana示例
Grafana示例
Grafana示例
2.异常行为分析效果图:
ELK
扩展阅读:Grafana、ELK、七牛云日志智能管理平台、BDP的区别
    在调研各个数据分析平台时,测试比较多的Grafana、ELK、七牛云、BDP这几个平台。前两个是开源平台,后两个是第三方平台。为何最终采用Grafana+ELK的组合呢?而不是采用BDP代替Grafana,七牛云代替ELK呢,这就须要对它们之间的区别作个比较。
    在比较不一样的数据分析平台时,借用下图,从监控源、数据彩信、数据存储、数据分析、数据展示(预警本文不讨论)去分析它们的区别。
(图片来自《建设DevOps统一运维监控平台,先从日志监控提及》一文)
  •     Grafana:Grafana的数据存储可来自MySQL,也能够是ElasticSearch或者Prothemous等各类类型的数据源。对这些数据源的支持使得Grafana能够直接覆盖各类监控源,采集业务指标、应用指标和系统指标天然就不在话下。再加上它自己的鉴权系统完善,若是只选择一个可视化平台,它会是首选。Grafana缺点在于数据分析上不够强大,好比全日志检索等,当发现异常须要对数据深刻分析时,就不方便了,这时就须要ELK了。
  •     ELK:ELK是日志分析系统的开源方案,它在上面的各个方面都很强大。可是它的定位既决定了它的优势,也决定了它的不足。它在数据分析很是强大,适合对异常行为作深刻分析;可是用它作业务指标的呈现就显得太过复杂了,好比只是统计有多少用户和对用户作分类,在Grafana中直接读取MySQL数据库便可,在ELK中就须要绕很长的路。另外,它没有鉴权系统。这些缺点实际上是ELK的目标人群是开发者决定的,它正好补了单纯用Grafana的短板。
  •     七牛云日志智能管理平台:七牛云是ELK的替代品,一开始我是想直接使用不搭建ELK。可是在调研了3天,因为2个缘由放弃了:1.反复配置后没有获得指望的效果 2.想要接入Grafana,发现只能使用官方提供的服务,不能接入自行搭建的Grafana。若是使用中有较多问题,那我会倾向于使用开源方案,ELK碰到问题时能够经过上网搜索自行解决;可是使用第三方平台就只能依赖于官方支持了。可是对于缺乏开发资源的公司,采用第三方平台会是更好选择。
  •     BDP:BDP是第三方的数据分析平台,分析它是想确认它是否可以代替Grafana,或者部分代替Grafana。因为BDP主要解决业务层面的数据分析,因而这里从业务指标和非业务指标两方面去比较。
    • 业务指标:BDP主要定位就是处理业务数据,主要目标人群是非IT,以及对外呈现。因此它在处理纯业务数据上功能上是强于Grafana的,好比多来源的数据合并、报表十分丰富、导出精美排版的PDF等等。若是要作对外宣传的报表,或者将多个来源的业务数据并在一块儿,我认为它比Grafana更合适。可是在大部分状况下,咱们主要仍是使用单个产品分析,或多产品的重叠比较。这个时候,对于开发者而言,BDP须要先导入表、对表拼接(SQL语法弱致使的,好比SELECT *不支持,更不用说JSON_VALUE等新特性)、以及过滤项的拖拉并不如模板变量好用,因此在大部分的业务指标上,它并不如Grafana有效率。
    • 非业务指标:好比ES中的nginx日志、监控mysql运行数据、系统运行时的CPU等等,在监控源上BDP并不支持,Grafana则支持多种类型的时序数据库。因此非业务指标的话,BDP并不适合与Grafana比较。
    • 综上,我把BDP当成对Grafana的补充,而不是替代关系。
  参考
相关文章
相关标签/搜索