CN113557499A - 动态监控基于云的应用服务 - Google Patents
动态监控基于云的应用服务 Download PDFInfo
- Publication number
- CN113557499A CN113557499A CN202080019950.2A CN202080019950A CN113557499A CN 113557499 A CN113557499 A CN 113557499A CN 202080019950 A CN202080019950 A CN 202080019950A CN 113557499 A CN113557499 A CN 113557499A
- Authority
- CN
- China
- Prior art keywords
- telemetry
- time series
- monitor
- cloud
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000004458 analytical method Methods 0.000 claims abstract description 17
- 238000003860 storage Methods 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 17
- 238000010801 machine learning Methods 0.000 claims description 13
- 230000003068 static effect Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 238000007418 data mining Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
在本公开的非限制性示例中,提供了用于监控来自基于云的应用服务的遥测数据的系统、方法和设备。可以分析针对基于云的应用服务的多个操作的遥测数据,其中,该分析包括将第一时间序列与第二时间序列进行比较,并且其中,来自第二时间序列的数据与在时间上相比于与第一时间序列相关的操作的执行在前执行的操作相关。可以基于该分析,识别基于云的应用服务中的一个或多个操作变化,并且可以基于识别的一个或多个操作变化,动态配置至少一个遥测监控器。
Description
背景技术
随着计算越来越多地向云移动,支持大量用户和用户使用的基于云的应用的系统正不断被修改。基于云的系统的基础架构需要持续监控才能保持,更不用说更新和添加额外的特征和功能了。随着新软件构建通过开发环不断添加到基于云的系统的基础架构中,并最终添加到生产环境中,修改现有监控器和创建新监控器以跟上时刻变化的构建变得越来越资源密集和困难。
本文公开的本技术的方面正是针对该一般技术环境而被考虑的。此外,虽然已经讨论了一般环境,但是应当理解,本文描述的示例不应限于背景技术中标识的一般环境。
发明内容
提供本概述以用简化形式介绍对将在下面的详细描述部分中进一步描述的构思的选择。本概述无意标识要求保护的主题的关键特征或基本特征,也无意用作确定要求保护的主题的范围的帮助。示例的其他方面、特征和/或优点将部分地在随后的描述中阐述,并且部分地将通过描述而显而易见或者可以通过本公开的实践而获知。
本公开的非限制性示例描述了用于自动识别基于云的应用服务中的软件修改并在那些环境中动态配置操作监控器的系统、方法和设备。基于对来自与基于云的应用服务相关联或集成在基于云的应用服务中的遥测服务的时间序列信息的分析,可以自动生成、修改和/或删除监控器。遥测服务可以从由基于云的应用服务的用户执行的操作接收操作数据,包括操作日志。可以通过对软件更新前的时间序列数据与软件更新后的时间序列数据进行自动比较来确定应当生成、修改和/或删除监控器。当新监控器被动态生成和/或修改时,动态监控器引擎可以确定针对每个相应操作类型的适当的监控技术、基线操作范围和/或用于标记操作的阈值以供进一步审查。动态监控器引擎可以在做出这些确定和设置这些范围和阈值时应用一种或多种机器学习模型。动态监控器引擎可以在基于云的应用服务可用的处理资源的上下文中应用这些模型,从而根据系统中可用的资源为每个监控器分配操作分析带宽。
附图说明
参考以下附图描述非限制性和非穷尽性示例:
图1是示出了用于动态配置针对基于云的应用服务的监控器的示例分布式计算环境的示意图。
图2示出了用于动态配置针对基于云的应用服务的监控器的基本流程图。
图3示出了基于云的应用服务的操作数据的图形显示,其中动态配置的监控器应用于服务质量度量。
图4示出了基于云的应用服务的操作数据的图形显示,其中动态配置的监控器应用于总体意外失败度量(total unexpected failure metric)。
图5是用于动态配置针对基于云的应用服务的监控器的示例性方法。
图6和图7是可以用于实践本公开的方面的移动计算设备的简化图。
图8是示出了可以用于实践本公开的方面的计算设备的示例物理组件的框图。
图9是其中可以实践本公开的方面的分布式计算系统的简化框图。
具体实施方式
将参考附图详细描述各种实施例,其中,贯穿若干视图,相同的附图标记表示相同的部件和组件。对各种实施例的引用不限制所附权利要求的范围。此外,本说明书中阐述的任何示例不旨在限制并且仅阐述所附权利要求的许多可能实施例中的一些实施例。
以上描述的各种实施例和示例仅通过说明的方式提供,并且不应当被解释为限制所附权利要求。本领域技术人员将容易地认识到可以做出各种修改和变化而不遵循本文所示和描述的示例实施例和应用并且不脱离权利要求的真实精神和范围。
本公开的示例提供用于动态创建针对在基于云的应用服务中实现的软件的监控器的系统、方法和设备。在示例中,监控器可以提供用于识别所实现软件中的代码回归和/或其他服务功能损失(例如,服务器问题、网络问题等)的机制。例如,代码回归可以被包括在新软件包、更新和/或补丁中。在一些示例中,代码回归可以与一个或多个基于云的应用相关联,基于云的应用例如基于云的文档处理应用、电子表格应用、日历应用、演示应用、存储应用、视频应用、实时电子消息传送应用、语音消息传送应用、视频通信应用和/或电子邮件应用。
在一些示例中,监控器可以分析与关于一个或多个基于云的应用的操作失败相关联的信号。例如,当针对基于云的应用的操作失败,和/或针对基于云的应用的操作在其被执行时导致应用崩溃或发生故障时,指示存在操作事件或操作失败的信号可能会被报告给监控器和/或与监控器相关联的遥测服务。监控器可以接收和分析与由基于云的应用服务托管的应用的一个或多个操作的执行相关联的数据。例如,监控器可以分析与“保存”操作、“发送”操作、“新建文档”操作、“复制”操作、“粘贴”操作以及可以由基于云的应用执行的任何其他操作相关联的数据。
遥测服务可以接收和存储与已经由基于云的服务托管的应用执行的操作相关联的信息。遥测服务可以存储关于每个执行的操作的信息,包括:每个操作被执行的时间;执行的每个操作的识别码;每个操作完成或超时所用的持续时间;每个操作是成功还是未成功;关于监控器是否正在接收与每个操作相关联的数据的指示;与每个操作相关联的每个监控器的名称;执行每个操作的服务器或服务器群等。因此,遥测服务可以维护操作数据的连续时间序列,该操作数据包括成功执行的操作的数值和未成功执行的操作的数值。监控器可以利用此信息来标记可能与代码回归和/或诸如网络和/或硬件问题之类的其他问题相关的操作。
根据示例,当软件更新被推送到基于云的应用服务(例如,由服务托管的一个或多个应用被修改)时,与基于云的应用服务相关联的遥测分析及比较引擎可以将就在软件更新前的一持续时间内的一个或多个操作数据时间序列与对应于软件更新已经被实施到服务之后的时间的时间序列进行比较。遥测分析及比较引擎可以检查每个时间序列的操作日志,并将它们相互比较以确定哪些操作存在于软件更新前时间序列中以及哪些操作存在于软件更新后时间序列中。以这种方式,可以确定与软件更新前时间序列相比,软件更新后时间序列中的哪些操作已经被添加、修改和/或删除。对于已经经由软件更新而添加的任何操作,动态监控器引擎可以生成用于标记与那些新添加的操作相关联的潜在问题的新监控器。对于已经经由软件更新而修改的任何操作,动态监控器引擎可以修改用于标记与那些修改的操作相关联的潜在问题的现有监控器。对于已经经由软件更新而删除的任何操作,动态监控器引擎可以删除存在于软件更新前时间序列中的每个对应监控器。
在动态生成新监控器和修改现有监控器时,动态监控器引擎可以分析与正在针对其生成和修改监控器的操作相关联的时间序列操作数据。例如,当针对新操作的新监控器正在被生成时,动态监控器引擎可以分析一持续时间内的包括该新操作的操作日志的操作数据。也就是说,动态监控器可以分析操作的至少一个时间序列。动态监控器可以利用一个或多个机器学习模型来确定可以由监控器利用的基线。基线可以与随时间成功或未成功执行的操作的数量、随时间成功执行的操作的百分比和/或在设定的时间量内完成每个操作所花费的持续时间(即,延时)相关。动态监控器引擎可以利用时间序列数据来识别那些度量中的一个或多个度量的标准化范围。例如,动态监控器引擎可以确定应当针对第一操作建立每五分钟0-1000次意外失败的基线;应当建立在50毫秒到150毫秒之间完成操作的基线;和/或应当针对操作建立90-100%成功执行的操作请求的基线。这些只是示例,应当理解的是,应用于不同数据集的各种机器学习模型可以动态建立不同的标准化基线。此外,建立的每个基线可以是动态的或静态的。也就是说,对于动态基线,基线可能会基于各种因素而变化,包括一天中的时间、一周中的哪一天、月份和其他上下文数据。替代地,静态基线可以保持不变,而不管与其关联的上下文数据如何。
在一些示例中,在生成和/或修改监控器时,动态监控器引擎可以确定基线之外的阈值以标记操作以供进一步分析和/或审查。在其他示例中,可以手动设置阈值。例如,可以针对每X分钟接收的操作失败的数量超过每X分钟接收的操作失败的基线数量而设置阈值。在另一个示例中,可以针对每X分钟的操作成功百分比低于操作必须低于以便监控器标记该操作的基线百分比的下限而设置阈值。在又一个示例中,可以针对延时度量而设置阈值,使得必须满足超过上基线延时的特定持续时间,以便监控器标记该操作的操作。在附加示例中,除非针对操作的时间序列超过两个或更多个阈值(例如,延时阈值、未成功操作阈值和/或成功百分比阈值中的两个或更多个阈值),否则可以不标记该操作。
本文描述的系统、方法和设备提供了用于检测影响基于云的应用服务中的功能的代码回归和问题的技术优点。所描述的机制的动态和自动化性质降低了与准确检测大型的基于云的应用服务的软件构建中的代码回归相关联的存储器和处理成本(CPU周期)。此外,显著降低了创建、修改和/或删除针对此类服务的监控器所需的时间和人力资源。所描述的机制为基于云的服务提供了一种即时动态地自动生成、修改和删除操作监控器的方式,使得当新软件更新被推出到那些服务时,可以针对代码回归而立即监控操作,而无需占用人类开发人员的时间和资源。即使有强大的开发人员池可供利用,如果没有当前描述的机制,也很难甚至不可能针对在大型基于云的应用服务中不断变化的软件而保持监控器的目前状态。所描述的机制的动态特性还为每个监控器提供了如下方式:在确定针对每个操作应当分析多少时间序列、每个分析的时间序列应当多长、应当并且可以基于系统的约束监控多少操作以及应当应用什么基线和阈值来标记每个操作以供进一步审查(例如,如果可用资源较少,则基线和/或阈值可能更慷慨)时,将系统可用的处理资源考虑在内。
图1是示出用于动态配置针对基于云的应用服务的监控器的示例分布式计算环境100的示意图。分布式计算环境100包括服务修改子环境101、网络及处理子环境136和动态监控器子环境130。网络及处理子环境136包括网络140,分布式计算环境100中的任何计算设备可以经由网络140互相通信;服务器计算设备138;和时间序列数据/事件日志数据存储装置142。
监控来自一个或多个基于云的应用的操作数据的监控服务可以驻留在网络及处理子环境136中的一个或多个计算设备上,并且监控服务可以从遥测服务接收操作数据。在一些示例中,监控服务和遥测服务可以是不同的服务。在其他示例中,监控服务和遥测服务可以是相同的服务。遥测服务可以接收操作数据(例如,操作成功计数、操作失败计数、操作延时数据等),这些数据可以由监控服务的一个或多个监控器使用。例如,一个或多个基于云的应用可以向遥测服务报告操作错误,并且监控服务的监控器可以确定与一个或多个基于云的应用相关联的服务质量下降是否与包括在新软件构建、服务器问题和/或网络问题中的新的或修改的操作中的代码回归相对应。在一些示例中,当操作成功和错误发生时,它们可以由基于云的应用自动报告给遥测数据库。在其他示例中,可能存在选择加入系统,使得至少在生产环境中,用户必须选择加入以允许操作数据被自动报告给遥测数据库。
服务修改子环境101包括应用开发子环境128和应用子环境102。在应用开发环境128中有三个开发团队(尽管可能会更多或更少)。团队A 132负责创建、修改和/或维护应用A 104的软件和软件更新。团队B 134负责创建、修改和/或维护应用B 112的软件和软件更新。团队C 136负责创建、修改和/或维护应用C 120的软件和软件更新。在这个示例中,每个开发团队已经推出了针对他们各自的应用的软件更新,这通过软件更新127示出,软件更新127经由在网络及处理子环境136中运行的基于云的应用服务被推送到那些各自的应用。
在所示示例中,在实施软件更新127之前的应用A 104的先前构建包括操作1 106、操作2 108和操作3 110。操作3 110用围绕其的虚线示出,以说明它已经经由软件更新127从应用A 104中移除。在实施软件更新127之前的应用B 112的先前构建包括操作4 114和操作5 116。已经经由实施软件更新127将操作6 118添加到应用B 112。在实施软件更新127之前的应用C 120包括操作7 122、操作8 124和操作9 126。操作9 126用围绕其的虚线示出,以说明它已经经由实施软件更新127从先前版本进行了修改。
在网络及处理子环境中运行的遥测服务可以将与基于云的应用服务相关联的操作的时间序列数据和事件日志存储在时间序列数据/事件日志数据库136中。例如,遥测服务可以接收与一个或多个基于云的应用相关联的多个操作的操作数据,并且除了信息被接收的时间和/或每个相应操作事件发生的时间之外,还存储该信息。与基于云的应用服务相关联的一个或多个监控器可以分析来自遥测服务的操作时间序列数据,以确定代码回归是否存在于由基于云的应用服务托管的一个或多个应用的软件中。
在动态监控器子环境130中,旧监控器132与在实施软件更新127之前正在监控基于云的应用服务的遥测数据的每个监控器相对应。也就是说,监控器M1 106*监控应用A104的操作1 106的遥测数据;监控器M2 108*监控应用A 104的操作2 108的遥测数据;监控器M3 110*监控应用A 104的操作3 110的遥测数据;监控器M4 114*监控应用B 112的操作4114的遥测数据;监控器M5 116*监控应用B 112的操作5 116的遥测数据;监控器M7 122*监控应用C 120的操作7 122的遥测数据;操作M8 122*监控应用C的操作8 124的遥测数据;并且操作M9 126*监控应用C的操作9 126的遥测数据。
与遥测服务和/或监控服务相关联的遥测分析及比较引擎可以分析来自在实施软件更新127之前的时间序列中发生的操作事件的时间序列数据和事件日志,并将该数据与来自在实施软件更新127之后发生的操作事件的时间序列数据和事件日志进行比较。时间序列数据和/或事件日志可以包括与基于云的应用服务相关地执行的每个操作的名称,关于每个操作事件是成功还是未成功的指示,每个操作完成和/或超时所用的持续时间,对是否存在用于监控每个操作的监控器的指定,和/或如果存在这样的监控器则对正在监控每个操作的特定监控器的指定。在比较来自软件更新前时间序列和软件更新后时间序列的时间序列数据和事件日志时,遥测分析及比较引擎可以确定哪些操作已经通过实施软件更新127而被删除、添加和/或修改。另外,遥测分析及比较引擎可以基于时间序列比较来确定软件更新后时间序列中的哪些操作具有现有监控器,软件更新后时间序列中的哪些操作需要基于经由实施软件更新127修改的操作而被更新,软件更新后中的哪些操作需要为它们创建新监控器,因为它们已经经由实施软件更新127而被添加,和/或是否需要删除监控器以及删除哪些监控器,因为操作已经经由实施软件更新127而被删除。
一旦确定了哪些操作已经经由软件更新127而被修改、删除和/或添加,动态监控器引擎就可以修改一个或多个现有监控器、删除一个或多个现有监控器和/或生成一个或多个新监控器。也就是说,对于经由软件更新127删除的、存在针对其的监控器的每个操作,动态监控器引擎可以删除该监控器;对于经由软件更新127添加的每个新操作,动态监控器引擎可以生成新监控器;并且对于经由软件更新127修改的、存在针对其的监控器的每个操作,动态监控器引擎可以修改相应的监控器。
在修改和/或生成新监控器时,动态监控器引擎可以将一个或多个机器学习模型(例如,霍尔特-温特(Holt Winters)、主成分分析等)应用于遥测数据集,以确定操作成功或失败级别和/或计数的一个或多个基线,和/或操作执行延时的基线。例如,一个或多个机器学习模型可以应用于操作数据的一个或多个软件更新后时间序列,并确定来自该时间序列的成功、错误和/或延时数据点落入的基线。在一些示例中,基线可以是动态的,因为它基于一个或多个因素(例如,一天中的时间、日期、月份、上下文等)而变化。在其他示例中,基线可以是静态的,因为无论与其相关联的因素如何,它都不会变化。例如,可以为操作失败计数和/或操作失败百分比生成动态基线,其中操作失败的数量和/或操作失败的百分比在白天和/或晚上的各种时间期间增加。替代地,可以为操作失败计数和/或操作失败百分比生成静态基线,其中操作失败的数量和/或百分比在一天的过程中保持相对静态。
一旦为操作确定了基线,就可以识别该基线之外的阈值以标记超过该阈值的时间序列数据。例如,操作的监控器可以识别基线失败数量之外的操作失败的阈值数量,在阈值持续时间(即,“时间窗口”)内时间序列必须超过该操作失败的阈值数量,以便监控器将时间序列标记为可能与代码回归相关或以其他方式存在潜在问题。在另一个示例中,操作的监控器可以识别基线失败百分比之外的操作失败的阈值百分比,在阈值持续时间内时间序列必须超过该操作失败的阈值百分比以便监控器将时间序列标记为可能与代码回归相关或以其他方式存在潜在问题。在另一个示例中,操作的监控器可以识别基线延时持续时间之外的阈值持续时间,时间序列的操作必须超过该阈值持续时间,以便监控器将时间序列标记为可能与代码回归相关或以其他方式存在潜在问题。可以基于一个或多个机器学习模型自动确定阈值,和/或可以手动选择阈值。与基线一样,阈值可以是动态的或静态的。在一些示例中,阈值可以被设置为零(即,高于或低于基线的任何读数都可能导致操作标记)。
本文关于图3和图4提供了关于基线和阈值生成及其应用的附加信息。
在动态监控器子环境130中,新监控器134与对于软件更新127的合并后操作而存在的监控器相对应。具体地,在监控器Ml 106*、M2 108*、M4 114*、M5 116*、M7 122*和M8124*保留在软件更新127后,因为它们的相应操作没有被修改或删除的同时,监控器M3110*已经被删除(如其周围的虚线所示),因为它的相应操作(操作3 110)已经经由软件更新127而被删除,监控器M9 126*已经被修改(如其周围的点线所示),因为它的相应操作(操作9 126)已经经由软件更新127而被动态修改,并且监控器M6 118*已经由动态监控器引擎动态生成,因为它的相应操作(操作6 118)已经经由软件更新127添加到应用B 112。
图2示出了用于动态配置针对基于云的应用服务的监控器的基本流程图200。流程图200包括应用开发子环境228和软件更新227。应用子环境228包括三个开发团队(团队A、团队B和团队C),它们都是创建和更新针对基于云的应用服务的软件的软件开发团队。在此示例中,团队已经推出了一个新软件更新(软件更新227),该更新正应用于基于云的应用服务。软件更新已经应用于一个或多个基于云的应用,并且软件更新之前和之后的应用的时间序列数据已经被存储在时间序列数据/事件日志数据库202中。
日志数据挖掘单元204包括对来自一个或多个软件更新前时间序列和一个或多个软件更新后时间序列的操作日志的分析和比较。比较引擎可以识别软件更新前在基于云的应用服务和/或遥测服务中存在哪些操作和相应的监控器,并将那些操作和监控器与软件更新后在基于云的应用服务和/或遥测服务中存在的操作和监控器进行比较。
日志数据挖掘的结果通过比较结果单元205示出。比较结果单元205包括旧的操作206(即,在软件更新前存在和/或在软件更新后仍然存在于先前的软件构建的操作)、新操作208(即,已经经由软件更新227添加的操作)和修改的操作210(即,在软件更新之前存在并且已经经由软件更新227的合并而被修改的操作)。
新监控器生成单元212示出了新监控器的生成,这些新监控器是基于软件更新227的实施,经由将机器学习模型应用于对于基于云的应用服务来说是新的操作的时间序列数据来动态创建的。新监控器生成单元212还示出了现有监控器的删除,这些现有监控器是由于基于经由软件更新227对它们的移除而从基于云的应用服务中删除操作而不再有用的。另外,新监控器生成单元212示出了基于相应操作而被修改以准确标记代码回归的现有监控器的修改,所述相应操作已经经由软件更新227而被修改。
图3示出了基于云的应用服务的操作数据的图形显示302,其中动态配置的监控器应用于服务质量度量。与图形显示302相对应的数据可以与接收和存储基于针对云的应用服务的操作事件数据和操作事件日志的遥测服务相关联。遥测服务可以保存由托管在该服务上的基于云的应用的用户已经发起的每个操作的日志。这些日志可以包括发起的每个操作的识别码,每个发起的操作被成功执行还是未成功执行,每个操作完成或超时所用的持续时间,执行与每个操作关联的每个请求的服务器或服务器群的识别码,关于监控器是否与每个发起的操作相关联的指示,和/或与每个发起的操作相关联的每个监控器的识别码。
遥测服务可以获取其收集/接收的原始操作事件数据并生成该数据的一个或多个图,例如图形显示302上所示的图。图3中的图是(针对基于云的应用服务的)服务质量图,其示出了在一持续时间内(在X轴上)已经成功执行的特定操作类型的发起操作的百分比(在Y轴上)。在此示例中,动态监控器引擎已经自动生成了针对图中表示的特定操作的新监控器。在这样做时,动态监控器引擎已经确定并设置了与特定操作通常落入的、针对该特定操作的成功操作范围相对应的基线百分比304。通过基线百分比304的从85%到100%的对角线矩形示出的该范围被显示为在图中包括的持续时间内是静态的。然而,应当理解,基线可以是动态的或静态的。例如,所示出的基线可以与针对特定操作的白天标准化范围相关,并且该基线可以针对特定操作的夜间标准化范围而变化。
在此示例中,阈值308已经通过机器学习机制或与遥测服务的手动交互而被识别和设置。阈值308与服务质量必须下降到的基线之外的百分比相对应,以便遥测服务将特定操作标记为潜在问题(例如,特定操作可能与代码回归相关)。在此示例中,阈值308已经被设置为77.5%(即,低于基线百分比304的下限7.5%)。因此,在此示例中,针对该特定操作的监控器将对图的低于阈值308的部分306进行标记。尽管已经由于对图的低于阈值308的部分306的识别而标记了特定操作,但是可以提供时间序列数据和/或围绕该时间序列数据的时间序列数据以用于所标记的问题的分析。
图4示出了针对基于云的应用服务的操作数据的图形显示402,其中动态配置的监控器应用于总体意外失败度量。与图形显示402相对应的数据可以与接收和存储针对基于云的应用服务的操作事件数据和操作事件日志的遥测服务相关联。遥测服务可以保存由托管在该服务上的基于云的应用的用户已经发起的每个操作的日志。这些日志可以包括发起的每个操作的识别码,每个发起的操作被成功执行还是未成功执行,每个操作完成或超时所用的持续时间,执行与每个操作关联的每个请求的服务器或服务器群的识别码,关于监控器是否与每个发起的操作相关联的指示,和/或与每个发起的操作相关联的每个监控器的识别码。
遥测服务可以获取它收集/接收的原始操作事件数据并生成该数据的一个或多个图,例如图形显示402上所示的图。图4中的图是(针对基于云的应用服务的)意外失败图,其示出了在一持续时间内(在X轴上)已经导致意外失败的特定操作类型的发起操作的数量(在Y轴上)。在此示例中,动态监控器引擎已经自动生成了针对图中表示的特定操作的新监控器。在这样做时,动态监控器引擎已经确定并设置了针对该特定操作的意外失败的基线数量范围404。这种数字的分布与特定操作通常落入的、针对该特定操作的意外失败范围相对应。通过图形显示402上的对角线矩形示出的该范围已被设置为针对该特定操作的0个意外失败到针对该特定操作的1750个意外失败。该范围可以是基于将一个或多个机器学习模型应用于针对该特定操作的时间序列数据而已经被识别的。在此示例中,范围是静态范围;然而,应当理解,基线可以是动态的或静态的。例如,所示出的基线可以与针对特定操作的白天标准化范围相关,并且该基线可以针对特定操作的夜间标准化范围而变化(例如,与某些其他小时相比的,更多或更少的用户可能在特定小时期间使用该特定操作)。
在此示例中,阈值408已经通过将机器学习模型应用于针对特定操作的一个或多个时间序列或与遥测服务的手动交互而被识别和设置。阈值408与需要在时间序列的时间窗口中达到以便遥测服务将特定操作标记为潜在问题(例如,特定操作可能与代码回归相关)的、基线以上的总体意外失败的最小数量相对应。在此示例中,阈值408已经被设置为3000个意外失败(即,多于基线上限1250个意外错误)。因此,在此示例中,针对特定操作的监控器将对图的高于阈值408的部分406进行标记。尽管已经由于对图的高于阈值408的部分406的识别而标记了特定操作,但是可以提供时间序列数据和/或围绕该时间序列数据的时间序列数据以用于所标记问题的分析。
图5是用于动态配置针对基于云的应用服务的监控器的示例性方法500。方法500开始于开始操作并且流程移动到操作502。
在操作502处,分析针对基于云的应用服务的多个操作的遥测数据。该分析可以包括将第一时间序列与第二时间序列进行比较,其中来自第二时间序列的数据与在时间上相比于与第一时间序列相关的操作的执行在前执行的操作相关。每个分析的时间序列可以包括来自与基于云的应用服务相关联的操作的操作事件数据。该操作事件数据可以包括:发起、执行和/或完成的每个操作的识别码/名称;每个操作被发起、执行和/或完成的发生时间;是否存在针对发起、执行和/或完成的每个操作的监控器的指示;针对发起、执行和/或完成的每个操作而存在的每个监控器的识别码;每个操作完成和/或超时所用的持续时间;和/或尝试了执行每个操作的服务器或服务器群的识别码。在一些示例中,可以基于关于已经向基于云的应用服务提供了软件更新的指示来自动发起两个时间序列的比较。第二时间序列可以与在基于云的应用服务中并入软件更新之前的持续时间相对应,并且第一时间序列可以与在基于云的应用服务中并入软件更新之后的持续时间相对应。
流程从操作502继续到操作504,在操作504处,识别基于云的应用服务中的一个或多个操作变化。该识别基于在操作502处执行的时间序列比较。通过基于对基于云的应用服务的软件更新确定操作是否已经被添加、删除和/或修改来进行识别。例如,当软件更新被合并到基于云的应用服务中时,在软件更新之前由基于云的应用服务托管的一个或多个应用中包括的一个或多个操作可以基于该软件更新的合并而被修改、添加或删除。
流程从操作504继续到操作506,在操作506处,基于在操作502处识别的一个或多个操作变化来动态配置至少一个遥测监控器。如本文所述,可以通过动态监控器引擎和将一个或多个机器学习模型应用于时间序列数据来执行动态配置。动态配置可以包括选择适当的监控技术来检测与一个或多个操作变化相关联的每个新操作的失败模式。动态配置可以另外地或替代地包括自动定义针对与一个或多个操作变化相关联的每个新操作的基线失败率,和/或根据与一个或多个操作变化相关联的每个新操作的基线失败率来定义阈值失败率。在一些示例中,动态配置至少一个遥测监控器可以包括自动定义时间序列窗口。时间序列窗口可以包括在一持续时间中执行的操作,针对与一个或多个操作变化相关联的每个新操作的每个遥测监控器将监控该持续时间。动态监控器引擎可以将监控器配置为具有静态和/或动态基线和/或阈值。
在一些示例中,可以基于用于监控基于云的应用服务中的操作的可用带宽来自动确定用于生成的一个或多个新遥测监控器的数量。在附加示例中,可以基于用于监控基于云的应用服务中的操作的可用带宽来自动确定被监控的时间序列的数量和/或每个时间序列的持续时间。例如,遥测服务可用的处理资源可以规定在设定的持续时间内只能分析设定数量的时间序列。因此,当监控器被动态创建时,它们在该时间范围内处理的时间序列的数量可以被自动计算并内置到每个相应的监控器中。
流程从操作506移动到结束操作并且方法500结束。
图6和图7示出了可以用于实践本公开的实施例的移动计算设备600,例如移动电话、智能手机、可穿戴计算机、平板计算机、电子阅读器、膝上型计算机、AR兼容计算设备或VR计算设备。参考图6,示出了用于实现这些方面的移动计算设备600的一个方面。在基本配置中,移动计算设备600是具有输入单元和输出单元二者的手持计算机。移动计算设备600通常包括显示器605和允许用户将信息输入到移动计算设备600中的一个或多个输入按钮610。移动计算设备600的显示器605还可以用作输入设备(例如,触摸屏显示器)。如果包括,则可选的侧输入单元615允许进一步的用户输入。侧输入单元615可以是旋转开关、按钮或任何其他类型的手动输入单元。在替代方面,移动计算设备600可以并入更多或更少的输入单元。例如,在一些实施例中,显示器605可以不是触摸屏。在又一替代实施例中,移动计算设备600是便携式电话系统,例如蜂窝电话。移动计算设备600还可以包括可选的小键盘635。可选的小键盘635可以是物理小键盘或在触摸屏显示器上生成的“软”小键盘。在各种实施例中,输出单元包括用于示出图形用户界面(GUI)的显示器605、视觉指示器620(例如,发光二极管)和/或音频换能器625(例如,扬声器)。在一些方面,移动计算设备600并入了用于向用户提供触觉反馈的振动换能器。在又一方面,移动计算设备600并入了输入和/或输出端口,例如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口),以用于向外部设备发送信号或从外部设备接收信号。
图7是示出移动计算设备的一个方面的架构的框图。也就是说,移动计算设备700可以并入系统(例如,架构)702来实现一些方面。在一个实施例中,系统702被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些方面,系统702被集成为计算设备,例如集成个人数字助理(PDA)和无线电话。
一个或多个应用程序766可以被加载到存储器762中并且在操作系统864上运行或与操作系统864相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传送程序等。系统702还包括存储器762内的非易失性存储区域768。非易失性存储区域768可以用于存储在系统702断电时不应丢失的持久信息。应用程序766可以使用并存储非易失性存储区域768中的信息,例如电子邮件或由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统702上并且被编程为与驻留在主机上的相应同步应用交互以保持存储在非易失性存储区域768中的信息与存储在主机处的相应信息同步。应当理解,其他应用可以被加载到存储器762中并且在移动计算设备700上运行,包括用于提供和操作数字助理计算平台的指令。
系统702具有电源770,其可以被实现为一个或多个电池。电源770还可以包括外部电源,例如对电池进行补充或再充电的AC适配器或动力对接支架。
系统702还可以包括执行发送和接收射频通信的功能的无线接口层772。无线接口层772经由通信运营商或服务提供商促进系统702和“外界”之间的无线连接。去往和来自无线接口层772的传输在操作系统764的控制下进行。换言之,无线接口层772接收的通信可以经由操作系统764传播到应用程序766,反之亦然。
视觉指示器620可以用于提供视觉通知,和/或音频接口774可以用于经由音频换能器625产生听觉通知。在所示实施例中,视觉指示器620是发光二极管(LED),并且音频换能器625是扬声器。这些设备可以直接耦合到电源770,从而当被激活时,即使处理器760和其他组件可能关闭以节省电池电量,它们仍会在通知机制规定的持续时间内保持开启。LED可以被编程为无限期地保持点亮,直到用户采取行动来指示设备的通电状态为止。音频接口774用于向用户提供可听信号并从用户接收可听信号。例如,除了耦合到音频换能器625之外,音频接口774还可以耦合到麦克风以接收可听输入,例如促进电话交谈。根据本公开的实施例,,如下文将描述的,麦克风还可以用作音频传感器以促进通知的控制。系统702还可以包括视频接口776,其使机载相机630的操作能够记录静止图像、视频流等。
实现系统702的移动计算设备700可以具有附加特征或功能。例如,移动计算设备700还可以包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储装置在图7中通过非易失性存储区域768示出。
由移动计算设备700生成或捕获并经由系统702存储的数据/信息可以被本地存储在移动计算设备700上,如上所述,或者数据可以被存储在任何数量的存储介质上,这些存储介质可以由设备经由无线接口层772或经由移动计算设备700和与移动计算设备700相关联的单独计算设备(例如,诸如互联网之类的分布式计算网络中的服务器计算机)之间的无线连接来访问。应当理解,这样的数据/信息可以经由无线接口层772或经由分布式计算网络经由移动计算设备700来访问。类似地,根据众所周知的数据/信息传输和存储手段,包括电子邮件和协作数据/信息共享系统,这样的数据/信息可以容易地在计算设备之间传输以用于存储和使用。
图8是示出了可以用于实践本公开的方面的计算设备800的物理组件(例如,硬件)的框图。下面描述的计算设备组件可以具有用于动态配置针对基于云的应用服务的操作监控器的计算机可执行指令。在基本配置中,计算设备800可以包括至少一个处理部件802和系统存储器804。取决于计算设备的配置和类型,系统存储器804可以包括但不限于易失性存储装置(例如,随机存取存储器)、非易失性存储装置(例如,只读存储器)、闪存、或此类存储器的任何组合。系统存储器804可以包括适合于运行一个或多个操作监控程序的操作系统805。例如,操作系统805可以适用于控制计算设备800的操作。此外,本公开的实施例可以结合图形库、其他操作系统或任何其他应用程序来实施,并且不限于任何特定的应用或系统。该基本配置在图8中通过虚线808内的那些组件示出。计算设备800可以具有附加特征或功能。例如,计算设备800还可以包括附加的数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储装置在图8中通过可移动存储设备809和不可移动存储设备810示出。
如上所述,多个程序模块和数据文件可以被存储在系统存储器804中。当在处理部件802上执行时,程序模块806(例如,实时代码缺陷遥测应用应用820)可以执行包括但不限于如本文所述的方面的处理。根据示例,遥测分析及比较引擎811可以识别一个或多个软件更新前时间序列并将这些时间序列与一个或多个软件更新后时间序列进行比较,以确定新的操作监控器是否应当被生成,现有的操作监控器是否应当被修改,和/或现有的操作监控器是否应当被删除。动态监控器引擎813可以执行与针对基于云的应用服务中的操作而生成新监控器和修改现有监控器相关联的一个或多个操作。日志分析引擎815可以执行与分析来自一个或多个时间序列的操作日志并将该信息应用于机器学习模型中以创建和/或修改监控器和/或确定经由向基于云的应用服务实施软件更新已经做出了哪些操作变化相关联的一个或多个操作。监控器分配引擎817可以执行与确定可用于基于云的应用服务和/或遥测服务的系统资源以及为系统中的每个监控器设置操作监控标准(例如,对于每个操作监控了多少时间序列,时间序列有多长等)相关联的一个或多个操作。
此外,本公开的实施例可以在包括分立电子单元的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或包含电子单元或微处理器的单个芯片上实践。例如,本公开的实施例可以经由片上系统(SOC)来实践,其中图8中所示的每个或许多组件都可以被集成到单个集成电路上。这种SOC设备可以包括一个或多个处理部件、图形部件、通信部件、系统虚拟化部件和各种应用功能,所有这些都作为单个集成电路集成(或“烧制”)到芯片衬底上。当经由SOC操作时,本文描述的关于客户端切换协议的能力的功能可以经由与计算设备800的其他组件集成在单个集成电路(芯片)上的专用逻辑来操作。本公开的实施例还可以使用能够执行诸如例如与(AND)、或(OR)和非(NOT)之类的逻辑运算的其他技术来实践,包括但不限于机械、光学、流体和量子技术。此外,本公开的实施例可以在通用计算机内或在任何其他电路或系统中实践。
计算设备800还可以具有一个或多个输入设备812,例如键盘、鼠标、笔、声音或语音输入设备、触摸或滑动输入设备等。还可以包括输出设备814,例如显示器、扬声器、打印机等。前述设备是示例,并且可以使用其他设备。计算设备800可以包括允许与其他计算设备850通信的一个或多个通信连接816。合适的通信连接816的示例包括但不限于射频(RF)发射器、接收器和/或收发器电路;通用串行总线(USB)、并行和/或串行端口。
如本文所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构或程序模块之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器804、可移动存储设备809和不可移动存储设备810都是计算机存储介质示例(例如,存储器存储装置)。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储技术、CD-ROM、数字通用磁盘(DVD)或其他光存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储设备,或可以用于存储信息并且可以由计算设备800访问的任何其他制品。任何此类计算机存储介质可以是计算设备800的一部分。计算机存储介质不包括载波或其他传播或调制的数据信号。
通信介质可以由计算机可读指令、数据结构、程序模块或已调制数据信号中的其他数据来体现,例如载波或其他传输机制,并且包括任何信息传递介质。术语“已调制数据信号”可以描述具有以对信号中的信息进行编码的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质之类的无线介质。
图9示出了用于处理在计算系统处从远程源接收的数据的系统的架构的一个方面,例如个人/通用计算机904、平板计算设备906或移动计算设备908,如上所述。在服务器设备902处显示的内容可以被存储在不同的通信信道或其他存储类型中。例如,可以使用目录服务922、web门户924、邮箱服务926、即时消息存储库928或社交网站930来存储各种文档。程序模块806可以由与服务器设备902通信的客户端采用,和/或程序模块806可以由服务器设备902采用。服务器设备902可以通过网络915向和从客户端计算设备提供数据,客户端计算设备例如为个人/通用计算机904、平板计算设备906和/或移动计算设备908(例如,智能电话)。举例来说,上面关于图6至图8描述的计算机系统可以体现在个人/通用计算机904、平板计算设备906和/或移动计算设备908(例如,智能电话)中。除了接收可用于在图形始发系统进行预处理或在接收计算系统进行后处理的图形数据之外,计算设备的这些实施例中的任何实施例都可以从存储库916获得内容。
例如,上面参照根据本公开的方面的方法、系统和计算机程序产品的框图和/或操作说明描述了本公开的方面。框中注明的功能/动作可以不按任何流程图中所示的顺序发生。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行。
本申请中提供的一个或多个方面的描述和说明并不旨在以任何方式限制或制约所要求保护的本公开的范围。本申请中提供的方面、示例和细节被认为足以传达所有权并使他人能够做出和使用要求保护的公开的最佳模式。所要求保护的公开不应当被解释为限于本申请中提供的任何方面、示例或细节。不管是组合地还是分开地示出和描述,(结构和方法上的)各种特征旨在选择性地包括或省略以产生具有特定特征集合的实施例。已经提供了对本公开的描述和说明,本领域技术人员可以设想落入本申请中体现的总体发明构思的更广泛方面的精神内的变化、修改和替代方面,这些变化、修改和替代方面不背离要求保护的公开内容的更广泛范围。
以上描述的各种实施例仅通过说明的方式提供并且不应当被解释为限制所附的权利要求。本领域技术人员将容易地认识到可以在不遵循本文所示出和描述的示例实施例和应用并且不脱离所附权利要求的真实精神和范围的情况下做出的各种修改和改变。
Claims (15)
1.一种用于监控来自基于云的应用服务的遥测数据的方法,所述方法包括:
分析针对所述基于云的应用服务的多个操作的遥测数据,其中,所述分析包括将第一时间序列与第二时间序列进行比较,并且其中,来自所述第二时间序列的数据与在时间上相比于与所述第一时间序列相关的操作的执行在前执行的操作相关;
基于所述分析,识别所述基于云的应用服务中的一个或多个操作变化;以及
基于所述一个或多个操作变化,动态配置至少一个遥测监控器。
2.如权利要求1所述的方法,其中,动态配置所述至少一个遥测监控器包括:选择适当的监控技术来检测针对与所述一个或多个操作变化相关联的每个新操作的失败模式。
3.如权利要求1所述的方法,其中,动态配置所述至少一个遥测监控器包括:自动定义针对与所述一个或多个操作变化相关联的每个新操作的基线失败率。
4.如权利要求3所述的方法,其中,所述基线失败率是经由将机器学习模型应用于针对与所述一个或多个操作变化相关联的每个新操作的遥测数据,针对与所述一个或多个操作变化相关联的每个新操作而自动定义的。
5.如权利要求3所述的方法,其中,动态配置所述至少一个遥测监控器包括:根据针对与所述一个或多个操作变化相关联的每个新操作的所述基线失败率来自动定义阈值失败率。
6.如权利要求1所述的方法,其中,动态配置所述至少一个遥测监控器包括:自动定义时间序列窗口,所述时间序列窗口包括在一持续时间中执行的操作,针对与所述一个或多个操作变化相关联的每个新操作的每个遥测监控器将监控所述持续时间。
7.如权利要求1所述的方法,其中,所动态配置的监控器具有针对其自动定义的静态基线。
8.如权利要求1所述的方法,其中,所动态配置的监控器具有针对其自动定义的动态基线。
9.如权利要求1所述的方法,其中,识别的所述一个或多个操作变化包括软件更新中包含的新操作,并且其中,动态配置所述至少一个遥测监控器包括:生成用于监控与所述新操作相关联的数据的一个或多个新遥测监控器。
10.如权利要求9所述的方法,其中,用于生成的所述一个或多个新遥测监控器的数量是基于用于监控所述基于云的应用服务中的操作的可用带宽而自动确定的。
11.如权利要求1所述的方法,其中,识别的所述一个或多个操作变化包括已经从由所述基于云的应用服务托管的应用中移除的至少一个操作,并且其中,动态配置所述至少一个遥测监控器包括:移除曾监控与所移除的操作相关联的数据的一个或多个遥测监控器。
12.如权利要求1所述的方法,其中,识别的所述一个或多个操作变化包括已经从由所述基于云的应用服务托管的应用修改的至少一个操作,并且其中,动态配置所述至少一个遥测监控器包括:修改曾监控与所修改的操作相关联的数据的一个或多个遥测监控器。
13.一种用于监控来自基于云的应用服务的遥测数据的系统,包括:
用于存储可执行程序代码的存储器;以及
一个或多个处理器,其在功能上耦合到所述存储器,所述一个或多个处理器响应于包含在所述程序代码中的计算机可执行指令,并用于:
将第一时间序列与第二时间序列进行比较,其中,来自所述第二时间序列的数据与在时间上相比于与所述第一时间序列相关的操作的执行在前执行的操作相关;
识别针对在第一时间序列中执行的、在所述第二时间序列中不存在的操作的遥测数据;以及
自动生成用于监控与所述操作相关的遥测数据的遥测监控器。
14.如权利要求13所述的系统,其中,在自动生成所述遥测监控器时,所述一个或多个处理器进一步响应于包含在所述程序代码中的所述计算机可执行指令,并用于:
选择合适的监控技术来检测针对所述操作的失败模式。
15.一种包括可执行指令的计算机可读存储设备,所述可执行指令当由一个或多个处理器执行时,有助于监控来自基于云的应用服务的遥测数据,所述计算机可读存储设备包括能够由所述一个或多个处理器执行以进行以下操作的指令:
分析针对所述基于云的应用服务的多个操作的遥测数据,其中,所述分析包括将第一时间序列与第二时间序列进行比较,并且其中,来自所述第二时间序列的数据与在时间上相比于与所述第一时间序列相关的操作的执行在前执行的操作相关;
基于所述分析,识别所述基于云的应用服务中的一个或多个操作变化;以及
基于所述一个或多个操作变化,动态配置至少一个遥测监控器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/351,426 | 2019-03-12 | ||
US16/351,426 US10785105B1 (en) | 2019-03-12 | 2019-03-12 | Dynamic monitoring on service health signals |
PCT/US2020/021056 WO2020185477A1 (en) | 2019-03-12 | 2020-03-05 | Dynamic monitoring on cloud based application service |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113557499A true CN113557499A (zh) | 2021-10-26 |
Family
ID=69960767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080019950.2A Pending CN113557499A (zh) | 2019-03-12 | 2020-03-05 | 动态监控基于云的应用服务 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10785105B1 (zh) |
EP (1) | EP3938909B1 (zh) |
CN (1) | CN113557499A (zh) |
WO (1) | WO2020185477A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2589594B (en) * | 2019-12-03 | 2023-10-11 | Siemens Ind Software Inc | Detecting anomalous latent communications in an integrated circuit chip |
US11657300B2 (en) * | 2020-02-26 | 2023-05-23 | Samsung Electronics Co., Ltd. | Systems and methods for predicting storage device failure using machine learning |
US11782764B2 (en) | 2021-07-07 | 2023-10-10 | International Business Machines Corporation | Differentiated workload telemetry |
US11870663B1 (en) * | 2022-08-03 | 2024-01-09 | Tableau Software, LLC | Automated regression investigator |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105637891A (zh) * | 2013-08-07 | 2016-06-01 | 微软技术许可有限责任公司 | 遥测数据的动态收集分析和报告 |
WO2016160381A1 (en) * | 2015-04-01 | 2016-10-06 | Microsoft Technology Licensing, Llc | Anomaly analysis for software distribution |
US20160352608A1 (en) * | 2015-05-26 | 2016-12-01 | Microsoft Technology Licensing, Llc | Automated network control |
CN108141390A (zh) * | 2015-10-08 | 2018-06-08 | 弗兰克公司 | 用于管理关于电缆测试设备操作的消息的基于云的系统和方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558985B2 (en) | 2006-02-13 | 2009-07-07 | Sun Microsystems, Inc. | High-efficiency time-series archival system for telemetry signals |
US7714702B2 (en) | 2007-06-04 | 2010-05-11 | The Boeing Company | Health monitoring system for preventing a hazardous condition |
US8429467B2 (en) | 2007-10-19 | 2013-04-23 | Oracle International Corporation | User-triggered diagnostic data gathering |
US7962797B2 (en) | 2009-03-20 | 2011-06-14 | Microsoft Corporation | Automated health model generation and refinement |
WO2012158432A2 (en) | 2011-05-09 | 2012-11-22 | Aptima Inc | Systems and methods for scenario generation and monitoring |
US8694835B2 (en) | 2011-09-21 | 2014-04-08 | International Business Machines Corporation | System health monitoring |
US9893952B2 (en) | 2015-01-09 | 2018-02-13 | Microsoft Technology Licensing, Llc | Dynamic telemetry message profiling and adjustment |
US10552282B2 (en) | 2017-03-27 | 2020-02-04 | International Business Machines Corporation | On demand monitoring mechanism to identify root cause of operation problems |
US10416660B2 (en) * | 2017-08-31 | 2019-09-17 | Rockwell Automation Technologies, Inc. | Discrete manufacturing hybrid cloud solution architecture |
US10742486B2 (en) * | 2018-01-08 | 2020-08-11 | Cisco Technology, Inc. | Analyzing common traits in a network assurance system |
US10805185B2 (en) * | 2018-02-14 | 2020-10-13 | Cisco Technology, Inc. | Detecting bug patterns across evolving network software versions |
US10664256B2 (en) * | 2018-06-25 | 2020-05-26 | Microsoft Technology Licensing, Llc | Reducing overhead of software deployment based on existing deployment occurrences |
-
2019
- 2019-03-12 US US16/351,426 patent/US10785105B1/en active Active
-
2020
- 2020-03-05 WO PCT/US2020/021056 patent/WO2020185477A1/en unknown
- 2020-03-05 CN CN202080019950.2A patent/CN113557499A/zh active Pending
- 2020-03-05 EP EP20714092.2A patent/EP3938909B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105637891A (zh) * | 2013-08-07 | 2016-06-01 | 微软技术许可有限责任公司 | 遥测数据的动态收集分析和报告 |
WO2016160381A1 (en) * | 2015-04-01 | 2016-10-06 | Microsoft Technology Licensing, Llc | Anomaly analysis for software distribution |
CN107533504A (zh) * | 2015-04-01 | 2018-01-02 | 微软技术许可有限责任公司 | 用于软件分发的异常分析 |
US20160352608A1 (en) * | 2015-05-26 | 2016-12-01 | Microsoft Technology Licensing, Llc | Automated network control |
CN108141390A (zh) * | 2015-10-08 | 2018-06-08 | 弗兰克公司 | 用于管理关于电缆测试设备操作的消息的基于云的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200295986A1 (en) | 2020-09-17 |
WO2020185477A1 (en) | 2020-09-17 |
EP3938909B1 (en) | 2023-05-17 |
EP3938909A1 (en) | 2022-01-19 |
US10785105B1 (en) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102493449B1 (ko) | 엣지 컴퓨팅 테스트 방법, 장치, 전자 장치 및 컴퓨터 판독 가능 매체 | |
EP3938909B1 (en) | Dynamic monitoring on cloud based application service | |
US20140359593A1 (en) | Maintaining known dependencies for updates | |
WO2018049888A1 (zh) | 应用数据的迁移方法及装置 | |
US11720461B2 (en) | Automated detection of code regressions from time-series data | |
US20140372369A1 (en) | Managing Changes to Shared Electronic Documents Using Change History | |
US20160070555A1 (en) | Automated tenant upgrades for multi-tenant services | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
US11650805B2 (en) | Reliable feature graduation | |
US20170199788A1 (en) | Latency-reduced document change discovery | |
US20180121174A1 (en) | Centralized coding time tracking and management | |
CN117724803A (zh) | 云服务部署方法、装置和平台 | |
US10761828B2 (en) | Deviation finder | |
US20180069774A1 (en) | Monitoring and reporting transmission and completeness of data upload from a source location to a destination location | |
CN112965896A (zh) | 基于动态字节码的测试环境故障检测方法及装置 | |
US20180150286A1 (en) | Cross-machine build scheduling system | |
US20230385164A1 (en) | Systems and Methods for Disaster Recovery for Edge Devices | |
US10394768B2 (en) | Selective data migration on schema breaking changes | |
WO2023163773A1 (en) | Success rate indicator solution for pipelines | |
US10956307B2 (en) | Detection of code defects via analysis of telemetry data across internal validation rings | |
CN112559258B (zh) | 一种容灾处理方法、装置、系统、设备及介质 | |
US11093237B2 (en) | Build isolation system in a multi-system environment | |
US11250074B2 (en) | Auto-generation of key-value clusters to classify implicit app queries and increase coverage for existing classified queries | |
US20220391314A1 (en) | Generating fault conditions using a fault-enabled software development kit | |
WO2023235041A1 (en) | Systems and methods for disaster recovery for edge devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |