用于提供实时或接近实时的纠正反馈的性能监测的制作方法

文档序号:14723566发布日期:2018-06-18 13:27阅读:448来源:国知局

许多大规模和小规模商业依赖于某种类型的在线服务作为运行成功风险的一部分。带宽是影响网络速度的一个因素。延时是影响网络速度和响应性的另一个因素。延时可以被描述为影响网络数据的处理的延迟。网络状况、硬件和软件限制、和/或其它因素可能对一些在线应用或服务的用户体验产生负面影响。随着云计算和数据中心服务的出现,当务之急是跨越数百的服务器计算机和服务于全世界数百万用户的相关联网络基础设施,以最小的瓶颈提供及时的服务。

一个困难在于与实时或接近实时地监测多个地理位置以及多个不同组件上的一个或多个服务的健康状况相关联的复杂度。系统停机时间以及甚至少量的性能恶化可能导致额外的工时、成本和机器过载,这可能潜在地影响公司的盈亏。不幸的是:本领域的当前状态在提供高效地识别问题并尽快提供鲁棒的解决方案或反馈的性能监测和解决系统方面有所不足。



技术实现要素:

提供本发明内容以便以简化的形式对下面在具体实施方式中进一步描述的设计构思的选择进行介绍。本发明内容并不意图识别所主张的主题内容的关键特征或本质特征,也不意图协助确定所主张的主题内容的范围。

实施例提供了监测在线用户体验和/或纠正性能问题,但不限于此。根据一实施例的计算机实现的方法操作为对客户端性能数据进行接收、预聚合和聚合,作为提供端到端诊断监测和解决服务的一部分。根据一实施例的系统被配置为对多个客户端设备或系统的性能数据进行聚合,作为识别承租者(tenant)级别、地理位置级别和/或服务提供商级别中的一个或多个级别处的延时问题的一部分。包括了其它实施例。

通过阅读下文的具体实施方式以及检阅相关联的附图,这些及其它特征和优点将是显而易见的。应当理解的是:前文的概括描述和下文的具体描述二者都仅是解释性的,并不限制所主张的发明。

附图说明

图1描绘了部分地操作为提供实时或接近实时的最终用户性能监测服务的示例性系统。

图2是描绘预聚合和聚合性能和/或其它数据的示例性过程的流程图。

图3是描绘示例性端到端数据处理流水线的组件的框图。

图4是描绘用作提供性能诊断分析和/或问题纠正服务的一部分的示例性端到端过程的操作的流程图。

图5是示出用于各个实施例的实现方式的示例性计算环境的框图。

图6A-6B示出了可以用来实践实施例的移动计算设备。

图7示出了用于各个实施例的实现的系统架构的一个实施例。

具体实施方式

图1描绘了部分地操作为提供实时或接近实时的最终用户性能监测服务的示例性系统100,但不限于此。系统100的组件部分地操作为使用聚合延时和/或其它网络数据来缓解和/或解决网络生态系统问题。作为示例,作为提供在线服务(如提供一个或多个办公效率应用和/或应用套件的特征)的一部分,系统100的组件可以操作为基于性能数据的聚合向承租者提供故障区域分析和解决信息。系统100的组件可以用于提供对在线服务的可用性的实时或接近实时评估,以及能够识别或针对故障区域进行故障诊断和/或更正任何相关联的性能或用户体验问题。

如下文所描述的,系统100包括向在线服务的消费者提供最终用户性能光学(optics)的特征,其包括对实时承租者级别光学进行量化,如通过使得消费者中的一个或多个指定人员能够具有跨越任何地理位置查看用户库的性能或其它度量的能力。例如,系统100的组件通过收集承租者级别数据以识别最高延时数据或其它异常值用来在定义的感兴趣位置内进行报告或告警来进行部分操作。配备有关注地理级别的能力,可以发现特定于位置的问题,如糟糕的CDN性能、DNS解析时间、较长的往返时间等。另外,基于服务提供商的地理粒度允许识别互联网服务提供商(ISP)级别处的问题。

因此,消费者可以使用实时或接近实时的反馈来识别具有恶化或者不足的服务体验的用户、承租者和/或位置。如上文简要描述的,系统100的组件可以操作为探知承租者的一个或多个故障区域,以及识别具有恶化的体验的具体用户。例如,作为监测使用在线电子邮件服务的最终用户的一部分,聚合服务110可以使用规则来生成聚合输出112,以便生成由通信延时的等级来进行颜色编码的、基于地理位置的延时图。如下文所描述的,聚合服务110可以使用所配置的规则来生成聚合输出112,作为基于地理、ISP和/或其它参数来调试和隔离问题的一部分。

因此,系统100的组件操作为识别故障区域,如,通过隔离与DNS解析器、ISP对等互连、网络路由、非最佳托管位置等有关的问题。例如,系统100的组件可以用于针对一个或多个位置(例如,区域、国家、县等)、一个或多个承租者、由地理位置或ISP选择的承租者、和/或由ISP选择的地理位置对用户体验的状态进行评估或量化。系统100部分地操作为提供:通过客户端时间、网络时间、服务器时间、CDN时间、连接时间等来对具有另外的故障的延时或其它数据进行调试;通过延时来识别异常数据(如第一数量的承租者和ISP);生成关于延时和其它性能度量的历史趋势;为有效的边缘服务器部署和其它服务器部署提供指导数据;通过配置邮箱服务器具有地理映射能力来实现预聚合;生成报告数据以便深入了解真实的用户CDN交互;支持基于网络接入和本地安装的客户端来减少加载时间等。取决于客户端,可以收集不同类型的度量或其它数据,并将其提供给系统100用于量化用户体验。

系统100的组件可以用作通过主动操作以识别具有恶化的体验的具体用户或用户群组以支持使用在线服务或应用的一部分。如下文所描述的,作为对在线服务或应用的性能状态进行评估的一部分,可以相对于特定位置或ISP的一个或多个基线体验来进行量化的比较。建立鲁棒和最新的基线允许对与性能有关的呼叫/电子邮件的更专注和确信的响应,并且异常值的识别的主动方面可以用于与服务消费者具有360度循环。

系统100的一个实施例包括服务支持通信基础设施,其能够对性能或与服务器组件、客户端组件和/或网络状况相关的其它问题(如网络延时问题、DNS查找问题、内容分发网络(CDN)问题等)进行故障诊断和纠正。根据一个实施例,数据收集服务包括分散式架构,该分散式架构通过对每个服务器节点的原始客户端数据进行处理来部分基于分散位置来分割客户端数据,所述处理包括:在最终聚合之前,在向一个或多个存储装置(如多个数据库服务器)上载预聚合数据之前对原始数据进行预聚合。

根据该实现方式,聚合服务110可以被配置为在一个或多个物理机器上运行的单独或集成的服务,以便基于公共和/或定制度量的集合跨越多个数据存储装置对预聚合数据进行全局聚合。通过作为在每个节点处收集数据的一部分的预聚合,部分由于最终聚合所使用的有限数量的数据点,可以减少处理时间和使用。因此,可以实时或接近实时地生成聚合数据。根据一个实施例的聚合服务110被配置为:对延时和/或其它性能数据(包括导航和/或加载定时数据)进行自动聚合,以识别不同级别或粒度(如承租者级别、地理或位置级别和/或ISP级别)的问题,作为高效地纠正任何认识到的或潜在问题的一部分。

继续参考图1,虽然示出了有限数量的组件来描述各个实施例的方面,但将领会的是:实施例不限于此,并且其它配置是可用的。例如,虽然示出了单个服务器102,但系统100可以包括多个服务器计算机(包括预聚合服务器、数据库服务器和/或聚合服务器),以及用作端到端计算架构的一部分的客户端设备/系统。将领会的是:服务器可以包括一个或多个物理和/或虚拟机器,这取决于具体的实现方式。

如下文进一步描述的,系统100的组件被配置为:对客户端信息进行收集、预聚合、聚合和/或分析,作为向顾客提供关于应用或网络的状态的实时或接近实时报告的一部分。另外的组件和/或特征可以根据需要添加到系统100。例如,基于所识别的延时,顾客可以使用反馈来在其网络中部署另外的边缘服务器。如下文所描述的,系统100的组件可以用于跨越服务客户端或消费者库的多个网络和网络类型来探知不同的用户体验和/或网络状况。

如图1中所示,服务器102从一个或多个客户端接收示为输入104的信息。根据实施例,输入104包括与正在使用在线服务或应用的客户端相关联的性能数据。例如,原始性能数据可以被上载到服务器102用于处理。在一个实施例中,输入104包括与客户端体验有关的信息(如加载和导航网络资源),和/或服务器102包括支持使用日志文件来存储所收集的数据的服务器计算机。在一个实施例中,用户设备/系统上运行的浏览器或其它应用可以使用脚本代码来收集与导航定时参数、资源和/或加载定时参数中的一个或多个相关的信息、和/或可以写入服务器日志文件的自定义标记参数。例如,服务器102可以被配置为微软交换(MICROSOFTEXCHANGE)服务器,以使用一个或多个容错的、基于事务的数据库来存储信息。

根据实施例,除了处理和存储器资源以外,服务器102包括可扩展的诊断特征,其使用对输入104所包括的原始性能数据进行部分操作的预聚合器106,但不限于此。根据一实施例的预聚合器106操作为对存储在日志文件中的客户端数据进行解析,作为抽取客户端数据并将其映射到一个或多个映射表的一部分。在一个实施例中,预聚合器106操作为对存储在一个或多个日志文件中的性能数据进行解析以生成映射,其中,映射是通过将客户端IP地址和所记录的客户端信息转换成地理位置(例如,国家/州)、ISP和/或承租者全局用户标识符(GUID)中的一个或多个来部分定义的。

预聚合器106被配置为:在将形成群组的信息存储到存储装置108之前,通过IP、位置、ISP和/或承租者GUID中的一个或多个来将性能数据形成群组。例如,预聚合器106可以被配置为:通过国家/州、ISP和/或承租者来将与客户端延时度量相关联的性能数据形成群组。如果记录的数据不能被解析到ISP级别,那么预聚合器106可以识别受限于国家和/或承租者的群组。将领会的是:可以根据客户端IP地址来确定国家和ISP参数。

如图所示,聚合服务110对由预聚合器106提供的经预聚合的输出进行操作以生成聚合输出112。由预聚合器106提供的功能部分地操作为增强聚合服务110处的处理和存储器资源的高效使用,同时还降低功耗,这是由于较小的数据集合可以被输入聚合服务110来生成聚合输出112。根据一实施例的聚合服务110包括操作为提供聚合输出112的一个或多个服务器计算机和复杂聚合代码。如下面更详细描述的,可以对聚合输出112进行进一步处理以识别任何潜在的故障区域和/或可能对用户体验有所影响的其它问题。根据一个实施例的聚合服务110跨越数据库对预聚合数据进行聚合,以便对与特定应用、服务或其它组件相关联的承租者级别延时、国家级别延时和/或ISP级别延时中的一个或多个延时进行量化。

如下文所描述的,聚合服务110可以包括用于控制经预聚合的输出的处理以生成聚合输出112的规则。基于不同的规则类型,聚合输出112在应用或在线服务的执行期间,提供与用户体验有关的、包括相关性、趋势、基线比较和/或其它量化信息的关注。例如,可以实现对预聚合数据进行操作的规则,以便基于区域的总体值来分析性能,如通过针对北美的给定度量推导出75%的百分位x和标准差y。如果针对墨西哥的测量结果大于(x+y),那么可能促使潜在的问题上报给工程人员。下文进一步描述了另外的特征。

将领会的是:复杂通信架构通常采用多个硬件和/或软件组件,包括但不限于服务器计算机、联网组件和通过有线和/或无线网络的方式实现通信和交互的其它组件。虽然已经描述了一些实施例,但各个实施例可以与包括手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、微型计算机、大型计算机等的多种计算机配置一起使用。可以在通过一个或多个通信网络进行通信的、使用远程处理设备/系统的分布式计算环境中实现各个实施例。在分布式计算环境中,程序模块或代码可以位于本地和远程存储器二者中。各个实施例可以实现为过程或方法、系统、设备、制品等。

图2是描绘根据实施例对性能和/或其它数据进行预聚合和聚合,作为提供性能诊断和/或纠正服务的一部分的示例性过程200的流程图。过程200在202处通过接收原始性能数据开始。例如,202处的过程200可以操作为使用服务器计算机来接收由客户端收集的、以客户端为中心的性能数据,作为请求对在线服务或应用的状态的评估的一部分。在一个实施例中,202处的过程200操作为接收包括导航定时、页面加载定时和/或其它参数的客户端性能数据,以便在评估与在线服务或应用相关联的健康状况或用户体验时使用。

在204处,过程200操作为对原始性能数据进行预聚合。在一个实施例中,204处的过程200操作为在将预聚合数据上载到一个或多个数据库用于最终聚合操作之前,通过对日志文件进行解析以及将客户端IP地址映射到承租者标识符、位置标识符和/或ISP标识符中的一个或多个标识符来对原始性能数据进行预聚合。在206处,过程200操作为对预聚合数据进行聚合。在一个实施例中,206处的过程200操作为通过生成延时或其它用户体验量化值的输出来部分地对预聚合数据进行聚合,以便识别承租者级别、位置级别和/或ISP级别中的一个或多个级别处的问题。

如果在208处没有进一步的聚合操作,那么过程200前进到210,并使用聚合数据来进行延时和/或其它分析。否则,过程200返回206并继续聚合操作。如上文所述以及下文进一步描述的,聚合输出可以用作通过实现应急或其它措施来纠正任何识别的问题的一部分。虽然针对图2的示例性流描述了特定数量和次序的操作,但将领会的是:可以根据期望的实现方式来使用其它的数量、组合和/或次序。

图3是描绘示例性端到端数据处理流水线300的组件的框图,端到端数据处理流水线300部分地操作为提供用户对聚合数据的洞察作为识别基础设施、性能、网络或可能对在线应用或服务的使用产生负面影响的其它问题的一部分。例如,支持基于云的应用服务的在线服务可以包括用于接近实时地收集和量化性能数据或度量的功能,其包括:通过所收集的与客户端操作参数、承租者参数、IP参数、位置参数和/或ISP参数中的一个或多个参数相关联的度量来提供用户场景延时和详细的故障。流水线300的组件部分操作为对承租者级别、IP级别、地理位置级别和/或ISP级别处的数据进行聚合、制表(pivot)和/或存储。流水线300的组件部分地操作为主动监测用户体验,以便降低性能恶化同时提供告警和/或解决方案来纠正最终用户性能问题。

如图3中所示,与第一承租用户相关联的客户端302和与第二承租用户相关联的客户端304正在与服务器306通信。如图所示,日志文件308接收并存储来自客户端302和304的收集的数据。在一个实施例中,客户端302可以实现为在用户设备系统上运行的浏览器应用的一部分,其中,脚本代码可以用于收集与在线应用或服务的使用相关联的信息,如页面加载时间、连接时间或一些其它参数。根据一个实施例的服务器306包括专用于服务客户端302和304的服务器计算机。根据实施例,服务器306包括针对相关联节点的、使用IP映射器310和上载组件312的诊断服务。

IP映射器310和上载组件312部分地操作为提供对日志文件308的数据的预聚合服务。如上文所描述的,单个组件可以被配置为执行由这些组件提供的预聚合服务。根据一实施例的IP映射器310部分地操作为解析日志文件308,以基于每个客户端或承租者的IP地址、位置和/或ISP中的一个或多个来抽取和映射记录的性能数据或度量。根据一个实施例,IP映射器310部分地操作为通过将客户端IP地址和性能或延时数据映射到地理位置(例如,国家/州)、ISP和/或承租者全局用户标识符(GUID)中的一个或多个来预聚合和汇总客户端数据。上载组件312操作为向专用数据库314上载由IP映射器310提供的,通过位置、ISP和/或承租者GUID中的一个或多个形成群组的映射数据。如果记录的数据不能被解析到ISP级别,那么预聚合可以包括受限于国家和/或承租者的群组。将领会的是:可以根据客户端IP地址来确定国家和ISP参数。

继续参考图3,服务器306的组件被配置为具有复杂编程代码,所述复杂编程代码操作为部分通过对所收集的客户端数据进行解析(如通过对性能数据日志进行解析),并基于客户端信息抽取用户场景、事件时间、客户端IP、延时、承租者数据和其它细节度量,来对所收集的客户端数据进行预聚合。随后,服务器306能够在量化延时和/或其它性能问题时对从客户端接收的数据进行预聚合,作为降低最终聚合负载的一部分。

根据一实施例的IP映射器310操作为基于已知的或将要实现的IP范围,根据到相关联的ISP的映射粒度和/或客户端IP,将客户端IP地址映射到地理位置。服务器306包括操作为部分基于客户端的类型和/或相关联的客户端数据来进行解析的分析代码。例如,可以收集网络访问客户端的性能数据并将其路由到服务该会话的邮箱服务器的日志文件,其中,分析代码将被配置为:解析特定客户端信息以理解场景、延时及相关联的问题(例如,慢导航时间、慢DNS时间等)。

根据一实施例的解析操作为将日志文件中的客户端IP地址和承租者信息转换成国家/州、ISP和/或承租者GUID。在一个实施例中,使用从通用公共地理映射数据库生成的、推导出的映射表来部分地执行解析操作。

用于解析的地理映射数据库中的示例性数据条目可以包括:

StartIP|EndIP|CIDR|Continent|Country|Country_IS02|CountryConfidence|Region|State|State_CF|City|CityConfidence|Postal_Code|…..

16777472|16778239|24|asia|china|cn|8||beijingshi|73|beijing|5|100000|0|8|39.91176055|116.3792325|0|0|0|unknown||none|False|0|0|0|1307256208|0|RT_Unknown

16778240|16779263|24|oceania|australia|au|8||victoria|74|melbourne|5|3000|0|l0|-37.8132|144.963|0|0|0|unknown||none|False|56203|7482486|440|1312156419|1312378472|RT_Unknown

由根据一实施例的IP映射器310应用的解析操作通过扫描每个数据条目、基于IP范围和要产生的相应国家进行分类及合并,使得推导出的针对IP向国家的映射表的生成:

16777216,au

16777472,cn

16778240,au

16779264,cn

16781312,jp

16785408,cn

16793600,jp

16809984,th

16842752,cn

映射表可以包括示例性映射{键,值}数据。如上文所示,映射数据包括表示起始IP地址的、为整数值的键,以及为国家ISO代码的值。在上文的映射数据中,16777216和16777472之间的IP地址属于AU。通过对键进行分类,可以压缩表格来加载入存储器以便迅速查找。

类似地,由根据一实施例的IP映射器310应用的解析操作使得如下所示的推导出的针对IP到ISP的映射的映射表的生成(键与上文相同,但值是ISP的ASN编号):

17498112,18313

17514496,38091

17522688,38669

17530880,17839

17563648,18245

继续参考图3,并继续该示例,服务器316通过使用IP映射器322和上载组件324来处理预聚合数据并将其上载到另一个专用数据库326,来部分地对存储在日志文件321中的客户端318和320的客户端数据进行处理和预聚合。专用数据库314和326可以包括或可以不包括一个以上的主机计算机。另外,虽然示出了特定数量和类型的组件,但将领会的是,流水线可以包括另外的组件、特征和功能。服务器328通过使用IP映射器338和上载组件340来处理预聚合数据并将其上载到专用数据库326,来部分地处理存储在日志文件337中的客户端330、332、334和336的客户端数据。

在实施例中,数据库314和326被设计为处置性能计数器和从可联网以提供在线应用或服务的各个机器收集的度量。由于最终用户性能数据带来另外的数据透视表,因此数据库模式可以用于支持IP、地理位置、承租者和/或ISP度量和参数。在一个实施例中,服务器306、服务器316和服务器328从多个客户端收集客户端数据。例如,在节点级别,服务器306可以操作为使用IP映射器310每5分钟对客户端数据进行预聚合,以便将客户端数据转换到预先确定的数据透视表中,并且上载组件316将经转换的数据上载到数据库314。

聚合服务342跨越数据库314和326对预聚合数据进行聚合,以确定与在线应用或服务相关联的承租者级别延时、国家级别延时和/或ISP级别延时中的一个或多个延时,但不限于此。例如,聚合服务342对经预聚合或经转换的数据进行操作,以便对节点级别的数据执行范围(例如,全局和/或站点)级别转变来得到最终用户度量。如图3中的示例所示,聚合服务342已经提供了包括与第一承租者相关联的量化的客户端性能数据346以及与第二承租者相关联的量化的客户端性能数据348的聚合输出。多个示例计数可以用作加权因子来提升量化的客户端性能数据的统计精度。

聚合服务342可以被配置为:以定义的时间间隔(例如,每15分钟运行一次,用于持续1小时的数据的滑动窗;每24小时运行一次,使用持续24小时的数据的滑动窗)对从更多个上载组件中的一个上载组件上载的预聚合数据进行聚合。聚合服务342还可以被配置为:通过地理位置、承租者、每地理位置的ISP、每地理位置的承租者、和/或每站点级别的范围,跨越一个或多个域控制器来制表或形成群组。聚合服务342部分地操作为生成客户端场景延时和其它与性能相关的统计值,以便量化导航时间、CDN时间、授权时间、重新定向时间等。例如,聚合服务342可以提供诸如平均75%百分位、85%百分位、95%百分位等的统计测量结果/值。聚合服务342还可以使用涵盖一系列延时的动态容器(bin),这些延时具有针对第10、第20、第30、第40、第50、第60、第70、第80、第90百分位以及最大数处的延时的百分位数值。

故障区域分析器350部分地操作为使用被设计为通过使用统计测量或其它延时量化来识别数据聚合的特定片段或特性的规则。例如,规则可以被设计为基于一个或多个定量测量结果(如导航时间、加载时间、连接时间等)来识别性能的不同级别(例如,一般,糟糕,优良等)。根据来自聚合服务342的输出将规则应用于聚合数据。示例性规则是根据每种实现方式而可配置的。例如,规则可以基于区域或ISP的总体值,如被配置为相对于其它度量或测量而优先考虑某些度量或测量。

报告生成器352操作为生成报告信息,所述报告信息用于报告和/或反馈关于应用或服务的状态的通信连同针对具有可能需要解决的某个所识别的问题的承租者的任何特定建议。例如,报告生成器352可以操作为动态生成用户洞察报告,该报告列出针对具有最高延时的每个地理位置的前若干(例如,10)个承租者或具有最高延时的前若干个承租者。虽然示为集成的组件,但将领会的是:故障区域分析器350和报告生成器352可以被配置为单独的组件。在替代实施例中,可以在聚合服务342处单独应用数据透视表,或结合应用于服务器306服务器316和/或服务器328的数据透视表应用数据透视表。

根据一实施例的流水线300使用性能标记作为以下各项的一部分:可靠地收集客户端数据;允许场景的成功执行和失败执行的隔离;允许监测数据(例如,探针)的过滤/隔离;精确地标记与用户体验有关的场景(例如,导航时间、页面加载、页面显示、页面交互等)的开始和结束;和/或识别和填充丢失的数据,以协助详细的向下深入,如完成认证的时间、下载CDN资源的时间、重新定向到正确的网络接入服务器的时间等。

根据一个实施例的导航定时包括基于W3C导航定时API中定义的每个时间戳的计算出的值。为了解决关于用户体验的完整信息的需要,W3C导航定时API引入了性能定时接口,其允许JAVASCRIPT机制在应用内提供完整的客户端侧的延时测量。该接口可以用于测量用户感知到的页面加载时间。根据一个实施例的资源定时标记是基于W3C资源定时API中定义的每个时间戳的计算出的值,所述W3C资源定时API定义了允许JAVASCRIPT机制在应用内提供完整的客户端侧的延时测量的接口。该接口可以用于测量用户感知到的资源的加载时间。

下表提供了根据一个实施例的示例性标记、标记计算和相关联的描述。

其它示例性标记可以包括:

页面加载时间(PLT)—没有认证时间的PLT时间,该键仅在“类型(type)”是PLT时出现(从无缓存或浏览器缓存启动)。

ALT—没有认证时间的PLT时间,该键仅在“类型(type)”是ALT时出现(从应用缓存启动)。

RDT—从网络接入结束取回会话数据直到PLT结束标记的呈现时间。

对于以下示例,客户端原始数据包括的参数包括但不限于以下各项:

重新定向计数(RC);

重新定向时间(RT);

提取时间(FT);

域查找时间(DN);

连接时间(CT);

安全连接时间(ST);

请求时间(RQ);

响应时间(RS);

总响应时间(TR);

Dom加载时间(DL);以及

总导航时间(NV)

作为示例,日志文件308可以包括如下与客户端302相关联的网络访问导航定时原始数据:

20XX-01-09T00:08:12.304Z,W3CNavTimeTestBox,PerfNavTime,S:mg=<<TenantID>>;S:ts=20XX-01-09T00:08:03.860;

S:UC=5f8a321a877591c42b7;I32:ds=132;I32:DC=l;S:Mowa=0;S:ip=<PII>IPAddress</PII>;

S:tg=D73DD084-BF81-4F05-A0D0-B8599C0444D0;S:user=<PII>Usernamelikeuserlcontoso.com<PII>;

S:cbld=15.0.609.0;S:BuildType=DEBUG;

S:URI=<<Server

URI>>;S:FT=12;S:DN=0;S:CT=0;S:RQ=0;S:RS=10;S:UL=5;S:NV=5000;S:DL=2000;

S:D1=1078;S:D2=1760;

S:DE=5;S:PL=2;S:RC=0;S:NT=1.

以及如下与客户端304相关联的导航定时原始数据:

20XX-01-09T00:08:12.304Z,W3CNavTimeTestBox,PerfNavTime,S:mg=<<TenantID>>;S:ts=20XX-01-09T00:08:04.860;S:UC=f8a321a877591c42b7;I32:ds=132;I32:DC=l;S:Mowa=0;S:ip=<PII>IPAddress</PII>;

S:tg=D73DD084-BF81-4F05-A0D0-B8599C0444D0;S:user=<PII>Usernamelikeuserlcontoso.com</PII>;

S:cbld=15.0.609.0;S:BuildType=DEBUG;

S:URI=<<Server

URI>>;S:FT=20;S:DN=1;S:CT=10;S:RQ=10;S:RS=10;S:UL=15;S:NV=6000;S:DL=4000;

S:D1=2156;S:D2=3000;

S:DE=10;S:PL=3;S:RC=2;S:NT=1.

如下与客户端302相关联的示例性加载定时原始数据:

20XX-05-30T08:02:12.304Z,ClientLoadTimeTestBox,CalculatedClientLoadTime,

S:ts=20XX-05-30T08:02:16.20XX727Z;S:UC=411e478fdfef403c9a28c1c3ffaa0317;

S:ip=<PII>IPAddress</PII>;S:tg=la3ba9c6-00d3-4c2e-9862-f08a05allflf;

S:PLT=7000;S:RDT=4000;S:RT=18;S:DN=0;S:CT=0;S:RQ=1188;S:RS=2;S:SDN=0;S:SCT=10;S:SRQ=1800;

S:SRS=300;S:R1DN=0;S:R1CT=200;S:R1ST=100;S:R1RQ=50;S:R1RS=10;S:R2DN=0;S:R2CT=8;S:R2ST=0;

S:R2RQ=50;S:R2RS=200;S:brn=MSIE;S:brv=10;

以及如下与客户端304相关联的加载定时原始数据:

20XX--05-

30T08:02:12.304Z,ClientLoadTimeTestBox,CalculatedClientLoadTime,

S:ts=20XX-05-30T08:03:16.20XX727Z;S:UC=412e478fdfef403c9a28c1c3ffaa0317;

S:ip=<PII>IPAddress</PII>;S:tg=la3ba9c6-00d3-4c2e-9862-f08a05allflf;S:PLT=8000;S:RT=18;S:DN=0;S:CT=0;S:RQ=1188;S:RS=2;S:SDN=100;S:SCT=50;S:SRQ=1600;

S:SRS=400;S:R1DN=0;S:R1CT=600;S:R1ST=300;S:R1RQ=90;S:R1RS=50;S:R2DN=0;S:R2CT=16;S:R2ST=0;

S:R2RQ=0;S:R2RS=400;S:brn=Chrome;S:brv=27.

使用示例性客户端数据,下表将来自通过承租者以及通过国家对用户性能数据进行聚合的聚合服务342的示例性输出示出如下。

样本承租者聚合

样本国家聚合

图4是描绘根据实施例用作提供性能诊断分析和/或问题纠正服务的一部分的示例性端到端过程400的操作的流程图。402处的过程400操作为使用在最终用户设备/系统上执行的客户端来收集性能数据。例如,在402处,诸如浏览器或其它应用和脚本代码(例如,JAVASCRIPT代码)之类的客户端从与使用在线服务或应用相关联的一个或多个服务器计算机收集以客户端为中心的性能数据和/或请求性能诊断分析服务。根据一个实施例的402处的过程400操作为收集包括导航定时、页面加载定时和/或用于指示延时或其它性能问题的其它参数的原始性能数据,作为对与在线服务或应用相关联的最终用户体验进行评估的一部分。

404处的过程400操作为向专用服务器计算机的日志文件提供原始性能数据。例如,404处的过程400包括使用在用户设备/系统上执行的浏览器来向一个或多个日志文件上载客户端IP地址和所收集的性能数据或某个部分。在406处,过程400操作为使用客户端IP地址和包括地理位置(例如,国家/州)、ISP和/或承租者GUID的映射目标来对记录的性能数据进行转换或映射。例如,406处的过程400可以被配置为:将记录的客户端数据映射到包括第一映射表(其针对记录的客户端数据定义IP地址到地理位置的映射)和第二映射表(其针对记录的客户端数据定义IP地址到ISP的映射)的多个映射表。

在408处,过程400操作为将通过承租者GUID、地理位置和/或ISP中的一个或多个形成群组的经转换的数据上载到一个或多个诊断服务数据库。410处的过程400操作为跨越一个或多个数据库执行聚合操作,以便生成在线服务或应用的延时和/或与性能相关的其它聚合。在一个实施例中,410处的过程400执行聚合操作以确定承租者级别延时、地理位置级别延时和/或ISP级别延时中的一个或多个延时。

412处的过程400使用关于聚合数据的一个或多个规则来执行故障区域分析,以便识别一个或多个故障区域或潜在的故障区域。例如,412处的过程400可以使用所配置的规则,部分基于跨越所有国家和/或ISP的趋势或基线比较来审查用户体验是糟糕、满意还是优良。在414处,过程400操作为使用故障区域信息作为采取任何校正或缓解行动的一部分。例如,414处的过程400可以使用故障区域分析信息来生成在线报告作为减少延时或其它与性能相关的问题的一部分,所述在线报告识别潜在网络和/或通信架构修改。虽然针对图4的示例性流描述了特定数量和次序的操作,但将领会的是:可以根据期望的实现方式来使用其它的数量、组合和/或次序。

例如,过程400可以部分地用于生成电子报告,所述电子报告允许观看在线电子邮件服务的不同网络度量,以识别出在第一位置的用户与相关联区域中的国家的其它用户相比在CDN上花费更长的时间。然后,检阅者可以跟进在第一位置的CDN提供商来解决该问题。另外,对第一位置的地理-ISP报告的检阅揭示出ISP的延时的差异,从而能够实现对可能联系以告知和解决该问题的较大ISP中的一个ISP的延时的增加的容易识别。

作为又一个示例,作为边缘服务器部署的一部分,过程400可以用于生成包括区域的下载时间的电子报告,以识别出特定区域的用户具有最大的下载时间,从而部署新的边缘服务器来降低用户网络的影响。更新的报告揭示了特定区域的延时的减少。作为减少识别延时的另一个示例,过程400可以生成电子报告,该电子报告允许特定承租者显示趋势视图并确定发生在最近几天的延时增加以及TCP连接时间增加了500ms。基于该报告,可以联系受影响的承租者以识别另一个位置的ISP对等互连的问题。

将领会的是:本文中描述的各个特征可以实现为包括硬件和软件组件的处理器驱动的环境的一部分。另外,虽然上文出于说明的目的描述了某些实施例和示例,但其它实施例是包括的和可用的,并且所描述的实施例不应用来限制权利要求。适当的编程单元包括用于指导计算机系统或设备执行过程或方法的步骤的任何单元,包括例如:包括耦接到计算机存储器的处理单元和运算逻辑电路的系统,这些系统具有在计算机存储器中进行存储的能力,计算机存储器包括被配置用于存储数据和程序指令或代码的电子电路。

示例性制品包括可与任何适当的处理系统一起使用的计算机程序产品。虽然上文描述了特定数量和类型的组件,但将领会的是:根据各个实施例可以包括其它数量和/或类型和/或配置。因此,根据期望的实现方式,组件功能可进一步划分和/或与其它组件功能组合。如本文所使用的术语计算机可读介质可以包括计算机存储介质或计算机存储装置。根据一实施例的计算机存储装置对操作为执行某种功能的程序代码或指令进行存储。计算机存储介质可以包括以任何方法或技术实现的、用于存储诸如计算机可读指令、数据结构、程序模块等的信息的易失性和非易失性、可移动和不可移动介质。

系统存储器,可移动存储装置和不可移动存储装置都是计算机存储介质示例(即,存储器存储)。计算机存储介质可以包括但不限于:RAM、ROM、电可擦写只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能光盘(DVD)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁存储设备、或者可以用于存储信息且可由计算设备访问的任何其它介质。任何这样的计算机存储介质可以是设备或系统的一部分。通过举例而非限制的方式,通信介质可以包括诸如有线网络或直接线连接之类的有线介质,以及诸如声音、RF、红外线和其它无线介质之类的无线介质。

本文中描述的实施例和示例并不意图是限制性的,并且其它实施例是可用的。此外,上述组件可以实现为联网的、分布式和/或其它计算机实现的环境的一部分。这些组件可以经由有线通信网络、无线通信网络和/或通信网络的组合来进行通信。网络组件和/或组件之间的耦接可以包括任意类型、数量的网络和/或网络的组合以及相应的网络组件,这些网络包括但不限于:广域网(WAN)、局域网(LAN)、城域网(MAN)、专有网络、后端网络、蜂窝网络等。

客户端计算设备/系统和服务器可以是任意类型的基于处理器的设备或系统和/或它们的组合。另外,服务器功能可以包括许多组件,并且包括其它服务器。以单数形式描述的计算环境的组件可以包括这样的组件的多个实例。虽然某些实施例包括软件实现方式,但其不限于此,而是涵盖硬件或混合的硬件/软件解决方案。

本说明书中使用的术语(如组件、模块、系统、设备、云、网络和其它术语)通常描述包括硬件、软件、固件和/或其它项目的与计算机相关的操作环境。组件可以使用处理器可执行代码和/或其它代码的过程。示例性组件包括:应用、在应用上运行的服务器、和/或耦接到服务器用于接收通信项目的电子通信客户端。计算机资源可以包括诸如数字信号处理器、微处理器、多核处理器等的处理器和内存资源,以及诸如磁存储设备、光存储设备和/或其它存储设备、智能存储器、闪储器等的存储器组件。通信组件可以用于传送计算机可读信息,作为使用通信网络或网络(例如互联网)来发送、接收和/或呈现电子通信项目的一部分。还包括其它实施例和配置。

现在参照图5,下文提供了对在其中实现实施例的适当的计算环境的简要、概括描述。虽然是在结合各种类型的计算设备/系统上的操作系统上运行的程序模块执行的程序模块的一般性上下文中描述的,但本领域技术人员将认识到:本发明还可以结合其它类型的计算机设备/系统和程序模块来实现。

通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。此外,本领域技术人员将领会:可以利用其它计算机系统配置来实践本发明,这些其它计算机系统配置包括:手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、微型计算机、大型计算机等。还可以在分布式计算环境中实践本发明,在所述分布式计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备二者中。

如图5中所示,计算机2包括能够执行包括电子邮件应用或者包括电子邮件功能的其它应用的一个或多个应用程序的通用服务器、台式计算机、膝上型计算机、手持计算机或其它类型的计算机。计算机2包括至少一个中央处理单元8(“CPU”)、包括随机存取存储器18(“RAM”)和只读存储器(“ROM”)20的系统存储器12、以及将存储器耦接到CPU8的系统总线10。包含有助于在计算机内的元件之间传输信息(如在启动期间)的基本例程的基本输入/输出系统通常存储在ROM20中。计算机2还包括用于存储操作系统24、应用程序及其它程序模块/资源26的大容量存储设备14。

大容量存储设备14通过连接到总线10的大容量存储控制器(未示出)连接到CPU8。大容量存储设备14及其相关联的计算机可读介质为计算机2提供非易失性存储。尽管本文中包含的计算机可读介质的描述指的是诸如硬盘驱动器或CD-ROM驱动器之类的大容量存储设备,但本领域技术人员应当领会的是:计算机可读介质可以是可由计算机2访问或使用的任何可用介质。

根据各个实施例,计算机2可以使用通过网络4(例如,本地网络、互联网等)到远程计算机的逻辑连接而操作在联网环境中。计算机2可以通过连接到总线10的网络接口单元16连接到网络4。应当领会的是:网络接口单元16还可以用于连接其它类型的网络和远程计算系统。计算机还可以包括用于接收和处理来自包括键盘、鼠标等(未示出)的多个其它设备的输入的输入/输出控制器22。类似地,输入/输出控制器22可以向显示屏幕、打印机或其它类型的输出设备提供输出。

如上文简要提到的,多个程序模块和数据文件可以被存储在计算机2的大容量存储设备14和RAM18中,这包括适于控制联网的个人计算机的操作的操作系统24,如来自华盛顿州雷蒙德市的微软公司(MICROSOFTCORPORATION)的视窗(WINDOWS)操作系统。大容量存储设备14和RAM18还可以存储一个或多个程序模块。具体而言,大容量存储设备14和RAM18可以存储应用程序,如文字处理、电子表格、绘图、电子邮件和其它应用和/或程序模块等。

图6A-6B示出了可以用来实践实施例的移动计算设备600,例如,移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图6A,示出了用于实现实施例的移动计算设备600的一个实施例。在基本配置中,移动计算设备600是具有输入元件和输出元件二者的手持计算机。

移动计算设备600通常包括显示器605和允许用户向移动计算设备600输入信息的一个或多个输入按钮610。移动计算设备600的显示器605还可用作输入设备(例如,触摸屏显示器)。如果包括,那么可选的侧输入元件615允许进一步的用户输入。侧输入元件615可以是旋转开关、按钮、或任何其它类型的手动输入元件。在替代实施例中,移动计算设备600可以并入更多或更少的输入元件。例如,在一些实施例中,显示器605可以不是触摸屏。在又一个替代实施例中,移动计算设备600是便携式电话系统,如蜂窝电话。

移动计算设备600还可以包括可选按键板635。可选按键板635可以是物理按键板或在触摸屏显示器上生成的“软”按键板。在各个实施例中,输出元件包括:用于展示图形用户接口(GUI)的显示器605、视觉指示器620(例如,发光二极管)、和/或音频换能器625(例如,扬声器)。在一些实施例中,移动计算设备600并入用于向用户提供触觉反馈的振动换能器。在又一个实施例中,移动计算设备600并入输入和/或输出端口,如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)、以及用于向外部设备发送信号或从外部设备接收信号的视频输出(例如,HDMI端口)。

图6B是示出移动计算设备的一个实施例的架构的框图。也就是说,移动计算设备600可以并入系统(即,架构)602来实现一些实施例。在一个实施例中,系统602被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传送客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些实施例中,系统602被集成为计算设备,如集成的个人数字助理(PDA)和无线电话。

一个或多个应用程序666(包括笔记程序)可以被载入存储器662中,并在操作系统664上运行或与操作系统664相关联地运行。应用程序的示例包括:电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传送程序等。系统602还包括存储器662内的非易失性存储区域668。非易失性存储区域668可以用于存储如果系统602掉电不应当丢失的持久信息。

应用程序666可以使用和存储非易失性存储区域668中的信息,如由电子邮件应用使用的电子邮件或其它消息等。同步应用(未示出)也位于系统602上,并且被编程为与驻留在主机计算机上的相应同步应用进行交互,以使得存储在非易失性存储区域668中的信息与存储在主机计算机处的相应信息保持同步。如应当领会的:其它应用可以被载入存储器662中并在移动计算设备600上运行。

系统602具有电源670,其可以被实现为一个或多个电池。电源670还可以包括外部电源,如AC适配器、或补充电池或对电池进行再充电的供电底座(powereddockingcradle)。系统602还可以包括执行发送和接收射频通信的功能的无线单元672。无线单元672经由通信载波或服务提供商来促进系统602与“外部世界”之间的无线连接。去往和来自无线单元672的传输在操作系统664的控制下进行。换句话说,由无线单元672接收的通信可以经由操作系统664传播到应用程序666,反之亦然。

视觉指示器620可以用于提供视觉通知,和/或音频接口674可以用于经由音频换能器625产生可听通知。在示出的实施例中,视觉指示器620是发光二极管(LED),而音频换能器625是扬声器。这些设备可以直接耦接到电源670,以便当被激活时,它们在由通知机制指定的一段时间期间保持开启,即使处理器660和其它组件可能被关闭以节省电池功率。可以将LED编程为一直处于开启直到用户采取行动来指示设备的上电状态。

音频接口674用于向用户提供可听信号以及从用户接收可听信号。例如,除了耦接到音频换能器625之外,音频接口674还可以耦接到麦克风来接收可听输入,例如以促进电话交谈。根据实施例,如下文将描述的,麦克风还可以用作音频传感器以促进通知的控制。系统602还可以包括视频接口676,其启用板上摄像头630的操作以记录静止图像、视频流等。实现系统602的移动计算设备600可以具有另外的特征或功能。例如,移动计算设备600还可以包括另外的数据存储设备(可移动和/或不可移动的),如磁盘、光盘,或磁带。这些另外的存储装置在图6B中由非易失性存储区域668示出。

由移动计算设备600生成或捕捉、并经由系统602存储的数据/信息可以如上文所描述地被本地存储在移动计算设备600上,或者数据可以被存储在可以由设备经由无线单元672或经由移动计算设备600与和移动计算设备600相关联的单独的计算设备(例如,分布式计算网络(如互联网)中的服务器计算机)之间的有线连接访问的任意数量的存储介质上。应当领会的是:可以经由无线单元672经由移动计算设备600或经由分布式计算网络来访问这样的数据/信息。类似地,这样的数据/信息可以根据公知的数据/信息传输和存储手段(包括电子邮件和协作式数据/信息共享系统)容易地在计算设备之间传输以便存储和使用。

图7示出了用于实现延时识别和纠正特征的系统架构的一个实施例。数据处理信息可以被存储在不同的通信信道或存储类型中。例如,可以使用目录服务722、门户网站724、邮箱服务726、即时消息传送存储728和/或社交网站730来存储/访问各种信息。服务器720可提供另外的延时分析和其它特征。作为一个示例,服务器720可以提供用于通过网络715(如互联网或其它网络)使用多个数据中心的分区来分发出站电子邮件的规则。通过举例的方式,客户端计算设备可以被实现为:通用计算设备702并体现为个人计算机、平板计算设备704、和/或移动计算设备706(例如,智能电话)。这些客户端中的任意客户端可以使用来自存储装置716的内容。

例如,参考方法、系统、计算机程序产品等的框图和/或操作图示在上文中描述了实施例。框中注明的功能/动作可以任何流程图中示出的次序以外的次序发生。例如,显示为相继的的两个框实际上可以基本并行执行,或者这些框有时可以相反的次序执行,这取决于所涉及的功能/动作。

本申请中提供的一个或多个实施例的描述和图示并不旨在以任何方式来限制或约束所主张的发明的范围。本申请中提供的实施例、示例和细节被视为足以传达所有权,并使得他人能够制造和使用所主张的发明的最佳模式。所主张的发明不应被解释为受限于本申请中所提供的任何实施例、示例或细节。不管是否以组合的方式或单独示出及描述的,意图选择性地包括或省略各个特征(结构性和方法性的)以产生具有特征的特定集合的实施例。已经提供了本申请的描述和说明,本领域技术人员可以设想不脱离所主张的发明的更广泛范围的、落入本申请中体现的总的发明构思的更广泛的方面的精神内的变型、修改和替代实施例。

应当领会的是:各个实施例可以实现为(1)计算系统上运行的一系列计算机实现的动作或程序模块和/或(2)计算系统内的互连的机器逻辑电路或电路模块。实现方式是取决于实现本发明的计算系统的性能要求的选择的问题。因此,包括相关算法的逻辑操作可以不同地称为操作、结构设备、动作或模块。本领域技术人员将认识到的是:可以利用软件、固件、专用数字逻辑单元以及它们的任意组合来实现这些操作、结构设备、动作和模块,而不脱离如本文中阐述的权利要求所记载的本发明的精神和范围。

尽管已经结合各个示例性实施例对本发明进行了描述,但本领域普通技术人员将理解:可以在所附权利要求的范围内进行许多修改。因此,并不意图使本发明的范围以任何方式受限于上面的描述,而是完全通过参考所附权利要求来确定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1