基于行为轨迹重建的用户体验监控方法及装置与流程

文档序号:21000809发布日期:2020-06-05 22:40阅读:269来源:国知局
本发明实施例涉及业务运营支撑系统
技术领域
:,尤其涉及一种基于行为轨迹重建的用户体验监控方法及装置。
背景技术
::网站用户行为轨迹是访客登录网站后按时间顺序先后排列的操作序列,重建此操作序列即通过一系列方法对操作序列数据重构,真实再现过去某个时间点发生的情景,并统计形成有价值的用户体验、业务转化率和访问热点等指标数据,因此重建过程包含用户行为数据采集和数据分析两个方面。重建完整的网站用户行为轨迹有利于掌握网站的用户需求、习惯和喜好,通过和预先设定的标准行为轨迹比较,可以了解到影响交易成功率的关键环节,统计出业务转化率;分析用户行为轨迹有利于监控系统真实响应速度,传统的服务器端应用性能管理(applicationperformancemanagement,apm)数据相对于用户行为来说是脱节的,通过扩展标签技术打破用户行为轨迹数据孤岛与apm数据孤岛之间的屏障,盘活后端监控数据,可以按照系统响应构成项进行拆分,并获取客观的系统性能评价;分析用户行为轨迹还有助于检索非法恶意操作,诊断应用程序漏洞,如今面向应用业务的cc(challengecollapsar)攻击占有互联网攻击类型的80%以上,构成了目前it网站安全的最大挑战,而通过用户行为分析可过滤出一些突破业务逻辑限制,绕过应用安全策略的行为。现有技术中,已商用的采集技术手段有:1、用户行为采集程序与应用无缝集成,甚至在应用产品设计的初期考虑到用户行为数据输出接口,采集程序或集成在界面javascript方法中;2、在不同的业务模块中自定义外部拦截器,需要手动在页眉、页脚的共享javascript中添加外部拦截器,并在界面加载时自动加载;3、在服务器端响应报文中注入通用外部拦截器,在servlet响应客户端的html报文中自动注入拦截器;4、在浏览器底层通过钩子hook拦截。数据分析不是简单得基于操作序列的统计,而是在此基础上总结出业务转化率、拆分用户行为时间构成项以及完整业务聚合,实现对不同业务类型的操作复杂度、交易促成障碍热点分析。已商用的分析技术手段有:1、基于关系型数据库的筛选、剔重和排列;2、基于规则向量的聚类;3、基于扩展标签技术xtags实现的用户行为、apm数据关联,实现业务模块的智能识别和耗时构成项的拆分。现有技术中的数据采集方案存在如下缺点:1、用户行为采集程序与应用高度集成,对于正在服役的老应用系统,改造成本较高,采集程序与应用程序代码融合,增加了代码复杂度,解耦难度增加;2、自定义外部拦截器可以对现有应用程序改造,但依然需要对各业务模块逐一改造,改造成本较高;3、从服务器端统一注入拦截器的方式,避免了对代码改造,但是其无法确保通用性,无法拦截所有界面元素的操作;4、浏览器hook技术利用了底层的植入能力,但数据可读性差,无法与业务模块对应,因此数据利用价值偏低。现有技术中的数据分析方案有如下缺点:1、apm多为黑盒,采用javainstrumentation(代码仪器)实现服务器路径跟踪,在获取业务标识时采用aop技术,可能会递归复用应用组件中的get方法,造成了apm在采集数据的过程中间接调用应用的方法,存在潜在的性能风险;2、apm获取的是完整的交易拓扑,实际上在进行数据关联时,只需要其中小部分数据,若apm提取这部分数据需要配置复杂的业务分析规则,变相增加了apm负担,数据处理能力下降。技术实现要素:本发明实施例的目的是提供一种克服上述问题或者至少部分地解决上述问题的基于行为轨迹重建的用户体验监控方法及装置。为了解决上述技术问题,一方面,本发明实施例提供一种基于行为轨迹重建的用户体验监控方法,包括:采集用户操作序列;采集服务器端动态请求信息;将用户操作序列和服务器端动态请求信息进行关联;对经过关联处理后的用户操作序列进行业务聚合。另一方面,本发明实施例提供一种基于行为轨迹重建的用户体验监控装置,包括:第一采集模块,用于采集用户操作序列;第二采集模块,用于采集服务器端动态请求信息;数据关联模块,用于将用户操作序列和服务器端动态请求信息进行关联;业务聚合模块,用于对经过关联处理后的用户操作序列进行业务聚合。再一方面,本发明实施例提供一种电子设备,包括:存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述的方法。又一方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述的方法。本发明实施例提供的基于行为轨迹重建的用户体验监控方法及装置,实现了基于页面的用户轨迹重建,对所有菜单界面元素实现了用户操作捕获,仅需很小的程序改造,对正常业务逻辑没有影响。相比现有的用户体验管理和独立界面插码方式,大幅降低了维护成本、程序改造成本,通过定制可以覆盖多项用户行为,通过记录页面元素漫游路径提高了用户操作数据的可读性。附图说明图1为本发明实施例提供的基于行为轨迹重建的用户体验监控方法示意图;图2为本发明实施例提供的业务聚合示意图;图3为本发明实施例提供的业务聚合过程执行完毕后的最终匹配结果示意图;图4为本发明实施例提供的基于行为轨迹重建的用户体验监控装置示意图;图5为本发明实施例提供的电子设备的结构示意图。具体实施方式为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明实施例提供的基于行为轨迹重建的用户体验监控方法示意图,如图1所示,本发明实施例提供一种基于行为轨迹重建的用户体验监控方法,其执行主体为基于行为轨迹重建的用户体验监控装置,简称监控装置,所述方法包括:步骤s101、采集用户操作序列;步骤s102、采集服务器端动态请求信息;步骤s103、将用户操作序列和服务器端动态请求信息进行关联;步骤s104、对经过关联处理后的用户操作序列进行业务聚合。具体来说,本发明实施例提供一种基于行为轨迹重建的用户体验监控方法,在页面公共区域注入通用外部拦截器,并使用事件触发递归、事件冒泡捕获等手段采集用户操作序列,采集服务器端动态请求信息,提升了数据采集效率,实现一次注入,处处生效。采用kryo系列化并输出较大体积的业务标识,对传统的apm数据进行优化过滤,最终输出用户操作序列,以及uri序列和服务器purepath等服务器端动态请求信息,将用户操作序列和服务器端动态请求信息使用pandas进行实时数据关联。最后,对经过关联处理后的用户操作序列进行业务聚合。本发明实施例提供的基于行为轨迹重建的用户体验监控方法,实现了基于页面的用户轨迹重建,对所有菜单界面元素实现了用户操作捕获,仅需很小的程序改造,对正常业务逻辑没有影响。相比现有的用户体验管理和独立界面插码方式,大幅降低了维护成本、程序改造成本,通过定制可以覆盖多项用户行为,通过记录页面元素漫游路径提高了用户操作数据的可读性。在上述实施例的基础上,进一步地,所述采集用户操作序列之前,还包括:在服务器端中间件中注入用户操作采集脚本。具体来说,采集用户操作序列之前,首先需要在服务器端中间件servlet中注入用户操作采集脚本。在服务器端中间件servlet中注入用户操作采集脚本模块,采用jvminstrumentation技术在jvm继承中依附代理程序,代理程序实现了一个httpservletresponse过滤器,并追加到公共response链表的末端,此过滤器首先获取response写入器,通过写入器将采集模块javascript引用标签写入字节流的对应位置(此处位置为主框架的</body>前端,放在此处的缘由是能够在大部分界面元素加载后加载,初始阶段便能捕获大部分用户操作),修改后的字节流最终下发到用户浏览器中,实现基于用户浏览器的数据采集,其伪代码如下:httpentityentity=response.getentity();intoffset=entityutils.search("</body>")-1;response.getwriter().write("<scripttype=\"text/javascript\"src=\"${project.custompath}/js/coding.js\"></script>",offset);response.getwriter().flush();response.getwriter().close();这里为提升采集模块注入效率,提前获取了字节流的注入位置,并在此位置写入代码,避免了响应字节流全覆盖,降低了内存开销。为提升字节流定位速度,使用了改善的并行boyer-moore字符串搜索算法(以下简称bm算法),首先通过字符串均匀裁减成w个滑窗,以降低搜索的数据规模,多线程并行搜索子串时,使用bm算法快速搜索,当未找到字符串时将w个滑窗整体向后平移1个字符,再重复上述并行bm算法,直到向后平移m-1次,平移的目的是防止分割点正好位于待搜索字符串内部,其中m为待搜索字符串的长度,因此其计算复杂度为:最差为本发明实施例提供的基于行为轨迹重建的用户体验监控方法,实现了基于页面的用户轨迹重建,对所有菜单界面元素实现了用户操作捕获,仅需很小的程序改造,对正常业务逻辑没有影响。相比现有的用户体验管理和独立界面插码方式,大幅降低了维护成本、程序改造成本,通过定制可以覆盖多项用户行为,通过记录页面元素漫游路径提高了用户操作数据的可读性。在以上各实施例的基础上,进一步地,所述采集用户操作序列,具体包括:使用冒泡方式在页面顶端采集用户操作序列;对系统提示进行拦截;对弹窗进行拦截。具体来说,采集用户操作序列主要包括三个步骤:基于冒泡实现的主体行为捕获、系统提示拦截和对jquery的popwin弹窗的拦截,其中,jquery的popwin无法通过正常页面遍历获取到,因此需要对popwin单独处理。1)基于冒泡实现的主体行为捕获:采集模块部署到主页面框架最外层,随着用户访问crm系统时而自动加载,并自动拦截window.load事件,启动递归流程traverser,traverser按顺序执行以下流程:①首先从界面元素中搜索随servlet自动注入的采集模块是否已存在,若存在则说明已具备了采集能力,没有必要进一步递归,则退出。②拦截当前窗体的document对象的click、change事件,即为冒泡法拦截当前document内所有已创建元素和即将创建元素的click、change事件,冒泡法相对于现有的逐一元素处理的方法效率更高,覆盖更全面,而无需单独处理每一个元素,对性能影响较小。拦截采用jquery.bind绑定事件处理函数,以获取对jquery的良好支持,事件处理函数的主要功能为将操作时间、操作人信息和操作内容以json格式异步发送到服务器端。此时驻留在top对象中的uem_json属性对象已经记录了登录的操作员工号、单位等基础数据,通过克隆此属性对象创建一个模板,并在此模板基础上写入拦截的用户操作内容、终端时间,此后即可发送数据了,发送数据采用ajax异步方式,不影响正常业务,同时设置cookie属性xtags为随机生成的uuid,用于和服务器端的url关联。③由于操作内容获取传统的方式为getreadableinfo,即获取可读信息,即通过分析元素自身属性、内部innertext、前后兄弟属性、父元素或叔伯元素得到可读性文字,其准确性受到严重影响。如今改造为鼠标截屏、ocr文字识别的方式,提升元素名称可读性。鼠标截屏是在鼠标点击按钮等元素时,自动识别到光标所在区域的外围边界,识别方法为事件target元素的端点坐标,并以此边界做为截图的坐标范围,进行图像裁切,使用基于html5的第三方js:imgcut和html2canvas裁减,如:varimgcut=newimgcut("divhidden","./target.jpg",150,200,100,100);再调用ocr的javascript实现,获取文字信息,采用第三方tesseract.js实现。④在当前document中递归其他iframe、frame对象,使用jquery进行搜索,对于找到的iframe、frame对象,首先判断其就绪状态,若为complete,则回到流程①进行递归遍历;否则说明未加载完成,绑定load事件,等待其加载完成,再触发遍历。有些静态iframe、frame是动态添加到当前页面中的,在进行消息拦截时,还未出现,因此需要定义监视器,以观察即将添加的元素。在监视器定义中,首先判断新增元素的标签名是否为iframe或frame,若是则进行递归插码;若新增元素为div或其他嵌套元素,则进行二次定义监视器,并进行二次搜索;为避免监视对象泛滥,造成内存溢出,需要在当前document.body['monitors']中记录监视对象,所有监视对象随body的销毁而关闭,因此需要捆绑unload事件,代码如下:$(doc.body).bind('unload',function(e){while(e.target['monitors'].length>0){e.target['monitors'].pop().disconnect();}});2)系统提示拦截:由于crm为定制开发的软件,其系统提示格式不尽相同,以<form/>、<frame/>、<iframe/>的,使用jquery搜索到具体的id后捕获;对于当前窗口直接抛异常的,从当前属性获取;对于模态框、非模态框、alert和confirm的系统提示,需要进行重写。3)最后对于iframe::popwin的窗体,首先添加自定义append事件,因为popwin窗体为使用append方法追加的主页面尾部,append事件回调的逻辑为:首先获取最后被添加的元素,获取popwin的document对象;其次,检查document的就绪状态,若已完成加载,则进行递归用户操作捕获,否则绑定load事件,再触发递归用户操作捕获;至此,用户操作序列采集模块输出关系型数据结构为{xtags(主键)、终端id、操作员id、操作类型、元素位置、时间戳},通过ajax请求发送到服务器端。本发明实施例提供的基于行为轨迹重建的用户体验监控方法,实现了基于页面的用户轨迹重建,对所有菜单界面元素实现了用户操作捕获,仅需很小的程序改造,对正常业务逻辑没有影响。相比现有的用户体验管理和独立界面插码方式,大幅降低了维护成本、程序改造成本,通过定制可以覆盖多项用户行为,通过记录页面元素漫游路径提高了用户操作数据的可读性。在以上各实施例的基础上,进一步地,所述采集服务器端动态请求信息,具体包括:分别采集网页服务器apache中的动态请求信息和操作系统底层协议中的动态请求信息;将apache中的动态请求信息和操作系统底层协议中的动态请求信息通过ip五元组进行关联。具体来说,本发明实施例采用httpserverhook方式分别采集网页服务器(apachehttpserver,简称apache)中的动态请求信息和操作系统底层协议中的动态请求信息。其中涉及到多个钩子处理方法,分别是:连接阶段的挂钩:ap_hook_create_connection、ap_hook_pre_connection和ap_hook_process_connection;请求阶段的挂钩:ap_hook_create_request、ap_hook_post_read_request。其中建立连接阶段挂钩伪代码如下:moduleap_module_declare_datauri_collect_module={standard20_module_stuff,null,null,null,null,null,register_hooks}staticvoidregister_hooks(apr_pool_t*pool){//钩子注册ap_hook_pre_connection(uri_collect_handler,null,null,apr_hook_last);//挂钩到处理程序}钩子处理程序uri_collect_handler的实现如下:chartemp[128]={0};now=localtime(&timer);//获取系统时间sprintf(temp,"{服务器端时间:%s,",now->tm_year+1900,now->tm_mon+1,now->tm_mday,now->tm_hour,now->tm_minute,now->tm_second,now->tm_millesecond);sprint(temp,"ip五元组:<%s,%s,%s,%s,%s>",req_rec->conn->client_addr,req_rec->conn->client_port,req_rec->conn->proto_id,req_rec->conn->local_addr,req_rec->conn->local_port);在建立连接中引入ip五元组的原因是希望与操作系统底层tcp数据进行关联,将建立连接时间进一步细化为syn-sent、syn-received和established构成项,以对用户体验的网络构成项进行深入剖析。本实施例仅截获apachehttpserver的操作系统级tcp调用,因此采用ring3级动态库函数劫持方式进行hook,connect函数重构为:intconnect(intsockfd,conststructsockaddr*addr,socklen_taddrlen){staticint(*func)(int,conststructsockaddr*,socklen_t);fn(func,int,"connect",(int,conststructsockaddr*,socklen_t));return(*func)(sockfd,addr,addrlen);}使用ld_preload修改动态库的加载顺序,使重构的代码生效,通过hook分别在apachehttpserver和os底层tcp采集了两个关系型数据结构:前者为{xtags(主键),ip五元组,uri,建立连接时间,请求读取完成时间(为客户端请求上行时间,或认为网络传输时间),后端请求处理时间},后者为{ip五元组(主键),数据包类型(三次握手包还是数据交换包),[三次握手包时间序列:syn到达时间,syn/ack发出时间,确认ack接收时间],[数据交换包时间序列:psh,ack到达服务器端时间,接收完发送ack时间]}。二者通过ip五元组进行关联。本发明实施例提供的基于行为轨迹重建的用户体验监控方法,实现了基于页面的用户轨迹重建,对所有菜单界面元素实现了用户操作捕获,仅需很小的程序改造,对正常业务逻辑没有影响。相比现有的用户体验管理和独立界面插码方式,大幅降低了维护成本、程序改造成本,通过定制可以覆盖多项用户行为,通过记录页面元素漫游路径提高了用户操作数据的可读性。在以上各实施例的基础上,进一步地,所述用户操作序列和服务器端动态请求信息在分析处理之前无文件保存到磁盘,通过网页服务器apache进行传输。具体来说,在采集用户操作序列和服务器端动态请求信息之后,产生的两个线条的数据分别由apache的两个模块处理,action_module和uri_module,为保证数据传输的稳定性和较低的开销,整个传输链到分析处理前无文件落地到磁盘,两个module通过管道与flume建立关联,配置flume的数据源类型为avro,通道channel类型为memorychannel,数据下沉为failoversinkprocessor,最后落地为oracle12c或mongodb等支持json数据查询功能的数据库,最终查询在原始json数据上检索,无须进一步处理。其中,在apache两个模块的配置中,需要分别指定customlog为flumeavroclient。flumeserver端:bin/flume-ngagent-c./conf/-fconf/flume-conf.properties-nagentapache客户端:customlogbin/flume-ngavro-client-c./conf/-h0.0.0.0-p41414/本发明实施例提供的基于行为轨迹重建的用户体验监控方法,实现了基于页面的用户轨迹重建,对所有菜单界面元素实现了用户操作捕获,仅需很小的程序改造,对正常业务逻辑没有影响。相比现有的用户体验管理和独立界面插码方式,大幅降低了维护成本、程序改造成本,通过定制可以覆盖多项用户行为,通过记录页面元素漫游路径提高了用户操作数据的可读性。在以上各实施例的基础上,进一步地,所述将用户操作序列和服务器端动态请求信息进行关联,具体包括:通过用户操作标签xtag将用户操作序列和服务器端动态请求信息进行关联。具体来说,本发明实施例输出的数据存在以下特点:1)错位关联,由于用户操作数据的xtags标记发生在uri之后,因此当前操作的xtags与下一个操作的uri相对应;2)大部分uri都有用户操作对应,可正常关联,没有用户操作对应的数据为界面自动发送的探测请求或机器人请求,将进入审计消息队列;3)两个线条的数据均为流式数据。由于数据存在以上特点,需要进行查询较多特殊定制,因此采用普通批量脚本处理。上述关系型数据可以设为:tbl_actions(seqid,xtags,termid,operid,opertype,elemloc,timestamp,status),tbl_uris(seqid,xtags,uri,timecomposition…,status),根据小时数据量规模,按照seqid的前10位yyyymmddhh24分区,后22位为自然增加的序列值,入库时需要考虑客户端时间与服务器端时间的差异,时间调整一致后入库。关联算法如下,以用户操作数据为驱动,首先找到用户操作标签xtags对应的uri序列的第一条uri的seqid,再以此uri为边界向上回溯到最近一个有用户操作对应的单个uri,及对应的xtags,最后根据此xtags找到对应的uri序列。对于处理完成的数据,更新状态为已处理。伪代码如下:declarev_seqvarchar2(32):=null;--临时序列值v_xtagsvarchar2(16):=null;--xtagsbeginforcurin(select*fromtbl_actionspatition(p_yyyymmddhh24))loopselectmin(seqid)intov_seqfromtbl_urispartition(p_yyyymmddhh24)twheret.xtags=cur.xtags;selectt.xtagsintov_xtagsfromtbl_urispartition(p_yyyymmddhh24)twheret.seqid<v_seqandt.xtagsisnotnull;--此处已过滤掉无操作的uri需要注意的是:对于浏览器自动发送uri的行为需要特殊处理,即将xtags置空,否则会将浏览器自动发送的uri归类到用户操作中。selectcur.*,uri,timecomposition…bulkcollectintos_resultfromtbl_urispartition(p_yyyymmddhh24)twheret.xtags=v_xtags;--关联结果updatetabletbl_actionspartition(p_yyyymmddhh24)tsetstatus=0wheret.xtags=cur.xtags;--更新处理标记为已处理updatetabletbl_urispartition(p_yyyymmddhh24)tsetstatus=0wheret.xtags=cur.xtags;--更新处理标记为已处理endloop;end;分区边界数据处理,当用户操作或uri发生在分区边界时,检索当前分区可能会出现数据丢失,需要向上或向后推移一个分区,进行检索。如果当前分区已无状态为待处理的数据,则删除此分区。本发明实施例提供的基于行为轨迹重建的用户体验监控方法,实现了基于页面的用户轨迹重建,对所有菜单界面元素实现了用户操作捕获,仅需很小的程序改造,对正常业务逻辑没有影响。相比现有的用户体验管理和独立界面插码方式,大幅降低了维护成本、程序改造成本,通过定制可以覆盖多项用户行为,通过记录页面元素漫游路径提高了用户操作数据的可读性。在以上各实施例的基础上,进一步地,所述对经过关联处理后的用户操作序列进行业务聚合,具体包括:针对用户操作序列中的目标操作,在用户事务链表中检索所述目标操作,若找到匹配项,则将目标操作添加到所述用户事务链表中对应项的已聚合操作序列上;若找不到匹配项,则在所述用户事务链表中新增一个用户事务。具体来说,业务聚合即根据具体操作的业务标识进行操作划分,即获取某时间点在某终端上某位操作员办理给某位客户办理某项业务时的操作。由于服务器捕获了全体营业员的操作数据,因此同一时间段,不同终端的操作数据混杂在一起。图2为本发明实施例提供的业务聚合示意图,如图2所示,业务聚合的具体步骤如下:1)按照浏览器cookie中的会话标识、终端ip、操作员工号进行第一轮拆分,得到每个操作员在某台终端上的一组操作。由于操作数据流到达服务器时已经按照先后顺序排列好了,因此对操作数据流按照先进先出队列方式处理,后续不再涉及排序。2)从待处理用户操作队列中取出一个目标操作记录,以会话信息(如终端id、操作员id、业务受理对象等)在用户事务链表中检索,若找到匹配项,则将该目标操作记录追加到用户事务链表中对应项的已聚合操作序列上,当此序列已匹配到菜单关闭项时,则将链表数据记录数据库;若找不到匹配项,则在链表中新增一个用户事务。本发明实施例获取的用户操作序列是带有操作控件在页面的相对位置的,因此含有详细的业务信息,在业务聚合阶段无需和url关联。3)以菜单打开、关闭操作作为业务开始、结束标志,对序列进行二次拆分,得到唯一的一笔业务操作序列。至此,业务聚合过程执行完毕,图3为本发明实施例业务聚合过程执行完毕后的最终匹配结果示意图。本发明实施例提供的业务聚合流程相比于基于服务器端插件监控方式更能适应多笔业务重叠的情形,当操作员受理第一笔业务过程中,交叉受理了其他业务,服务段插件能获取到的请求头业务信息仍然是第一笔业务的菜单id和第一笔业务的受理对象,因此对交叉受理的业务无法正确识别;而本实施例是通过页面控件相对其他控件的位置标注业务信息的,不依赖于具体请求头中的业务标识。本发明实施例提供的基于行为轨迹重建的用户体验监控方法,实现了基于页面的用户轨迹重建,对所有菜单界面元素实现了用户操作捕获,仅需很小的程序改造,对正常业务逻辑没有影响。相比现有的用户体验管理和独立界面插码方式,大幅降低了维护成本、程序改造成本,通过定制可以覆盖多项用户行为,通过记录页面元素漫游路径提高了用户操作数据的可读性。图4为本发明实施例提供的基于行为轨迹重建的用户体验监控装置示意图,如图4所示,本发明实施例提供一种基于行为轨迹重建的用户体验监控装置,用于执行上述任一实施例中所述的方法,具体包括第一采集模块401、第二采集模块402、数据关联模块403和业务聚合模块404,其中:第一采集模块401用于采集用户操作序列;第二采集模块402用于采集服务器端动态请求信息;数据关联模块403用于将用户操作序列和服务器端动态请求信息进行关联;业务聚合模块404用于对经过关联处理后的用户操作序列进行业务聚合。具体来说,本发明实施例提供一种基于行为轨迹重建的用户体验监控装置,在页面公共区域注入通用外部拦截器,并使用事件触发递归、事件冒泡捕获等手段,通过第一采集模块401采集用户操作序列,通过第二采集模块402采集服务器端动态请求信息,提升了数据采集效率,实现一次注入,处处生效。采用kryo系列化并输出较大体积的业务标识,对传统的apm数据进行优化过滤,最终输出用户操作序列,以及uri序列和服务器purepath等服务器端动态请求信息,通过数据关联模块403将用户操作序列和服务器端动态请求信息使用pandas进行实时数据关联。最后,通过业务聚合模块404对经过关联处理后的用户操作序列进行业务聚合。本发明实施例提供的基于行为轨迹重建的用户体验监控装置,实现了基于页面的用户轨迹重建,对所有菜单界面元素实现了用户操作捕获,仅需很小的程序改造,对正常业务逻辑没有影响。相比现有的用户体验管理和独立界面插码方式,大幅降低了维护成本、程序改造成本,通过定制可以覆盖多项用户行为,通过记录页面元素漫游路径提高了用户操作数据的可读性。图5为本发明实施例提供的电子设备的结构示意图,如图5所示,所述设备包括:处理器501、存储器502和总线503;其中,处理器501和存储器502通过所述总线503完成相互间的通信;处理器501用于调用存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:采集用户操作序列;采集服务器端动态请求信息;将用户操作序列和服务器端动态请求信息进行关联;对经过关联处理后的用户操作序列进行业务聚合。本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:采集用户操作序列;采集服务器端动态请求信息;将用户操作序列和服务器端动态请求信息进行关联;对经过关联处理后的用户操作序列进行业务聚合。本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:采集用户操作序列;采集服务器端动态请求信息;将用户操作序列和服务器端动态请求信息进行关联;对经过关联处理后的用户操作序列进行业务聚合。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。以上所描述的装置及设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1