MDAP:可观测性数据分析平台设计与实践

本文首发于微信公众号“Shopee技术团队

摘要

MDAP(Multiple Dimension Analysis Platform)是一个多维实时监控分析平台,能够支持业务应用侧自定义指标的监控与分析,并在自定义监控分析能力上,实现了对移动端应用性能数据的专项监控分析能力,以满足业务日益增长的数据监控分析需求。

本文作为系列文章的第一篇,将介绍 MDAP 平台如何实现移动端可观测数据监控分析,并提升监控性能与分析精准度。

1. 背景

随着 Shopee 业务不断发展,为了更加了解终端用户使用的体验,更好地决策产品优化特性,各业务团队内部涌现出大量对线上终端数据可观测的需求。例如:终端的页面转化率、用户留存率、终端的性能监控(包括 CPU 使用率、内存使用率、网络流量等),以及终端稳定性监控(崩溃、ANR)等。

而业务各项转化率、留存率等指标除了会受到产品功能、商业推广、应用模式等影响外,更多会受到应用自身的性能以及稳定性影响。亚马逊的统计显示,网页每 100 毫秒的延迟就会使他们损失 1% 的销售额;同时谷歌也指出,搜索页面生成时间多出 0.5 秒,流量就会减少 20%。所以,对线上应用的性能及稳定性监控就显得极为重要。

MDAP(Multiple Dimension Analysis Platform)作为一个多维实时监控分析平台,能够支持业务应用侧自定义指标的监控与分析,并在自定义监控分析能力上,实现了对移动端应用性能数据的专项监控分析能力,以满足业务日益增长的数据监控分析需求。本文将介绍 MDAP 平台如何实现移动端可观测数据监控分析,并提升监控性能与分析精准度

对于应用性能管理,全球权威的 IT 研究与顾问咨询机构 Gartner 将其定义为,包含数字体验监控(DEM);应用程序发现、跟踪及诊断(ADTD); 以及面向技术人员的人工智能运维(AIOps)。

目前,业界对后台的数据监控在以上三个维度都拥有相对成熟的解决方案,例如 DEM 指标采集使用 Promethues,ADTD 使用 ELK 以及 opentracing 的方案等。

然而,终端侧并未有体系化的解决方案,能够指引行业人员构建三个维度象限下的可观测数据分析系统。如果要构建一套终端数据监控分析系统,应该如何实现?从以上三个维度出发,需要分别思考以下问题:

  • 针对 DEM:采集的指标有哪些,以及这些指标的影响是什么?
  • 针对 ADTD:异常指标如何转化为具体可处理的方案,如何快速找到问题模块?
  • 针对 AIOps:如何实现问题分析的精准性,如何降低研发分析耗时与成本?

2. MDAP 架构介绍

为了解决以上问题,MDAP 整体设计上包含了可观测数据的采集和后台分析处理服务。整体服务架构如下图所示,后台架构服务设计上遵照 DDD 设计思想做了微服务化设计,并能利用 Helm 实现在 K8s 集群中一键部署,从而满足一些业务快速私有化部署的需求。

1)MDAP Backend

作为微服务集群,对上报的各个监控的数据计算转换,对脏数据过滤,或者对上报的文件做解析与分析,挖掘上报文件中的问题点。例如从内存快照中找到内存泄漏、对象重复、对象过大等内存使用异常的问题。使用 Inteillgentize 生成的数据模型,对分析出的问题类别做智能打标分类。

2)DI Platform

构建在 Shopee 的 Data Infra 上,通过 Flink 流式拉取数据清洗或做简单的预计算后落入存储中,并通过 Spark 对存储的详细数据按照小时、天或者周的维度做上卷聚合,输出维度指标数据,提供页面指标实时查询使用。

3)Intelligentize

作为智能运算服务,利用 Spark ML 等大数据分析套件,对 DI Platform 中经过预处理的数据做半监督或无监督学习,生成数据模型,提供给微服务集群作为标签分类的依据。

4)Boussole

作为实时分析引擎,从数据源拉取数据并经过前置清洗,通过用户在平台中定义的指标和维度以及汇聚方式实时聚合后,将产生的结果数据落入持久化存储,用户通过平台前端配置的相关视图及 Dashboard 实时观测这些最新汇聚出的数据结果,这些结果做为告警的数据源,降低反复查询 ClickHouse 等数据库的频度,减少对页面访问的干扰影响。详情可以参考文章《Boussole Engine:针对多维时序数据实现的实时分析引擎》。

3. 指标采集与钻取

3.1 采集数据类型

在采集数据前先要划分数据的类型与用途,不同用途的数据采集方式、存储方式、产品形态各有不同的方案。参照分布式监控,监控的数据可以分为 Metrics、Logging、Tracing 三类,用维恩图(Venn diagram)可以表现为下图形式。

1)Metric

Metric 作为监控指标是原子的,每个都是一个逻辑计量单元,大多作为时序数据。在终端中,Metric 可以包含 CPU 使用率、内存使用率、网络流量等系统或者业务指标。

针对其时序数据的数据,MDAP 使用 ClickHouse 来做存储,方便数据做实时查询分析。提供趋势图、日环比、周环比、维度数据、统计报表。分布图等分析面板能够协助用户快速找到问题维度,进而做单维度的下钻分析,缩小问题的排查范围。另外,数据指标可以作为告警的来源,作为发版后或者日常指标监控的标准。

2)Logging

作为一些离散的(不连续的)事件,Logging 包含着事

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值