借助机器大数据的统计与分析提升运维管理水平

2018-02-26 20:19黄杰
中国教育信息化·高教职教 2018年1期
关键词:用户行为

黄杰

摘 要:本文阐述了基于机器大数据的应用系统的监测、分析与优化的方法。详细描述了应用监测管理的意义与价值,应用统计的方法与应用性能指标体系,以及设计了一套机器大数据收集、存储、查询与分析的系统架构。最后结合上海财经大学两年多的应用实践,结合实际的应用效果验证了该方案确实可行且具有一定的应用价值。

关键词:机器大数据;应用监测;用户行为

中图分类号:TP393 文献标志码:B 文章编号:1673-8454(2018)01-0090-04

一、前言

据调查,现在当页面加载时间超过4秒时,用户流失率就达到了25%![1]一秒钟的延误或3秒钟的等待,会将顾客满意度减低16个百分点[2]。電商界的鼻祖Amazon也曾表示,网站延迟100毫秒将导致其收入下降1%。根据Google Analytics数据统计,目前移动网页平均加载时间至少要7秒;根据Nielsen Norman Group的调研结果[3]:如果移动网页加载时间超过1秒,将开始影响用户的使用,导致用户产生反感。

因此,性能是应用的命脉,与用户体验、服务稳定性、息息相关。在互联网环境日益复杂的今天,性能监测与用户行为分析的价值在不断提升。与之相关的内容涵盖了系统监测、网络服务、应用代码、性能优化能各个环节。如果从科学化、系统化、专业化的视角来看,应用性能管理奖逐渐成为应用研发体系中不可或缺的一环,并为用户体验保驾护航。

二、应用性能管理

应用性能管理的基本要求是,性能问题暴露前,尽早发现应用性能问题,减少对用户的持续影响;性能问题发现时,尽快修复主要性能问题,减小应用性能影响力度,最大程度改进用户体验;性能问题优化后,杜绝再次发生,可持续保持应用性能优化成果,防止性能退化。

应用性能管理主要围绕监测、分析、优化三个核心步骤。当然,第一步,监测最关键。监测好比是掌握应用性能的“眼睛”,包括监测的对象、监测的数据,数据分析与展示,有了数据,后续的分析与优化就水到渠成。

(1)监测。通过监测软件系统在各种终端、各种产品形态下的性能。如PC、手机、平板、操作系统、网络、应用等。

(2)分析。通过建立评价指标,来评估页面、应用、网络等性能,提供预警和告警指标,为后续的优化提供数据支撑。

(3)优化。通过网络、系统、前端、应用、数据库等各层进行体系优化,提高用户体验为核心目标。

三、应用性能关键指标体系

应用性能监测平台不仅要能全方位监测性能数据,而且还需要具备科学、合理的数据分析能力。也就是说,应用性能监测平台会成为我们的眼、脑和手。首先,它是我们的眼睛,帮我们7×24小时掌握整个系统的健康状况;其次它是我们的脑,能够根据历史的数据和策略规则,快速诊断并定位问题;最后它还是我们的手,协助我们快速进行排障和性能优化。

1.监测数据类型(如表1所示)

应用性能监测平台是对应用性能数据进行分析和展示的平台。它可以用来查看页面性能的各种关键数据,并发现其中存在的问题。应用性能监测平台也通过跟踪页面性能变化的历史,了解功能升级对性能的影响。

2.应用监测步骤

(1)采集数据

数据采集是第一步,并且数据采集不仅需要完整全面,也要随着软件系统的变化而变化。初期需要关注基础的网络性能、系统性能以及应用性能;中期需要在此基础上对多终端真实用户性能、代码性能、数据库性能等方面的全面采集和管理;到了数据采集中后期,还需要补充所有基础架构及关联关系的性能数据。

(2)数据分析

数据分析是指将采集到所有维度的有价值的数据提炼并按有利于发现问题的方式进行可视化的过程。这个过程是持续的、多样的,是承上启下关键一步,也是最具有挑战的一个阶段。

(3)形成决策

决策是经过采集数据和数据分析之后,在变化的生产环境中,自伤而下的观察业务的性能影响,并且能够快速解决应用瓶颈,从而提高应用性能和用户体验。最终经过多次性能优化后,讲产品用户体验优化到最佳状态。

四、应用统计与分析平台的实现

1.方案设计

近年来,随着上海财经大学信息化水平的日益提高,各种IT基础设施资源的建设也日益完善,但内部缺少掌握和分析应用访问情况的高效技术手段,无法量化评估相关系统问题,无法在一个平台上实时的展示各个核心服务系统的访问状态和进行故障定位的关联分析;同时信息办作为全校信息化建设主管部门,无法统计和直观展示各应用系统的访问情况,因而需要建设统一的机器大数据分析平台,达到掌握和分析各应用系统访问情况和提高用户体验的目的。

因此,上海财经大学设计并开发了一套应用应用统计与分析平台,主要为了第一时间发现、定位并修复性能与报错问题,从而提高用户体验。

为了有针对性的解决现有机器大数据的采集、存储、索引与分析等问题,采用splunk大数据分析软件,建立起一个分析各种机器数据的统一的平台,提供通用日志收集、转换和分析的功能,满足重要信息系统所产生的大数据量、半结构化、大并发的复杂数据分析的要求,从而使开发和管理人员能够多维度、细粒度地分析总分部重要信息。

2.架构概述

转发服务器能够通过目录文件监控日志增量变化,将增量变化内容负载均衡的转发给索引服务器导入。核心数据通过在核心交易监控平台上部署转发服务获取日志,考虑到今后机器日志的不断增长和系统架构的冗余性,我们设计了2台转发服务器、3台索引服务器、2台搜索服务器的高并发架构。如图1所示。

3台日志分析服务器存储所有的数据,而且能够进行数据分析索引。索引服务负载均衡的接受转发服务器转发过来的原始日志进行存储。索引服务器同时也接受来自搜索服务器的搜索分析请求,对数据进行搜索分析返回结果给搜索服务器进行展示。对于搜索服务器发起搜索的结果可以被写回到索引服务器上,这样索引服务器也存储分析中间结果数据以及最终结果数据。endprint

搜索服务器是所有的计划搜索调度节点。所有报表和数据抽取都通过搜索服务器进行调度产生。其上不存储任何结果数据,结果数据都写回到索引服务器上。

搜索服务器提供Web界面展现。用户可以登录使用,查看报表、定制自己查询逻辑和查看结果。同时也提供完整的权限控制。

3.系统逻辑架构

信息系统分析平台的逻辑架构分为数据导入层、分析层、访问层和用户层四个层次。如图2所示。

基于模块化实现,系统的各个功能模块说明和具体技术要求描述如下:

(1)数据导入层

实现数据收集和导入,具体需满足表2技术要求。

转发服务器能够通过目录文件监控日志增量变化,将增量变化内容负载均衡的转发给索引服务器导入。各种IT设备的机器数据和抓包数据先统一收集到转发服务器日志,再转发到索引服务器上。

(2)数据分析层

信息系统分析平台的核心功能模块,包括数据存储、数据分析和参数配置三大功能模块,具体需满足表3技术要求。

参数配置模块是整个平台的管理模块,提供可配置的管理界面,实现用户管理和访问控制,以及整个平台的管理参数配置。

(3)数据访问层

该功能模块为访问引擎分析结果数据提供两种不同的访问接口,一种是内部标准访问接口,用于平台本身提供的报表或仪表盘,以及数据检索功能;另一种是自定义访问接口,支持自定义格式导出数据,向外部系统提供数据。具体需满足表4技术要求。

(4)用户层

用户层是平台分析结果数据的使用者,使用用户包括运维人员和关联的运维辅助系统,向运维人员提供报表和仪表盘等展示功能,供运维人员查询交易质量分析报表,以及根据用户分析需求进行自定义的查询和多维度分析。以及向监控系统、综合信息系统等关联的运维辅助系统提供交易质量数据或数据分析服务。

4.功能模块

平台分为八个功能模块,分别是实时分析、趋势分析、页面分析、访问频度、访客分析、性能分析、流量分析、访客使用习惯分析。

实时分析,包括实时访问KPI统计(页面浏览量PV、独立访客数UV、独立IP数、总访问时长、平均访问时长、最大访问时长等、跳出率)、用户实时访问分析、用户访问路径分析、系统并发用户数统计。

趋势分析,包括时间跨度大于24小时的访问统计趋势图(独立访客量UV、独立IP数量,总访问时长),时间跨度小于24小时的访问统计趋势图,按功能模块的访问统计趋势图(独立访客量UV、独立IP数量,总访问时长,跳出率),系统并发访问趋势统计。

页面分析,包括按业务系统的访问统计(PV/UV/IP,总访问时长,跳出率),按功能模块的访问统计(PV/UV/IP,总访问时长,跳出率),业务系统的慢页面统计,页面统计分析(各个域名访问统计比例,每个页面的PV/UV/IP统计,页面访问占比,页面停留时长,平均停留时长,页面退出率)。

访问频度,包括业务系统访客量排名,功能模块访客量排名,应用被独立用户访问次数。

访客分析,包括访客信息分析(访客来源类型分布,访客来源分布,性别分布,访客类型分布,学院部门分布,学生专业分布,学生校区分布),访客系统环境(浏览器类型分布,操作系统类型分布),访客地理分布(访客地域分布表,分访客地域分布图),用户活跃度分析(活跃用户数、用户活跃度、活跃用户分类统计)。

性能分析,包括报错分析(业务实际报错情况,报错模块排序,报错分析,报错URL排序),页面加载时间分析,流量分析,许可证使用情况分析。

访客使用习惯分析,包括访问系统设备、会话数、访问页面数、平均每个会话访问页面数,平均每个会话持续时间,跳出率,用户数,访客使用浏览器排名,访客使用移动设备排名,访客使用操作系统排名,访客来源国家排名,访客来源城市排名,访客来源按位置排名。

五、结束语

我校建立了校级统一的应用统计与分析平台,不同的业务系统、不同的项目开发、测试、运维等多个内部和外部角色对数据监测的需求。

(1)获取业务系统并发访问数和业务访问高峰时段,对硬件和软件的环境配置给出数据指导。

(2)获取业务模块使用频率,得知不受欢迎的功能,深入挖掘,找出原因。

(3)获取用户的客户端参数,对应用系统的开发提供数据支持(浏览器、操作系统、使用插件情况、移动设备的使用等)。

(4)获取业务系统实际报错情况,针对有问题的功能模块,做深入分析,找出问题根本原因,而不是等待用户电话投诉。

(5)获取业务系统功能模块响应时间较慢的功能及页面,深入分析原因,定位具体是网络、数据库、服务器还是代码问题,提升服务质量。

综上所述,对于运维人员,通过对各层次的数据的展示和告警设置,快速直观的发现和定位故障。对于开发人员、测试人员,通过对各层次的数据展示,来反应业务的容量和性能,通过设置阈值来堆业务的容量和性能进行管理。对于部门领导以及校领导,通过对各维度、各层数据的量化,来展示业务运行的状态。对于所有人,用数据说话很容易定位故障、分清楚责任、即使遇见重大故障,都可以在监测数据中评估影响和责任。

参考文献:

[1]Softpedia.The Average Web Page Loads in 2.45 Seconds Google Reveals[EB/OL].http://news.softpedia.com/news/The-Average-Web-Page-Loads-in-2-45-Seconds-Google-Reveals-265446.shtml.

[2]Marketingland.Top Retail Websites Not Getting Faster:Average Web PageLoadTime Is 7.25 Seconds[EB/OL].https://marketingland.com/retail-website-load-times-continue-to-decline-with-a-22-decrease-during-the-last-year-37604.

[3]Nielsen Norman Group.User Experience for Mobile Applications and Websites[EB/OL].https://www.nngroup.com/reports/mobile-website-and-application-usability/?lm=mobile-ux&pt=article.

(編辑:王晓明)endprint

猜你喜欢
用户行为
基于“点击流数据”的电子商务用户行为分析研究综述
电力高校图书馆转型智库服务的研究
社会化媒体用户使用动机与行为探析
基于社交网络的个性化知识服务模型研究