从 ES 到 Kylin,斗鱼客户端性能分析平台进化之旅
游戏直播行业龙头斗鱼在 2019 年 Q2 的平均 MAU 再创新高,达到 1.628 亿。每天,超大量的用户使用斗鱼各客户端参与线上互动,斗鱼需要对客户端采集到的性能数据进行统计和分析,开发出具有多维度分析图表和数据监控的 APM (Application Performance Monitoring,应用性能监控) 平台。最初,斗鱼采用了市面上非常流行的 Elasticsearch (简称 ES)实时聚合实现。运行一段时间后,基于 ES 的方案面临用户查询时间长、数据精度丢失等问题,斗鱼采用 Apache Kylin 替换 Elasticsearch, 对 APM 平台中存在的问题进行优化。不试不知道,一试吓一跳。 一、背景 斗鱼是一家面向大众用户的在线直播平台,每天都有超大量的终端用户在使用斗鱼各客户端参与线上互动。伴随业务的迅猛发展,斗鱼需要对客户端采集到的性能数据进行统计和分析,开发出具有多维度分析图表和数据监控的 APM (Application Performance Monitoring,应用性能监控) 平台。 针对不同的客户端采集的不同数据,我们需要将各种维度之间相互组合并聚合,最终产出的数据变成指标在图表中展示。例如:对在时间、地域、网络环境、客户端以及 CDN 厂商等维度聚合下的各项指标情况进行 多维度分析 ,包括客户端网络性能(包含完整请求耗时,请求耗时