CN116302306A - 用于微服务体系结构的基于匹配的增强的调试 - Google Patents
用于微服务体系结构的基于匹配的增强的调试 Download PDFInfo
- Publication number
- CN116302306A CN116302306A CN202211511911.1A CN202211511911A CN116302306A CN 116302306 A CN116302306 A CN 116302306A CN 202211511911 A CN202211511911 A CN 202211511911A CN 116302306 A CN116302306 A CN 116302306A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- data points
- services
- 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
- 238000000034 method Methods 0.000 claims abstract description 84
- 238000012545 processing Methods 0.000 claims abstract description 66
- 230000008569 process Effects 0.000 claims abstract description 54
- 230000015654 memory Effects 0.000 claims description 38
- 238000004458 analytical method Methods 0.000 claims description 34
- 230000000694 effects Effects 0.000 claims description 12
- 230000003993 interaction Effects 0.000 claims description 9
- 238000013341 scale-up Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 description 35
- 238000004891 communication Methods 0.000 description 34
- 238000007726 management method Methods 0.000 description 31
- 239000003795 chemical substances by application Substances 0.000 description 22
- 238000001514 detection method Methods 0.000 description 15
- 238000013500 data storage Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000001152 differential interference contrast microscopy Methods 0.000 description 6
- 238000004146 energy storage Methods 0.000 description 6
- 230000006855 networking Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000037406 food intake Effects 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000002507 cathodic stripping potentiometry Methods 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- 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/0793—Remedial or corrective actions
-
- 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/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明描述了用于微服务体系结构的基于匹配的增强的调试。公开了用于促进用于微服务体系结构的基于匹配的增强的调试的装置。装置包括一个或多个处理器,该一个或多个处理器用于:通过由容器主控的微服务的边车中的异常检测器,检测微服务生成的遥测数据中的异常,该微服务在由处理器和应用的服务的一部分执行的容器中主控;通过边车的增强的调试和跟踪组件,在微服务中启用调试模式,该调试模式基于异常的类型;通过增强的调试和跟踪组件,收集由微服务生成的数据点的目标集;以及通过增强的调试和跟踪组件,用匹配过程处理数据点的目标集,以生成用于数据点的目标集中的每个数据点的上下文的时间戳和标签。
Description
技术领域
实施例总体上涉及数据处理,并且更具体地,涉及用于微服务体系结构的基于匹配的增强的调试。
背景技术
数据中心通常利用微服务体系结构提供网络基础设施服务。微服务体系结构可以将应用布置为松散耦合的微服务的集合。微服务可以指通过网络进行通信以使用技术不可知协议实现目标的过程。在一些情况下,可以使用提供容器化工作负载和/或服务的容器编排平台来部署微服务。容器编排平台可以可用服务网格来管理微服务之间的大量基于网络的进程间通信。服务网格是用于微服务的专用软件基础设施层,包括使微服务之间的通信快速、可靠和安全的元素。服务网格提供包括服务发现、负载平衡、加密、可观察性、可跟踪性以及身份认证和授权的能力。服务网格提供的微服务部署模型变得越来越有弹性,从而为扩展和缩小微服务提供了灵活性。
在服务网格环境中,计算集群中的典型工作者节点可以同时处置数百个容器工作负载。这些工作者节点还可以具有针对计算密集型任务而优化的静态附接的专用硬件加速器。例如,硬件加速器类可以被优化以高效地运行加密和压缩算法,或者运行机器学习加速算法。这种硬件加速器可以作为分解式计算的形式提供,其中工作负载分布在分解式计算资源上,分解式计算资源诸如CPU、GPU和硬件加速器(包括现场可编程门阵列(fieldprogrammable gate array,FPGA)),它们经由网络连接,而不是在同一平台上并经由诸如外围组件互连快速(peripheral component interconnect express,PCIe)之类的物理链路连接。分解式计算通过启用对可用资源的更高效使用,实现了提高的资源利用并降低了拥有成本。分解式计算还可以为使计算更高效、性能更好的大型计算实现大量硬件加速器的池化。
随着微服务部署的弹性的增加,以及随着微服务体系结构向利用分解式计算资源的转变,作为跟踪和性能遥测收集的一部分被收集的数据量可能会变得繁重。此外,考虑到在短时间内传送大量数据,跟踪和性能遥测收集产生的数据和信息量可能会对微服务联网产生问题。
附图说明
因此,为了可详细地理解上文陈述的当前实施例的特征的方式,可参照实施例进行对上文简要概述的实施例的更特定的描述,在所附附图中图示实施例中的一些。然而,要注意,所附附图仅图示典型实施例,并且因此不应视为限制实施例的范围。附图并未按比例绘制。一般来说,贯穿(一个或多个)附图和所附书面说明书,相同的附图标记用于指代相同或类似的部分。
图1图示出根据本文的实现方式的提供用于微服务体系结构的基于匹配的增强的调试的数据中心系统。
图2图示出根据本文的实现方式的数据中心系统中的计算平台的组件的框图。
图3是根据本文的实现方式的实现用于微服务体系结构的基于匹配的增强的调试的服务平台的框图。
图4是图示出用于微服务体系结构的基于匹配的增强的调试的微服务水平实现方式的方法的实施例的流程图。
图5是图示出用于微服务体系结构的基于匹配的增强的调试的服务水平实现方式的方法的实施例的流程图。
图6是根据一些实施例的用于启用用于微服务体系结构的基于匹配的增强的调试的说明性电子计算设备的示意图。
具体实施方式
本公开的实现方式描述了用于微服务体系结构的基于匹配的增强的调试。
云服务提供商(Cloud service provider,CSP)正在其中工作负载的处理分布在各种计算资源上的数据中心中部署解决方案,计算资源诸如中央处理单元(centralprocessing unit,CPU)、图形处理单元(graphics processing unit,GPU)和/或硬件加速器(包括但不限于GPU、现场可编程门阵列(field programmable gate array,FPGA)、专用集成电路(application-specific integrated circuit,ASIC)、密码加速器、压缩加速器等等)。传统上,这些计算资源在相同平台上运行,并经由物理通信链路(诸如外围组件互连快速(PCIe))连接。
然而,分解式计算正在数据中心中增加。通过分解式计算,CSP正在部署解决方案,其中工作负载的处理分布在分解式计算资源上,诸如CPU、GPU和硬件加速器(包括FPGA、ASIC等),这些分解式计算资源经由网络连接,而不是在同一平台上并经由物理链路(诸如PCIe)连接。分解式计算通过启用对可用资源的更高效使用,实现了提高的资源利用并降低了拥有成本。分解式计算还可以为使计算更高效、性能更好的大型计算实现大量硬件加速器的池化。
本文所讨论的硬件加速器(本文中也称为硬件加速器资源、硬件加速器设备、加速器资源、加速器设备和/或扩展资源)可以指专用中央处理单元(CPU)、图形处理单元(GPU)、通用GPU(general purpose GPU,GPGPU)、现场可编程门阵列(FPGA),专用集成电路(ASIC)、推断加速器、密码加速器、压缩加速器、其他专用硬件加速器等等中的任何一者。
此外,CSP用于部署服务网格的数据中心通常利用微服务体系结构来提供服务网格的网络基础设施服务。微服务体系结构可以将应用布置为松散地耦合的微服务的集合。微服务可以是通过网络进行通信以使用技术不可知协议实现目标的过程。在一些情况下,可以使用提供容器化工作负载和/或服务的容器编排平台来部署微服务。在一些示例中,服务可以是包括数百个彼此结合工作的微服务的大型服务,或者可以是适度的单独服务。工作负载可以指在消耗资源的云上运行的资源,诸如计算能力。在一些实施例中,应用、服务或微服务可以被称为工作负载,这表示工作负载可以在不同的云平台之间来回移动,或者从内部(on-premise)移动到云,或反之亦然,而没有任何依赖性或麻烦。
容器编排平台可以可用服务网格来管理微服务之间的大量基于网络的进程间通信。服务网格是用于微服务的专用软件基础设施层,包括使微服务之间的通信快速、可靠和安全的元素。服务网格提供包括服务发现、负载平衡、加密、可观察性、可跟踪性以及身份认证和授权的能力。
如前所述,服务网格提供的微服务部署模型变得越来越有弹性,从而为扩展和缩小微服务提供了灵活性。随着微服务部署的弹性的增加,以及随着微服务体系结构向利用分解式计算资源的转变,作为跟踪和性能遥测收集的一部分被收集的数据量在解释方面(例如,尤其是实时的)可能会变得繁重。
跟踪和性能遥测收集是无法在生产环境中始终运行的繁重过程。通常,当服务网格中的服务出现问题时,会调用服务专家以在特定的时间窗口期间手动启用跟踪或附加日志记录,以便收集足够的数据以供分析,并有望标识问题。这在使用微服务体系结构的高度分布式系统上甚至更为复杂。此外,微服务利用在不同权限下运行的附加平台组件,这很难匹配。
此外,考虑到在短时间内传送大量数据,跟踪和性能遥测收集产生的数据和信息量可能会对微服务联网产生问题。考虑到在短时间内传送大量数据,产生的信息量对联网来说是风险。
本公开的实现方式通过为微服务体系结构提供基于匹配的增强的调试来解决上述技术缺陷。在本文的实现方式中,提供了用于微服务体系结构的基于匹配的增强的调试的技术。在本文的实现方式中,边车用于每个微服务,其中边车允许具有边车生成的标签信息、作为流传输服务的分布式跟踪。在一些实现方式中,具有生成的标签信息、作为流传输服务的分布式跟踪可以由边车以外的其他服务/微服务组件执行。
边车的异常检测组件可以分析从主控微服务(和边车)的服务平台收集的遥测数据,并包括挂钩以捕获与异常相关联的服务(应用)中的错误。一旦检测到异常,边车的增强的调试和跟踪组件就可以为微服务启用调试模式。在调试模式期间,跟踪和性能遥测收集同时继续用于栈中的不同组件,在栈中组件并非都以相同权限运行;例如,PMU计数器或设备计数器包含不仅仅跨越感兴趣的(一个或多个)微服务的活动或错误的指示。在一些情况下,这些计数器、OS活动跟踪等应该单独处理,并且特定于给定微服务的部分可以被分解或投影。例如,Wireshark跟踪、KU跟踪等就是这种情况。
增强的调试和跟踪组件可以对收集到的调试数据执行匹配过程,其中匹配过程可以在遥测流中引入带时间戳的标记和标签,使得可以根据这些标记将应分离的信息流索引到全局收集和分析代理中。在本文的实现方式中,可以基于服务策略和/或特定于应用程序的服务水平协议(service level agreement,SLA)/服务水平目标(service levelobjective,SLO)启用不同级别的跟踪。然后,全局代理可以响应这些标记并返回它为这些标记索引的信息。因此,取决于提供标记连同查询的实体的权限,(边车代理标识的线程之外的)所有线程的调度器跟踪都是匿名的、模糊的或归一化的。
本文的实现方式的按需分布式跟踪可以减少部署服务的微服务的服务平台中的数据流量。这也有助于对复杂系统上的故障进行全面分析。
本公开的实现方式提供了与上述传统方法相比的技术优势。一个技术优势是,实现方式减少了用于捕获关于生产系统中发生的问题的相关信息的时间窗口,自动并暂时地重新配置系统以进行调试/跟踪模式。此外,使用边车以启用本文描述的增强的调试允许以不同的权限管理遥测信息,从而使用于分析的数据集更完整。
图1图示出根据本文的实现方式的提供用于微服务体系结构的基于匹配的增强的调试的数据中心系统100。数据中心系统100图示出提供用于在数据中心处处理任务的各种XPU(异构处理单元)的示例数据中心(例如,由云服务提供商(cloud service provider,CSP)主控),其中XPU可以包括以下各项中的一者或多者:中央处理单元(CPU)115、图形处理单元(GPU)135(包括通用GPU(GPGPU))、ASIC或其他处理单元(例如,加速器145、155、166、推断加速器145、密码加速器155、可编程或固定功能FPGA 164、专用集成电路(ASICS)166、压缩加速器等)。数据中心还可以提供用于数据存储任务的存储单元。例如,存储单元可以包括固态驱动(solid state drive,SSD)125。XPU和/或存储单元可以用类似类型的单元主控,例如,CPU115在应用服务器(app服务器)110上主控,SSD 125在存储机架120上主控,GPU135在GPU机架130上主控,推断加速器145在推断加速器服务器140上主控,密码加速器155在密码加速器机架150上主控,并且通用加速器162、164、166在加速器机架160上主控。
系统100的数据中心例如,使用直接附接至相应主机处理组件的IPU 105来为其主控的处理组件115、125、135、145、155、162、164、166提供各种迁移。尽管出于示例目的讨论了IPU 105,但其他可编程网络设备(诸如DPU或智能NIC)在本文中可以与IPU 105可互换地使用。所提供的迁移可以是联网、存储、安全等。这允许处理组件115、125、135、145、155、162、164、166在没有管理程序的情况下运行,并且向CSP提供将数据中心中的整个主机租出给它们的关注安全性的客户的能力,或者避免与多租户主机相关联的串扰和其他问题。
IPU 105可以通过为数据中心运营商(诸如,云服务提供商(CSP))提供针对安全性、加速、遥测和服务编排的控制点而在数据中心发挥作用。IPU105体系结构可在现有的智能网络接口卡(Smart Network Interface Card,SmartNIC)特征之上建立,并且是在分布式平台内和跨分布式平台控制安全性和数据加速的部分。它是由CSP控制的用于管理平台、向租户提供服务并且保障对数据中心网络的访问的安全域。通过迁移主机服务、可靠的传输并优化数据复制,IPU 105提高了针对分布式运行时的性能和可预测性,并且使得能够对多太比特吞吐量进行缩放。
近年来,开始于唯一的目的在于使分组进入主机或离开主机的基础NIC,IPU 105已经在复杂性方面增长。随着联网软件迁移的添加,NIC演进成为智能NIC,其能够对诸如VSwitch、VIRTIO-Net、AVF等的功能进行迁移。远程分解式存储体系结构提供了进一步的演进,其中,计算和存储不再是位于一起的,而是大型计算集群通过网络连接至大型存储集群。网络速度的提高和协议的演进使得这成为可能。远程分解式存储相对于直接附接的存储提供的优势之一是计算和存储器可以以不同的节拍来开发和更新。附接至计算节点的存储器的量不再受限于硬驱动器的物理添加或移除,而是可以作为PF向PCIe交换机进行热插拔。诸如智能端点(Smart End Point)之类的技术使得IPU能够具有固件控制的交换机,并且使得PCIe交换机自身不受硬件实现方式限制。
如上所述,本文中的实施例提供了用于微服务体系结构的基于匹配的增强的调试。在一种实现方式中,数据中心系统100包括一个或多个资源,该一个或多个资源可以实现增强的调试/跟踪组件170,以提供用于微服务体系结构的基于匹配的增强的调试。出于说明性示例目的,在数据中心系统100的CPU 115和GPU 135中分别示出增强的调试/跟踪组件170。然而,根据本文的实现方式,增强的调试/跟踪组件170可在数据中心系统100的各种其他分解式资源中的一者或多者中操作。这样,数据中心系统100的资源可位于经由数据中心系统100中的网络(未示出)连接的不同平台中。在一些实现方式中,软件和/或中间件可以使得数据中心系统100的资源在逻辑上看起来在同一平台中。此外,在软件和/或硬件(例如,网络接口卡(NIC))中实现的传输协议可以使远程资源在逻辑上看起来就像它们也是本地资源一样。
下面参照图2-图6描述了实现用于微服务体系结构的基于匹配的增强的调试的增强的调试/跟踪组件170的进一步细节。
图2图示出根据本文的实现方式的数据中心系统200中的计算平台202A的组件的框图。在所描绘的实施例中,平台202A、202B和202C(本文中统称为平台202)连同数据中心管理平台206经由网络208互连。在其他实施例中,计算机系统可包括任何合适数量的(即,一个或多个)平台。在一些实施例中(例如,当计算机系统包括单个平台时),数据中心管理平台206的全部或部分可被包括在平台202上。
平台202可包括平台资源210,该平台资源210具有一个或多个处理资源212(例如,包括CPU、GPU、FPGA、ASIC、其他硬件加速器的XPU)的、存储器214(其可包括任何数量的不同模块)、芯片集216、(一个或多个)通信接口设备218、以及用于执行管理程序213的任何其他合适的硬件和/或软件或能够执行与在平台202上运行的应用相关联的工作负荷的其他操作系统。
在一些实施例中,平台202可用作调用这些应用的一个或多个宾客机系统222的主机平台。平台202A可表示任何合适的计算环境,诸如高性能计算环境、数据中心、通信服务提供商基础设施(例如,演进型分组核心的一个或多个部分)、存储器内计算环境、交通工具(例如,汽车或飞机)的计算系统、物联网(Internet of Things,IoT)环境、工业控制系统、其他计算环境或其组合。
每个平台202可包括平台资源210。除了实现平台202的功能的其他逻辑之外,平台资源210还可以包括一个或多个处理资源212(诸如CPU、GPU、FPGA、其他硬件加速器等)、存储器214、一个或多个芯片集216以及通信接口设备218。尽管示出了三个平台,但是计算机平台202A可以与任何合适数量的平台互连。在各种实施例中,平台202可驻留在电路板上,该电路板安装在底座、机架或包括通过网络208耦合在一起的多个平台(其可以包括例如,机架或背板交换机)的其他合适的结构中。
在处理资源212包括CPU的情况下,CPU各自可包括任何合适数量的处理器核心和支持逻辑(例如,非核心)。核心可通过驻留在处理资源212(例如,CPU)和/或芯片集216上的一个或多个控制器彼此耦合、耦合至存储器214、耦合至至少一个芯片集216和/或耦合至通信接口设备218。在一些实施例中,处理资源212被具体化在永久地或可移除地耦合至平台202A的插槽内。平台202可以包括任何合适数量的处理资源212。
存储器214可包括任何形式的易失性或非易失性存储器,包括但不限于磁介质(例如,一个或多个磁带驱动器)、光学介质、随机访问存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、闪存存储器、可移除介质、或任何其他一个或多个合适的本地或远程存储器组件。存储器214可被用于平台202A的短期、中期和/或长期存储。存储器214可存储由平台资源210利用的任何合适的数据或信息,包括嵌入在计算机可读介质中的软件和/或并入硬件中或以其他方式被存储的经编码的逻辑(例如,固件)。存储器214可存储由处理资源212的核心使用的数据。在一些实施例中,存储器214还可以包括用于指令的存储装置,这些指令可以由处理资源212(例如,CPU的核心)或其他处理元件(例如,驻留在芯片集216上的逻辑)执行,以提供与管理组件226或平台资源210的其他组件相关联的功能。
平台202还可以包括一个或多个芯片集216,该一个或多个芯片集216包括用于支持处理资源212的操作的任何合适的逻辑。在各实施例中,芯片集216可以驻留在作为处理资源212的相同管芯或封装上,或驻留在一个或多个不同管芯或封装上。每个芯片集可以支持任何合适数量的处理资源212。芯片集216还可以包括一个或多个控制器,该一个或多个控制器用于将平台资源210的其他组件(例如,通信接口设备218或存储器214)耦合至一个或多个处理资源212。
在所描述的实施例中,每个芯片集216还包括管理组件226。管理组件226可以包括用于支持芯片集216的操作的任何合适的逻辑。在特定实施例中,管理组件226可以从芯片集216、处理资源212和/或由芯片集216管理的存储器214、平台资源210的其他组件和/或平台资源210的组件之间的各种连接收集实时遥测数据。
芯片集216还各自包括通信接口设备228。通信接口设备228可用于在芯片集216与一个或多个I/O设备、一个或更多个网络208和/或耦合到网络208的一个或多个设备(例如,系统管理平台206)之间的信令和/或数据的通信。例如,通信接口设备228可用于发送和接收诸如数据分组之类的网络流量。在特定实施例中,通信接口设备228包括一个或多个物理网络接口控制器(network interface controller,NIC)(也称为网络接口卡或网络适配器)。NIC可以包括用于使用任何合适的物理层和数据链路层标准进行通信的电子电路系统,标准诸如以太网(例如,如IEEE 802.3标准所定义的)、光纤通道、无限带宽(InfiniBand)、Wi-Fi或其他合适的标准。NIC可以包括可以耦合至线缆(例如,以太网线缆)的一个或多个物理端口。NIC可以实现芯片集216的任何合适元件(例如,管理组件226)与耦合至网络208的另一设备之间的通信。在各实施例中,NIC可以与芯片集216集成(即,可以在与芯片集逻辑的剩余部分相同的集成电路或电路板上),或者可以在电磁地耦合至芯片集的不同集成电路或电路板上。
平台资源210可以包括附加的通信接口228。与通信接口设备218类似,通信接口228可用于平台资源210与一个或多个网络208以及耦合至网络208的一个或多个设备之间的信令和/或数据的通信。例如,通信接口228可用于发送和接收诸如数据分组之类的网络流量。在特定实施例中,通信接口228包括一个或多个物理NIC。这些NIC可以实现平台资源210的任何合适元件(例如,处理资源212或存储器214)与耦合至网络208的另一设备(例如,通过一个或多个网络耦合至网络208的其他平台的元件或远程计算设备)之间的通信。
平台资源210可以接收并执行任何合适类型的工作负载。工作负载可以包括利用平台资源210的一个或多个资源(诸如一个或多个核心或相关联的逻辑)的任何请求。例如,工作负载可以包括:实例化软件组件(诸如I/O设备驱动器224或宾客机系统222)的请求;处理从微服务容器232A、232B(本文中统称为微服务容器232)或平台202A外部的设备(诸如耦合至网络208的网络节点)接收的网络分组的请求;执行与宾客机系统222、平台202A上运行的应用、管理程序213或平台202A上运行的其他操作系统相关联的进程或线程的请求;或其他合适的处理请求。
微服务容器232可以用其自身的专用硬件模拟计算机系统。容器232可以指封装代码及其所有依赖性的标准软件单元,因此应用从一个计算环境快速且可靠地运行至另一计算环境。容器映像是轻量级的、独立的、可执行的软件封装,该软件封装包括用于运行应用的组件:代码、运行时、系统工具、系统库和设置。容器232利用操作系统(operatingsystem,OS)虚拟化的形式,其中OS的特征被用于既隔离进程又控制这些进程可以访问的CPU、存储器和盘的数量。
当实现容器232时,管理程序213也可以称为容器运行时。尽管本文的实现方式讨论了经由容器的微服务功能的虚拟化,但在一些实现方式中,虚拟机可以由管理程序213主控,并用于主控微服务和/或由应用提供的服务的其他组件。
管理程序213(也称为虚拟机监视器(virtual machine monitor,VMM))可包括用于创建和运行宾客机系统222的逻辑。管理程序213可以呈现由具有虚拟操作平台(即,当虚拟机实际上被合并到单个硬件平台上时,在虚拟机看来,它们正在单独的物理节点上运行)的虚拟机运行的宾客机操作系统,并管理平台资源210对宾客机操作系统的执行。管理程序213的服务可以通过在软件中虚拟化或通过利用最小软件干预的硬件辅助的资源或这两者来提供。各种宾客机操作系统的多个实例可以由管理程序213管理。每个平台202可以具有管理程序213的单独实例。
在本文的实现方式中,管理程序213也可以被实现为能够构建和容器化应用的容器运行时环境。
管理程序213可以是用于控制平台逻辑以及管理宾客机操作系统的、直接在平台资源210上运行的原生或裸机管理程序。或者,管理程序213可以是在主机操作系统上运行并从主机操作系统中提取宾客机操作系统的被主控的管理程序。管理程序213可包括可以向宾客机系统222的虚拟机提供虚拟交换和/或路由功能的虚拟交换机238。
虚拟交换机238可包括使用平台资源210的组件执行的软件元件。在各实施例中,管理程序213可以与可使管理程序213响应于平台202中的变化的条件(例如,微服务容器232的添加或删除或可进行以增强平台的性能的优化)来重新配置虚拟交换机238的参数的任何合适的实体(例如,SDN控制器)进行通信。
平台资源210的元件可以以任何合适的方式耦合在一起。例如,总线可以将组件中的任何组件耦合在一起。总线可以包括任何已知的互连,诸如多点总线、网状互连、环形互连、点对点互连、串行互连、并行总线、相干(例如,缓存相干)总线、分层协议体系结构、差分总线或射电收发机逻辑(Gunning transceiver logic,GTL)总线,仅举几个例子。
计算机平台202A的元件可以以任何合适的方式耦合在一起,诸如通过一个或多个网络208。网络208可以是任何合适的网络或使用一个或多个合适的联网协议操作的一个或多个网络的组合。网络可以表示用于接收和发射通过通信系统传播的信息分组的一系列节点、点和经互连的通信路径。例如,网络可以包括一个或多个防火墙、路由器、交换机、安全设备、防病毒服务器或其他有用的网络设备。
在本文的实现方式中,微服务容器232可以提供增强的调试/跟踪组件(未示出),诸如参照图1所描述的增强的调试/跟踪组件170。下文参照图3-图6描述了微服务容器232如何实现用于提供用于微服务体系结构的基于匹配的增强的调试的增强的调试/跟踪组件的进一步细节。
图3是根据本文的实现方式的实现用于微服务体系结构的基于匹配的增强的调试的服务平台300的框图。在一种实现方式中,服务平台300与参考图2描述的数据中心系统200的平台202相同。在一些实现方式中,服务平台300可以在可以利用或不利用分解式计算的数据中心中主控。本文的实施例不限于分解式计算环境中的实现方式,并且可以跨大范围的不同数据中心环境而部署。图2的分解式计算数据中心系统200作为服务平台300的示例实现方式被提供,并且不旨在限制本文的实施例。
在一种实现方式中,服务平台300可以主控由一个或多个微服务容器320A、320B(本文中统称为微服务容器320)实现的服务。微服务容器320可以与参照图2描述的微服务容器232相同。可以使用服务管理组件340来编排和管理服务。服务管理组件320可以由硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。
服务平台300可以充当服务的主机平台,从而将服务的所部署的微服务实现为调用服务的功能的一个或多个微服务容器320。服务平台300可表示任何合适的计算环境,诸如高性能计算环境、数据中心、通信服务提供商基础设施(例如,演进型分组核心的一个或多个部分)、存储器内计算环境、交通工具(例如,汽车或飞机)的计算系统、物联网(IoT)环境、工业控制系统、其他计算环境或其组合。在本文的实现方式中,可以使用硬件电路系统(诸如CPU、GPU、硬件加速器等等中的一者或多者)来实现容器320。在一个实施例中,容器320可以使用参照图2描述的平台202来实现。
微服务容器320可以包括用于实现微服务325A、325B(本文中统称为微服务325)和边车330A、330B(本文中统称为边车330)的功能的逻辑。边车330可以是在与微服务325相同的舱上运行的容器。如本文中所描绘的,边车330被示出为微服务容器320的一部分,但在一些实现方式中,边车330可以被实现为与微服务325功能分离的容器。
在本文的实现方式中,边车330可以包括一个或多个组件,以支持用于微服务体系结构的基于匹配的增强的调试。这些组件可以包括数据摄取332A、332B(本文中统称为数据摄取332)、收集到的数据334A、334B(统称为收集到的数据334的数据存储)、微服务异常检测336A、336B(统称为微服务异常检测336)和微服务增强的调试/跟踪338A、338B(本文中统称为微服务增强的调试/跟踪338)。
本地促进器310连接到边车330,并且可以在微服务容器320的特权空间中操作。在一种实现方式中,本地促进器310是具有对低级信息的访问的特权守护进程(daemon)。例如,本地促进器310具有对低级软件遥测和硬件数据(诸如注册表)的访问。
服务平台300还包括服务管理组件340。可以使用硬件电路系统(诸如CPU、GPU、硬件加速器等等中的一者或多者)来实现服务管理组件340。在一个实施例中,服务管理组件340可以使用参照图2描述的平台202来实现。更一般地,可以用硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现示例服务管理组件340。因此,例如,服务管理组件340可以由一个或多个模拟或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程控制器、(一个或多个)图形处理单元(GPU)、(一个或多个)数字信号处理器(DSP)、(一个或多个)专用集成电路(ASIC)、(一个或多个)可编程逻辑器件(programmable logicdevice,PLD)和/或(多个)现场可编程逻辑器件(field programmable logic device,FPLD)来实现。
在一种实现方式中,服务管理组件340操作以控制对由数据中心(诸如图1的数据中心系统100)主控的服务网格的服务的资源(如微服务)的管理和/或编排。服务管理组件340可以位于服务平台300中的微服务容器320的相同节点或不同节点上。
服务管理组件340可以包括一个或多个组件,以支持用于微服务体系结构的基于匹配的增强的调试。这些组件可以包括服务数据摄取342、服务收集到的数据344(数据存储)、服务异常检测346和服务调试/跟踪管理器348。
在本文的实现方式中,微服务容器320和服务管理组件340提供用于微服务体系结构的基于匹配的增强的调试。在一种实现方式中,用于每个微服务容器320的边车330包括接收与微服务325相关的服务平台300的遥测数据的数据摄取组件332。遥测数据可以包括体系结构(例如,特权空间)中的较低级层以及应用(微服务325)遥测数据和日志(例如,用户空间)。收集到的数据334将该微服务相关的数据保持为历史数据。微服务异常检测组件336持续地分析存储在收集到的数据334中的数据,以标识与正常或典型行为的任何偏差。微服务增强的调试/跟踪组件338基于微服务异常检测组件336检测到的异常来管理微服务容器320以启用微服务容器320的不同模式,包括生产(性能)模式和调试模式。
服务管理组件340包括一组类似的组件342-248,但在更高的级别(例如,逐服务/应用),该组类似的组件342-248可以监控一起交互以实现特定目标的一组微服务325的行为。
在本文的实现方式中,逐微服务325的边车330允许具有由边车330为跟踪数据产生的标签信息的、作为流传输服务的分布式跟踪。分布式跟踪由微服务异常检测组件326按需触发。逐微服务容器320的按需分布式跟踪有助于减少服务平台300中的数据流量。
微服务异常检测组件336分析与微服务325相关的平台的遥测数据。如上所述,该遥测数据可包括服务平台300(例如,特权空间)中的较低级层,并且可包括应用(微服务325)遥测数据和日志(例如,用户空间)。微服务异常检测组件336可以提供挂钩以捕获应用中的错误(例如,应用程序服务水平目标(SLO)规定以30fps进行处理,但相反,应用以28fps进行处理)。在本文的实现方式中,微服务异常检测组件336可以考虑基础设施和应用SLO。
为了获得收集到的数据334,微服务异常检测组件336可以查询用户空间中可用的信息,并且此外,还可以调用本地促进器310。本地促进器310连接至边车330,并具有对低级软件遥测和硬件数据(诸如注册表)的访问。这样,本地促进器310可以查询服务平台300的状态。基于收集到的数据334,微服务异常检测组件336可以确定是否存在与正常或典型行为的任何偏差。如果检测到偏差,则微服务异常检测组件336可以向微服务增强的调试/跟踪组件338指示该异常,包括其类型。
当检测到异常时,微服务增强的调试/跟踪组件338可以使微服务容器320启用调试模式。调试模式可以根据微服务容器320中被跟踪的信息的数量和/或量动态地(例如,在运行时期间)可扩展。例如,调试模式可以基于异常类型或对应于微服务325的服务水平协议(SLA)中的一者或多者来设置为微服务容器320收集的数据的量。在一些实现方式中,调试模式可以是其中重复资源(例如,一个或多个镜像微服务容器320,被部署以运行与主微服务容器320相同的操作集,其中在镜像微服务容器320中启用调试模式)的调试镜像节点。例如,该调试镜像模式可以实现用于非侵入性跟踪目的和/或用于性能关键的微服务。
异常的类型可用于确定在所启用的调试模式下运行什么查询以及达多长时间。例如,要在所启用的调试模式下运行的查询的以下可能实现方式包括(1)要执行的预定义查询集。例如,检查注册表X、分析存储器消耗等;(2)使用用于标识可能的动作的监督学习(SVM)或基于奖励的强化学习;和/或(3)使用利用其中不存在显式信息的聚类的无监督学习,并且目的是在试错的基础上找到有用和期望的度量。
一旦启用了调试模式,旨在被收集的数据点的目标集就被设置(取决于异常类型,如上所述)。跟踪和性能遥测收集同时继续用于栈中的不同组件,在栈中组件并非都以相同权限运行;例如,PMU计数器或设备计数器包含不仅仅跨越感兴趣的(一个或多个)微服务的活动或错误的指示。在一些情况下,这些计数器、OS活动跟踪等应该单独处理,并且特定于给定微服务的部分应当被分解和/或投影。例如,对于Wireshark跟踪、KU跟踪等可以是这种情况。在一些实现方式中,基于所提供的策略,数据摄取组件332可以从各种组件获得加密的、可以用合适的元数据归档的斑点(blob)。
当数据摄取组件332开始接收来自用户和特权空间的数据作为所启用的调试模式的一部分时,微服务增强的调试/跟踪组件338可以执行匹配过程,以分析和标记收集到的数据。微服务增强的调试/跟踪组件338可以对来自特权空间的数据和来自用户空间的数据执行匹配过程。在匹配过程期间,每个数据片段都有时间戳,针对上下文(即,(用户或特权)源、子组件、微服务_id、线程_id等)被标记,并且可选地被签名。匹配过程还可以考虑配置(例如,固定到核心1的微服务)、概况分析和整体上下文(例如,时间戳、资源利用)。
一旦从匹配过程聚集并匹配了调试/跟踪信息,微服务增强的调试/跟踪组件338使该调试/跟踪信息对服务平台300中的下一组件(诸如全局收集和分析代理)可用。在一种实现方式中,该全局收集和分析代理致力于标识可能的原因(即,克隆生产系统以基于聚集的日志和跟踪信息再现问题)。在本文的实现方式中,全局收集和分析代理可以是服务管理组件340的服务调试/跟踪管理器348。
经处理的数据(包括遥测流中带时间戳的标记和标签)使应该分离出来的信息流能够根据这些标记/标签索引到全局收集和分析代理(诸如服务管理组件340的服务调试/跟踪管理器348)中。全局代理(例如,服务调试/跟踪管理器348)可以响应于这些标记并返回其为这些标记索引的信息,使得除了由边车330标识的线程之外的所有线程的跟踪都被匿名化、模糊化或标准化(取决于提供标记连同查询的实体的权限)。
在一种实现方式中,一旦完全捕获调试模式信息,微服务增强的调试/跟踪组件338就可以将微服务容器320返回到其中不再收集调试/跟踪数据的性能模式。在一些实现方式中,可以在为调试模式定义的时间窗口期满之后启用性能模式。在一些实现方式中,性能模式可包括生成一组(与调试模式相比)减少的调试信息。
如前所述,服务管理组件340包括一组类似的组件342-348,但在更高的级别(例如,逐服务/应用),该组类似的组件342-348可以监控一起交互以实现特定目标的一组微服务325的行为。在一些实现方式中,服务管理组件340可以执行与上面讨论的由边车330的组件执行的用于增强的调试和跟踪的类似过程。
在一种实现方式中,服务调试/跟踪管理器348可以生成服务的配置概述。配置概览可以详细说明服务的所部署的微服务的硬件和软件组件,以及所部署的微服务之间的交互。服务数据摄取组件342可以收集服务的遥测数据,并将该收集到的数据存储在服务收集到的数据344中。服务异常检测组件346可以连续地(或周期性地)分析服务收集到的数据344,以确定是否在服务中检测到任何异常。
基于检测到的异常,服务调试/跟踪管理器348可以标识要启用调试模式的微服务集。所标识的微服务集可以基于先前生成的配置概述。在本文的实现方式中,服务调试/跟踪管理器348可以与微服务集进行通信,以使调试模式在微服务集中被启用。如前所述,调试模式的这种启用覆盖或补充由微服务增强的调试/跟踪组件338启用的调试模式。在一种实现方式中,调试模式可以基于异常的类型和服务的SLA在微服务集中的不同水平被启用。
一旦在微服务集处启用调试模式,服务调试/跟踪管理器348就可以从微服务集接收经处理的调试和跟踪数据。在本文的实现方式中,如上所述,经处理的调试和跟踪数据在调试模式期间被生成,并用微服务集处的匹配过程进行处理。在一种实现方式中,匹配过程可以将时间戳和上下文标签附接至经处理的调试和跟踪数据。服务调试/跟踪管理器348可以基于从微服务集接收的经处理的调试和跟踪数据并基于配置概览,对服务执行异常的全局分析。例如,服务调试/跟踪管理器348可以通过按微服务_id过滤来获得数据,并获得用于调试服务的异常的完整上下文。
实施例可以被提供为例如计算机程序产品,该计算机程序产品可包括一种或多种机器可读介质,这一种或多种机器可读介质具有存储于其上的机器可执行指令,这些机器可执行指令在由一个或多个机器(诸如,计算机、计算机的网络或其他电子设备)执行时可使得这一个或多个机器执行根据本文中所描述的实施例的操作。机器可读介质可包括但不限于:软盘、光盘、CD-ROM(Compact Disc-Read Only Memory,致密盘只读存储器)以及磁光盘、ROM、RAM、EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦除可编程只读存储器)、磁卡或光卡、闪存存储器、或者适合于存储机器可执行指令的其他类型的介质/机器可读介质。
此外,实施例可作为计算机程序产品被下载,其中,经由通信链路(例如,调制解调器和/或网络连接),借助于在载波或其他传播介质中具体化和/或由载波或其他传播介质调制的一个或多个数据信号,可将程序从远程计算机(例如,服务器)传输至作出请求的计算机(例如,客户端)。
贯穿本文档,术语“用户”可以被互换地称为“观看者”、“观察者”、“演讲者”、“个人”、“个体”、“终端用户”和/或其他。应当注意,贯穿本文档,如“图形域”之类的术语可以与“图形处理单元”、“图形处理器”或简单地与“GPU”可互换地引用,并且类似地,“CPU域”或“主机域”可以与“计算机处理单元”、“应用处理器”或简单地与“CPU”可互换地引用。
要注意的是,贯穿本文档,可以可互换地使用如“节点”、“计算节点”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机”、“设备”、“计算设备”、“计算机”、“计算系统”等之类的术语。应当进一步注意,贯穿本文档,可以可互换地使用如“应用”、“软件应用”、“程序”、“软件程序”、“包”、“软件包”等之类的术语。并且,贯穿本文档,可以互换地使用如“作业”、“输入”、“请求”、“消息”等术语。
图4是图示出用于微服务体系结构的基于匹配的增强的调试的微服务水平实现方式的方法400的实施例的流程图。方法400可由处理逻辑执行,该处理逻辑可包括硬件(例如,电路系统、专用逻辑、可编程逻辑等)、软件(诸如在处理设备上运行的指令)或其组合。更具体地,方法400可以采用一组逻辑指令被实现为一个或多个模块,这些逻辑指令被存储在诸如RAM、ROM、PROM、固件、闪存存储器等之类的机器或计算机可读存储介质(本文中也被称为非瞬态计算机可读存储介质)中,被存储在诸如例如PLA、FPGA、CPLD等之类的可配置逻辑中,被存储在使用诸如例如ASIC、CMOS或TTL技术等之类的电路技术的固定功能逻辑硬件中,或被存储在以上各项的任何组合中。
出于呈现的简洁性和清楚性起见,方法400的过程按线性顺序图示;然而,构想了它们中的任何数量可以并行地、异步地或按不同次序来执行。此外,为了简洁、清楚和易于理解,参照图1-图3所描述的组件和过程中的许多组件和过程可能不会在下文中重复或讨论。在一种实现方式中,在微服务容器中实现边车的数据中心系统(诸如执行图3的服务平台300的微服务容器320的边车330的处理设备)可以执行方法400。
图4的方法400的示例过程开始于框410,其中执行边车的处理设备可以通过微服务容器的边车的异常检测器来检测由微服务生成的遥测数据中的异常。在一种实现方式中,该微服务是由数据中心系统主控的应用的服务的一部分。在框420处,处理设备可以通过边车的增强的调试和跟踪组件,在微服务中启用调试模式,其中调试模式基于异常的类型。
随后,在框430处,处理设备可以通过增强的调试和跟踪组件来收集由微服务生成的数据点的目标集。在一种实现方式中,调试模式动态地适配于基于异常的类型和对应于微服务的服务水平协议放大或缩小所收集的数据点的量。在框440处,处理设备可以通过增强的调试和跟踪组件使用匹配过程来处理收集到的数据的目标集,以生成时间戳、上下文的标签,并标记收集到的数据集的每个数据点。最后,在框450处,处理设备可以通过增强的调试和跟踪组件来使经处理的数据可用于服务的全局代理,以供在服务的完整上下文场景中对异常进行分析。
图5是图示出用于微服务体系结构的基于匹配的增强的调试的服务水平实现方式的方法500的实施例的流程图。方法500可由处理逻辑执行,该处理逻辑可包括硬件(例如,电路系统、专用逻辑、可编程逻辑等)、软件(诸如在处理设备上运行的指令)、或其组合。更具体地,方法500可以采用一组逻辑指令被实现为一个或多个模块,这些逻辑指令被存储在诸如RAM、ROM、PROM、固件、闪存存储器等之类的机器或计算机可读存储介质(本文中也被称为非瞬态计算机可读存储介质)中,被存储在诸如例如PLA、FPGA、CPLD等之类的可配置逻辑中,被存储在使用诸如例如ASIC、CMOS或TTL技术等之类的电路技术的固定功能逻辑硬件中,或被存储在以上各项的任何组合中。
出于呈现的简洁性和清楚性起见,方法500的过程按线性顺序图示;然而,构想了它们中的任何数量可以并行地、异步地或按不同次序来执行。此外,为了简洁、清楚和易于理解,参照图1-图4所描述的组件和过程中的许多组件和过程可能不会在下文中重复或讨论。在一种实现方式中,实现服务平台的服务管理组件的数据中心系统(诸如执行图3的服务平台300的服务管理组件340的处理设备)可以执行方法500。
图5的方法500的示例过程开始于框510,其中处理设备可以通过服务的全局增强的调试和跟踪组件,生成服务的配置概览。在一种实现方式中,配置概览可以详细说明服务的所部署的微服务的硬件和软件组件,以及所部署的微服务之间的交互。在框520处,处理设备可以检测服务中的异常。
随后,在框530处,处理设备可以基于检测到的异常,标识微服务集以启用调试模式,该微服务集是基于配置概览标识的。在框540处,处理设备可以与微服务集进行通信,以使调试模式在微服务集中被启用。在一种实现方式中,调试模式可以基于异常的类型和服务的SLA在微服务集中的不同水平被启用。
接着,在框550处,处理设备可以从微服务集接收经处理的调试和跟踪数据,经处理的调试和跟踪数据在调试模式期间生成,并使用微服务集处的匹配过程进行处理。在一种实现方式中,匹配过程可以将时间戳和上下文标签附接至经处理的调试和跟踪数据。最后,在框560处,处理设备可以基于从微服务集接收的经处理的调试和跟踪数据并基于配置概览,对服务执行异常的全局分析。
图6是根据一些实施例的用于启用用于微服务体系结构的基于匹配的增强的调试的说明性电子计算设备600的示意图。在一些实施例中,计算设备600包括一个或多个处理器610,该一个或多个处理器610包括一个或多个处理器核心618,该一个或多个处理器核心618包括增强的调试/跟踪组件(enhanced debug/trace component,EDTC)615,诸如相对于图1和图3所描述的增强的调试/跟踪组件170、338、348。在一些实施例中,一个或多个处理器核心618建立TEE以主控EDTC 615。在一些实施例中,计算设备600包括硬件加速器668,硬件加速器668包括增强的调试/跟踪组件682,诸如相对于图1和图3所描述的增强的调试/跟踪组件170、338、348。在一些实施例中,硬件加速器668建立TEE以主控增强的调试/跟踪组件682。在一些实施例中,计算设备用于为微服务体系结构提供基于匹配的增强的调试,如在图1-图5中所提供的。
计算设备600可附加地包括以下各项中的一项或多项:缓存662、图形处理单元(GPU)612(在一些实现方式中,可以是硬件加速器)、无线输入/输出(I/O)接口620、有线I/O接口630、系统存储器640(例如,存储器电路系统)、功率管理电路系统650、非瞬态存储设备660、以及用于连接至网络672的网络接口670。下列讨论提供对形成说明性的计算设备600的组件的简洁的、一般性的描述。例如,非限制性计算设备600可包括桌面型计算设备、刀片式服务设备、工作站、或类似的设备或系统。
在实施例中,处理器核心618能够执行机器可读指令集614,从一个或多个存储设备660读取数据和/或指令集614,并且将数据写入到一个或多个存储设备660。相关领域的技术人员将领会,所图示的实施例以及其他实施例可利用其他基于处理器的设备配置来实施,这些基于处理器的设备配置包括便携式电子设备或手持式电子设备,例如,智能电话、便携式计算机、可穿戴计算机、消费电子产品、个人计算机(“personal computer,PC”)、网络PC、小型计算机、服务器刀片、大型计算机,等等。
处理器核心618可包括任何数量的硬连线或可配置电路,其中的一些或全部可包括部分或完全地设置在能够执行处理器可读指令的PC、服务器或其他计算系统中的电子组件、半导体器件和/或逻辑元件的可编程和/或可配置组合。
计算设备600包括总线或类似的通信链路616,该总线或类似的通信链路616可通信地耦合各种系统组件,并且促进各种系统组件之间的信息和/或数据的交换,这些系统组件包括处理器核心618、缓存662、图形处理器电路系统612、一个或多个无线I/O接口620、一个或多个有线I/O接口630、一个或多个存储设备660、和/或一个或多个网络接口670。计算设备600在本文中能以单数形式引用,但是这不旨在将实施例限于单个计算设备600,因为在某些实施例中,可存在合并、包括、或包含任何数量的可通信地耦合的、并置的、或远程联网的电路或设备的多于一个的计算设备600。
处理器核心618可包括能够执行机器可读指令集的任何数量、类型的当前可用的或未来开发的设备或这些设备的任何组合。
处理器核心618可包括(耦合到)但不限于任何当前的或未来开发的单核心或多核心处理器或微处理器,诸如:一个或多个片上系统(SOC);中央处理单元(CPU);数字信号处理器(DSP);图形处理单元(GPU);专用集成电路(ASIC)、可编程逻辑单元、现场可编程门阵列(FPGA)等。除非另有说明,否则图6中所示的各种框的构造和操作是常规设计。因此,此类框未在本文中进一步详细地描述,因为相关领域的技术人员可能会理解这些框。将计算设备600的组件中的至少一些组件互连起来的总线616可采用任何当前可用的或未来开发的串行或并行总线结构或架构。
系统存储器640可包括只读存储器(“ROM”)642和随机存取存储器(“RAM”)646。ROM642的部分可用于存储或以其他方式保留基本输入/输出系统(“basic input/outputsystem,BIOS”)644。BIOS 644例如通过使处理器核心618加载和/或执行一个或多个机器可读指令集614来向计算设备600提供基本功能。在实施例中,一个或多个机器可读指令集614中的至少一些使得处理器核心618的至少部分提供、创建、产生、转变和/或充当专用、指定且特定的机器,例如文字处理机、数字图像采集机、媒体播放机、游戏系统、通信设备、智能电话等等。
计算设备600可包括至少一个无线输入/输出(I/O)接口620。至少一个无线I/O接口620可以可通信地耦合至一个或多个物理输出设备622(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个无线I/O接口620可以可通信地耦合至一个或多个物理输入设备624(指点设备、触摸屏、键盘、触觉设备等)。至少一个无线I/O接口620可包括任何当前可用的或未来开发的无线I/O接口。示例无线I/O接口包括但不限于:近场通信(near field communication,NFC)、和类似物。
计算设备600可包括一个或多个有线输入/输出(I/O)接口630。至少一个有线I/O接口630可以可通信地耦合至一个或多个物理输出设备622(触觉设备、视频显示器、音频输出设备、硬副本输出设备等)。至少一个有线I/O接口630可以可通信地耦合至一个或多个物理输入设备624(指点设备、触摸屏、键盘、触觉设备等)。有线I/O接口630可包括任何当前可用的或未来开发的I/O接口。示例有线I/O接口包括但不限于:通用串行总线(universalserial bus,USB)、IEEE 1394(“火线”)、和类似物。
计算设备600可包括一个或多个可通信地耦合的非瞬态数据存储设备660。数据存储设备660可包括一个或多个硬盘驱动器(hard disk drive,HDD)和/或一个或多个固态存储设备(solid-state storage device,SSD)。一个或多个数据存储设备660可包括任何当前或未来开发的存储装置、网络存储设备和/或系统。此类数据存储设备660的非限制性示例可包括但不限于任何当前或未来开发的非瞬态存储装置或设备,诸如,一个或多个磁存储设备、一个或多个光存储设备、一个或多个电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备或其各种组合。在一些实现方式中,一个或多个数据存储设备660可包括一个或多个可移除存储设备,诸如,能够可通信地耦合至计算设备600和从计算设备600解耦的一个或多个闪存驱动器、闪存存储器、闪存存储单元、或类似装置或设备。
一个或多个数据存储设备660可包括将相应的存储设备或系统通信地耦合至总线616的接口或控制器(未示出)。一个或多个数据存储设备660可存储、保留或以其他方式包含对于处理器核心618和/或图形处理器电路系统612和/或在处理器核心618和/或图形处理器电路系统612上执行或由处理器核心618和/或图形处理器电路系统612执行的一个或多个应用有用的机器可读指令集、数据结构、程序模块、数据存储、数据库、逻辑结构和/或其他数据。在一些实例中,一个或多个数据存储设备660可以例如经由总线616、或经由一个或多个有线通信接口630(例如,通用串行总线或USB)、一个或多个无线通信接口620(例如,近场通信或NFC)、和/或一个或多个网络接口670(IEEE 802.3或以太网、IEEE802.11或/>等等)而可通信地耦合至处理器核心618。
处理器可读指令集614和其他程序、应用、逻辑集合和/或模块可整体或部分地存储在系统存储器640中。此类指令集614可整体或部分地从一个或多个数据存储设备660转移。指令集614在由处理器核心618和/或图形处理器电路系统612执行期间可整体或部分地被加载、被存储、或以其他方式被保留在系统存储器640中。
计算设备600可包括功率管理电路系统650,该功率管理电路系统650控制能量存储设备652的一个或多个操作方面。在实施例中,能量存储设备652可包括一个或多个主(即,非可重新充电的)电池或辅助(即,可重新充电的)电池或类似的能量存储设备。在实施例中,能量存储设备652可包括一个或多个超级电容器或超超级电容器。在实施例中,功率管理电路系统650可改变、调整或控制从外部功率源654到能量存储设备652和/或到计算设备600的能量流。功率源654可包括但不限于太阳能电力系统、商用电网、便携式发电机、外部能量存储设备、或其任何组合。
为方便起见,处理器核心618、图形处理器电路系统612、无线I/O接口620、有线I/O接口630、存储设备660和网络接口670被图示为经由总线616通信地彼此耦合,由此提供上文所描述的组件之间的连接性。在替代实施例中,上文所描述的组件可以以与图6中所图示的不同的方式通信地耦合。例如,上文所描述的组件中的一个或多个组件可直接耦合至其他组件,或者可经由一个或多个中间组件(未示出)彼此耦合。在另一示例中,上文所描述的组件中的一个或多个组件可被集成到处理器核心618和/或图形处理器电路系统612中。在一些实施例中,可省略总线616的全部或部分,并且使用合适的有线或无线连接直接将组件彼此耦合。
以下示例涉及进一步的实施例。示例1是一种用于促进用于微服务体系结构的基于匹配的增强的调试的装置。示例1的装置包括一个或多个处理器,该一个或多个处理器用于:通过由容器主控的微服务的边车中的异常检测器,检测微服务生成的遥测数据中的异常,该微服务在由一个或多个处理器执行的容器中主控,并且是应用的服务的一部分;通过边车的增强的调试和跟踪组件,在微服务中启用调试模式,该调试模式基于异常的类型;通过增强的调试和跟踪组件,收集由微服务生成的数据点的目标集;通过增强的调试和跟踪组件,用匹配过程处理数据点的目标集,以生成用于数据点的目标集的每个数据点的上下文的时间戳和标签;以及通过增强的调试和跟踪组件,使用匹配过程处理的数据点的目标集可用于服务的全局代理以进行异常的分析。
在示例2中,示例1的主题可以任选地包括,其中调试模式在微服务的运行时期间适于基于异常的类型和对应于微服务的服务水平协议来放大或缩小所收集的数据点的量。在示例3中,示例1-2中的任一项的主题可以任选地包括,其中全局代理用于:生成服务的配置概览,该配置概览详细描述服务的所部署的微服务的硬件和软件组件以及服务的所部署的微服务之间的交互;从微服务接收用匹配过程处理的数据点的目标集;从服务的一个或多个其他微服务接收用匹配过程处理的数据点的其他目标集;以及基于从微服务接收的数据点的目标集和从一个或多个其他微服务接收的数据点的其他目标集来执行对服务的异常的全局分析,其中全局分析进一步基于配置概览。
在示例4中,示例1-3中的任一项的主题可以任选地包括,其中全局代理进一步用于:检测服务中的服务水平异常;基于服务水平异常,标识要启用调试模式的微服务集,该微服务集是基于配置概览标识的;以及与微服务集进行通信以使得调试模式在微服务集中被启用,其中,基于服务的服务水平异常的类型和服务水平协议,在微服务集中的不同水平启用调试模式。
在示例5中,示例1-4中的任一项的主题可以任选地包括,其中数据点的目标集包括从主控容器的平台的不同组件生成的数据,其中不同组件包括对跨越超过容器的错误的活动的指示,并且其中不同组件至少包括计数器或操作系统(OS)活动跟踪。在示例6中,示例1-5中的任一项的主题可以任选地包括,其中数据点的目标集的一个或多个数据点包括经加密的数据。
在示例7中,示例1-6中的任一项的主题可以任选地包括,其中与容器相关联的本地促进器用于从主控容器的平台的特权空间收集数据点的目标集的一部分。在示例8中,示例1-7中的任一项的主题可以任选地包括,其中上下文的标签包括数据点的源、与数据点相关联的子组件、微服务标识符(ID)或线程ID中的至少一者,并且其中源包括至少一个用户空间或特权空间。
在示例9中,示例1-8中的任一项的主题可以任选地包括,其中启用调试模式包括部署一个或多个重复微服务容器以运行与微服务的容器相同的操作集,以及从一个或多个重复微服务容器收集所生成的数据点的目标集。在示例10中,示例1-9中的任一项的主题可以任选地包括,其中微服务被配置成用于以下各项中的至少一者:在与服务的一个或多个其他微服务相同的节点上运行,或在与服务的一个或多个其他微服务不同的节点上运行。
示例11是一种用于促进用于微服务体系结构的基于匹配的增强的调试的非暂态计算机可读存储介质。如示例11所述的非暂态计算机可读存储介质具有存储于其上的可执行计算机程序指令,这些可执行计算机程序指令当由一个或多个处理器执行时,使这一个或多个处理器执行包括以下步骤的操作:通过由一个或多个处理器执行的容器主控的微服务的边车中的异常检测器,检测微服务生成的遥测数据中的异常,该微服务在由一个或多个处理器执行的容器中主控,并且是应用的服务的一部分;通过边车的增强的调试和跟踪组件,在微服务中启用调试模式,该调试模式基于异常的类型;通过增强的调试和跟踪组件,收集由微服务生成的数据点的目标集;通过增强的调试和跟踪组件,用匹配过程处理数据点的目标集,以生成用于数据点的目标集的每个数据点的上下文的时间戳和标签;以及通过增强的调试和跟踪组件,使得用匹配过程处理的数据点的目标集可用于服务的全局代理以进行异常的分析。
在示例12中,示例11的主题可以任选地包括,其中调试模式在微服务的运行时期间适于基于异常的类型和对应于微服务的服务水平协议来放大或缩小所收集的数据点的量。在示例13中,示例11-12的主题可以任选地包括,其中全局代理用于:生成服务的配置概览,该配置概览详细描述服务的所部署的微服务的硬件和软件组件以及服务的所部署的微服务之间的交互;从服务的一个或多个其他微服务接收用匹配过程处理的数据点的其他目标集;以及基于从微服务接收的数据点的目标集和从一个或多个其他微服务接收的数据点的其他目标集来执行对服务的异常的全局分析,其中全局分析进一步基于配置概览。
在示例14中,示例11-13的主题可以任选地包括,其中全局代理进一步用于:检测服务中的服务水平异常;基于服务水平异常,标识要启用调试模式的微服务集,该微服务集是基于配置概览标识的;以及与微服务集进行通信以使得调试模式在微服务集中被启用,其中,基于服务的服务水平异常的类型和服务水平协议,在微服务集中的不同水平启用调试模式。在示例15中,示例11-14的主题可以任选地包括,其中上下文的标签包括数据点的源、与数据点相关联的子组件、微服务标识符(ID)或线程ID中的至少一者,并且其中源包括至少一个用户空间或特权空间。
示例16是一种用于促进用于微服务体系结构的基于匹配的增强的调试的方法。示例16的方法可以包括:通过微服务的边车中的异常检测器,检测微服务生成的遥测数据中的异常,该微服务在由一个或多个处理器执行的容器中主控,并且是应用的服务的一部分;通过边车的增强的调试和跟踪组件,在微服务中启用调试模式,该调试模式基于异常的类型;通过增强的调试和跟踪组件,收集由微服务生成的数据点的目标集;通过增强的调试和跟踪组件,用匹配过程处理数据点的目标集,以生成用于数据点的目标集的每个数据点的上下文的时间戳和标签;以及通过增强的调试和跟踪组件,使用匹配过程处理的数据点的目标集可用于服务的全局代理以进行异常的分析。
在示例17中,示例16的主题可以任选地包括,其中调试模式在微服务的运行时期间适于基于异常的类型和对应于微服务的服务水平协议来放大或缩小所收集的数据点的量。在示例18中,示例16-17的主题可以任选地包括,其中全局代理用于:生成服务的配置概览,该配置概览详细描述服务的所部署的微服务的硬件和软件组件以及服务的所部署的微服务之间的交互;从服务的一个或多个其他微服务接收用匹配过程处理的数据点的其他目标集;以及基于从微服务接收的数据点的目标集和从一个或多个其他微服务接收的数据点的其他目标集来执行对服务的异常的全局分析,其中全局分析进一步基于配置概览。
在示例19中,示例16-18的主题可以任选地包括,其中全局代理进一步用于:检测服务中的服务水平异常;基于服务水平异常,标识要启用调试模式的微服务集,该微服务集是基于配置概览标识的;以及与微服务集进行通信以使得调试模式在微服务集中被启用,其中,基于服务的服务水平异常的类型和服务水平协议,在微服务集中的不同水平启用调试模式。在示例20中,示例16-19的主题可以任选地包括,其中上下文的标签包括数据点的源、与数据点相关联的子组件、微服务标识符(ID)或线程ID中的至少一者,并且其中源包括至少一个用户空间或特权空间。
示例21是一种用于促进用于微服务体系结构的基于匹配的增强的调试的系统。示例21的系统可以任选地包括:存储器,用于存储数据块;以及处理器,可通信地耦合至存储器,该处理器用于:通过由容器主控的微服务的边车中的异常检测器,检测微服务生成的遥测数据中的异常,该微服务在由处理器执行的容器中主控,并且是应用的服务的一部分;通过边车的增强的调试和跟踪组件,在微服务中启用调试模式,该调试模式基于异常的类型;通过增强的调试和跟踪组件,收集由微服务生成的数据点的目标集;通过增强的调试和跟踪组件,用匹配过程处理数据点的目标集,以生成用于数据点的目标集的每个数据点的上下文的时间戳和标签;以及通过增强的调试和跟踪组件,使用匹配过程处理的数据点的目标集可用于服务的全局代理以进行异常的分析。
在示例22中,示例21的主题可以任选地包括,其中调试模式在微服务的运行时期间适于基于异常的类型和对应于微服务的服务水平协议来放大或缩小所收集的数据点的量。在示例23中,示例21-22中任一项的主题可以任选地包括,其中全局代理用于:生成服务的配置概览,该配置概览详细描述服务的所部署的微服务的硬件和软件组件以及服务的所部署的微服务之间的交互;从微服务接收用匹配过程处理的数据点的目标集;从服务的一个或多个其他微服务接收用匹配过程处理的数据点的其他目标集;以及基于从微服务接收的数据点的目标集和从一个或多个其他微服务接收的数据点的其他目标集来执行对服务的异常的全局分析,其中全局分析进一步基于配置概览。
在示例24中,示例21-23中的任一项的主题可以任选地包括,其中全局代理进一步用于:检测服务中的服务水平异常;基于服务水平异常,标识要启用调试模式的微服务集,该微服务集是基于配置概览标识的;以及与微服务集进行通信以使得调试模式在微服务集中被启用,其中,基于服务的服务水平异常的类型和服务水平协议,在微服务集中的不同水平启用调试模式。
在示例25中,示例21-24中的任一项的主题可以任选地包括,其中数据点的目标集包括从主控容器的平台的不同组件生成的数据,其中不同组件包括对跨越超过容器的错误的活动的指示,并且其中不同组件至少包括计数器或操作系统(OS)活动跟踪。在示例26中,示例21-25中的任一项的主题可以任选地包括,其中数据点的目标集的一个或多个数据点包括经加密的数据。
在示例27中,示例21-26中的任一项的主题可以任选地包括,其中于容器相关联的本地促进器用于从主控容器的平台的特权空间收集数据点的目标集的一部分。在示例28中,示例21-27中的任一项的主题可以任选地包括,其中上下文的标签包括数据点的源、与数据点相关联的子组件、微服务标识符(ID)或线程ID中的至少一者,并且其中源包括至少一个用户空间或特权空间。
在示例29中,示例21-28中的任一项的主题可以任选地包括,其中启用调试模式包括部署一个或多个重复微服务容器以运行与微服务的容器相同的操作集,以及从一个或多个重复微服务容器收集所生成的数据点的目标集。在示例30中,示例21-29中的任一项的主题可以任选地包括,其中微服务被配置成用于以下各项中的至少一者:在与服务的一个或多个其他微服务相同的节点上运行,或在与服务的一个或多个其他微服务不同的节点上运行。
示例30是一种用于促进用于微服务体系结构的基于匹配的增强的调试的设备,该设备包括:用于通过微服务的边车中的异常检测器来检测微服务生成的遥测数据中的异常的装置,该微服务在由一个或多个处理器执行的容器中主控,并且是应用的服务的一部分;用于通过边车的增强的调试和跟踪组件来在微服务中启用调试模式的装置,该调试模式基于异常的类型;用于通过增强的调试和跟踪组件来收集由微服务生成的数据点的目标集的装置;用于通过增强的调试和跟踪组件,用匹配过程处理数据点的目标集,以生成用于数据点的目标集的每个数据点的上下文的时间戳和标签的装置;以及用于通过增强的调试和跟踪组件,使得用匹配过程处理的数据点的目标集可用于服务的全局代理以进行异常的分析的装置。在示例31中,如示例30所述的主题可以可选地包括进一步被配置成用于执行如示例17至20中任一项所述的方法的设备。
示例32是至少一种机器可读介质,包括多个指令,该多个指令响应于在计算设备上被执行而使该计算设备执行根据示例16-20中任一项所述的方法。示例33是一种用于促进用于微服务体系结构的基于匹配的增强的调试的装置,该装置被配置成用于执行示例16-20中的任一项的方法。示例34是一种用于促进用于微服务体系结构的基于匹配的增强的调试的设备,该设备包括用于执行示例16至20中的任一项的方法的装置。示例中的细节可以在一个或多个实施例中的任何地方使用。
前述说明书和附图应以说明性意义而非限制性意义来看待。本领域技术人员能够理解,可对本文中描述的实施例作出各种修改和改变,而不背离如所附权利要求所述的特征的更宽泛的精神和范围。
Claims (25)
1.一种装置,包括:
一个或多个处理器,用于:
通过由容器主控的微服务的边车中的异常检测器,检测所述微服务生成的遥测数据中的异常,所述微服务在由所述一个或多个处理器执行的容器中主控,并且是应用的服务的一部分;
通过所述边车的增强的调试和跟踪组件,在所述微服务中启用调试模式,所述调试模式基于所述异常的类型;
通过所述增强的调试和跟踪组件,收集由所述微服务生成的数据点的目标集;
通过增强的调试和跟踪组件,用匹配过程处理数据点的目标集,以生成用于数据点的所述目标集的每个数据点的上下文的时间戳和标签;以及
通过所述增强的调试和跟踪组件,使得用所述匹配过程处理的数据点的所述目标集可用于所述服务的全局代理以进行所述异常的分析。
2.如权利要求1所述的装置,其特征在于,所述调试模式在所述微服务的运行时期间适于基于异常的所述类型和对应于所述微服务的服务水平协议来放大或缩小所收集的数据点的量。
3.如权利要求1-2中的任一项所述的装置,其特征在于,所述全局代理用于:
生成所述服务的配置概览,所述配置概览详细描述所述服务的所部署的微服务的硬件和软件组件以及所述服务的所部署的微服务之间的交互;
从所述微服务接收用所述匹配过程处理的数据点的所述目标集;
从所述服务的一个或多个其他微服务接收用所述匹配过程处理的数据点的其他目标集;以及
基于从所述微服务接收的数据点的所述目标集和从所述一个或多个其他微服务接收的数据点的所述其他目标集来执行对所述服务的所述异常的全局分析,其中所述全局分析进一步基于所述配置概览。
4.如权利要求1-3中的任一项所述的装置,其特征在于,所述全局代理进一步用于:
检测所述服务中的服务水平异常;
基于所述服务水平异常,标识要启用调试模式的微服务集,所述微服务集是基于所述配置概览标识的;以及
与所述微服务集进行通信以使所述调试模式在所述微服务集中被启用,其中,基于所述服务的所述服务水平异常的类型和服务水平协议,在所述微服务集中的不同水平启用所述调试模式。
5.如权利要求1-4中的任一项所述的装置,其特征在于,数据点的目标集包括从主控所述容器的平台的不同组件生成的数据,其中所述不同组件包括对跨越超过所述容器的错误的活动的指示,并且其中所述不同组件至少包括计数器或操作系统OS活动跟踪。
6.如权利要求1-5中的任一项所述的装置,其特征在于,数据点的所述目标集的一个或多个数据点包括经加密的数据。
7.如权利要求1-6中的任一项所述的装置,其特征在于,与所述容器相关联的本地促进器用于从主控所述容器的平台的特权空间收集数据点的所述目标集的一部分。
8.如权利要求1-7中的任一项所述的装置,其特征在于,上下文的所述标签包括所述数据点的源、与所述数据点相关联的子组件、微服务标识符ID或线程ID中的至少一者,并且其中所述源包括至少一个用户空间或特权空间。
9.如权利要求1-8中的任一项所述的装置,其特征在于,启用所述调试模式包括部署一个或多个重复微服务容器以运行与所述微服务的所述容器相同的操作集,以及从所述一个或多个重复微服务容器收集所生成的数据点的所述目标集。
10.如权利要求1-9中的任一项所述的装置,其特征在于,所述微服务被配置成用于以下各项中的至少一者:在与所述服务的一个或多个其他微服务相同的节点上运行,或在与所述服务的一个或多个其他微服务不同的节点上运行。
11.一种方法,包括:
通过微服务的边车中的异常检测器,检测所述微服务生成的遥测数据中的异常,所述微服务在由处理器执行的容器中主控,并且是应用的服务的一部分;
通过所述边车的增强的调试和跟踪组件,在所述微服务中启用调试模式,所述调试模式基于所述异常的类型;
通过所述增强的调试和跟踪组件,收集由所述微服务生成的数据点的目标集;
通过增强的调试和跟踪组件,用匹配过程处理数据点的目标集,以生成用于数据点的所述目标集的每个数据点的上下文的时间戳和标签;以及
通过所述增强的调试和跟踪组件,使用所述匹配过程处理的数据点的所述目标集可用于所述服务的全局代理以进行所述异常的分析。
12.如权利要求11所述的方法,其特征在于,所述调试模式在所述微服务的运行时期间适于基于异常的所述类型和对应于所述微服务的服务水平协议来放大或缩小所收集的数据点的量。
13.如权利要求11-12中的任一项所述的方法,其特征在于,所述全局代理用于:
生成所述服务的配置概览,所述配置概览详细描述所述服务的所部署的微服务的硬件和软件组件以及所述服务的所部署的微服务之间的交互;
从所述服务的一个或多个其他微服务接收用所述匹配过程处理的数据点的其他目标集;以及
基于从所述微服务接收的数据点的所述目标集和从所述一个或多个其他微服务接收的数据点的所述其他目标集来执行对所述服务的所述异常的全局分析,其中所述全局分析进一步基于所述配置概览。
14.如权利要求11-13中的任一项所述的方法,其特征在于,所述全局代理进一步用于:
检测所述服务中的服务水平异常;
基于所述服务水平异常,标识要启用调试模式的微服务集,所述微服务集是基于所述配置概览标识的;以及
与所述微服务集进行通信以使所述调试模式在所述微服务集中被启用,其中,基于所述服务的所述服务水平异常的类型和服务水平协议,在所述微服务集中的不同水平启用所述调试模式。
15.如权利要求11-14中的任一项所述的方法,其特征在于,上下文的所述标签包括所述数据点的源、与所述数据点相关联的子组件、微服务标识符ID或线程ID中的至少一者,并且其中所述源包括至少一个用户空间或特权空间。
16.一种用于促进用于微服务体系结构的基于匹配的增强的调试的系统,所述系统包括:
存储器,所述用于存储数据块;以及
处理器,通信地耦合至所述存储器,所述处理器用于:
通过由容器主控的微服务的边车中的异常检测器,检测所述微服务生成的遥测数据中的异常,所述微服务在由所述处理器执行的容器中主控,并且是应用的服务的一部分;
通过所述边车的增强的调试和跟踪组件,在所述微服务中启用调试模式,所述调试模式基于所述异常的类型;
通过所述增强的调试和跟踪组件,收集由所述微服务生成的数据点的目标集;
通过增强的调试和跟踪组件,用匹配过程处理数据点的目标集,以生成用于数据点的所述目标集的每个数据点的上下文的时间戳和标签;以及
通过所述增强的调试和跟踪组件,使用所述匹配过程处理的数据点的所述目标集可用于所述服务的全局代理以进行所述异常的分析。
17.如权利要求16所述的系统,其特征在于,所述调试模式在所述微服务的运行时期间适于基于异常的所述类型和对应于所述微服务的服务水平协议来放大或缩小所收集的数据点的量。
18.如权利要求16-17中的任一项所述的系统,其特征在于,所述全局代理用于:生成服务的配置概览,该配置概览详细描述服务的所部署的微服务的硬件和软件组件以及服务的所部署的微服务之间的交互;从微服务接收用匹配过程处理的数据点的目标集;从服务的一个或多个其他微服务接收用匹配过程处理的数据点的其他目标集;以及基于从微服务接收的数据点的目标集和从一个或多个其他微服务接收的数据点的其他目标集来执行对服务的异常的全局分析,其中全局分析进一步基于配置概览。
19.如权利要求16-18中的任一项所述的系统,其特征在于,所述全局代理进一步用于:检测服务中的服务水平异常;基于服务水平异常,标识要启用调试模式的微服务集,该微服务集是基于配置概览标识的;以及与微服务集进行通信以使得调试模式在微服务集中被启用,其中,基于服务的服务水平异常的类型和服务水平协议,在微服务集中的不同水平启用调试模式。
20.如权利要求16-19中的任一项所述的系统,其特征在于,数据点的目标集包括从主控所述容器的平台的不同组件生成的数据,其中所述不同组件包括对跨越超过所述容器的错误的活动的指示,并且其中所述不同组件至少包括计数器或操作系统OS活动跟踪。
21.如权利要求16-20中的任一项所述的系统,其特征在于,数据点的所述目标集的一个或多个数据点包括经加密的数据。
22.如权利要求16-21中的任一项所述的系统,其特征在于,与所述容器相关联的本地促进器用于从主控所述容器的平台的特权空间收集数据点的所述目标集的一部分。
23.如权利要求16-22中的任一项所述的系统,其特征在于,上下文的所述标签包括所述数据点的源、与所述数据点相关联的子组件、微服务标识符ID或线程ID中的至少一者,并且其中所述源包括至少一个用户空间或特权空间。
24.至少一种机器可读介质,包括多个指令,所述多个指令响应于在计算设备上被执行而使得所述计算设备执行根据权利要求11-15中任一项所述的方法。
25.一种用于促进用于微服务体系结构的基于匹配的增强的调试的设备,所述设备包括用于执行示例11-15中的任一项的方法的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/556,044 US20230195597A1 (en) | 2021-12-20 | 2021-12-20 | Matchmaking-based enhanced debugging for microservices architectures |
US17/556,044 | 2021-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302306A true CN116302306A (zh) | 2023-06-23 |
Family
ID=83903176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211511911.1A Pending CN116302306A (zh) | 2021-12-20 | 2022-11-29 | 用于微服务体系结构的基于匹配的增强的调试 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230195597A1 (zh) |
EP (1) | EP4198739A1 (zh) |
CN (1) | CN116302306A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11770377B1 (en) * | 2020-06-29 | 2023-09-26 | Cyral Inc. | Non-in line data monitoring and security services |
US12047440B2 (en) * | 2021-10-05 | 2024-07-23 | International Business Machines Corporation | Managing workload in a service mesh |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10042697B2 (en) * | 2015-05-28 | 2018-08-07 | Oracle International Corporation | Automatic anomaly detection and resolution system |
US11805107B2 (en) * | 2016-10-24 | 2023-10-31 | Nubeva, Inc. | Extracting encryption keys to enable monitoring services |
US10244034B2 (en) * | 2017-03-29 | 2019-03-26 | Ca, Inc. | Introspection driven monitoring of multi-container applications |
US10691514B2 (en) * | 2017-05-08 | 2020-06-23 | Datapipe, Inc. | System and method for integration, testing, deployment, orchestration, and management of applications |
JP2020113924A (ja) * | 2019-01-15 | 2020-07-27 | 富士通株式会社 | モニタリングプログラム,プログラマブルデバイス及びモニタリング方法 |
US11184236B2 (en) * | 2019-04-30 | 2021-11-23 | Intel Corporation | Methods and apparatus to control processing of telemetry data at an edge platform |
US11455224B2 (en) * | 2019-05-16 | 2022-09-27 | Citrix Systems, Inc | Displaying a service graph in association with a time of a detected anomaly |
US11811801B2 (en) * | 2019-08-21 | 2023-11-07 | Nokia Solutions And Networks Oy | Anomaly detection for microservices |
US11003572B2 (en) * | 2019-09-11 | 2021-05-11 | International Business Machines Corporation | Traffic-based mutation/coverage testing requirements |
US20210117242A1 (en) * | 2020-10-03 | 2021-04-22 | Intel Corporation | Infrastructure processing unit |
US11494250B1 (en) * | 2021-06-14 | 2022-11-08 | EMC IP Holding Company LLC | Method and system for variable level of logging based on (long term steady state) system error equilibrium |
-
2021
- 2021-12-20 US US17/556,044 patent/US20230195597A1/en not_active Abandoned
-
2022
- 2022-10-20 EP EP22202734.4A patent/EP4198739A1/en active Pending
- 2022-11-29 CN CN202211511911.1A patent/CN116302306A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4198739A1 (en) | 2023-06-21 |
US20230195597A1 (en) | 2023-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210117249A1 (en) | Infrastructure processing unit | |
US11880287B2 (en) | Management of microservices failover | |
US8762538B2 (en) | Workload-aware placement in private heterogeneous clouds | |
EP4198739A1 (en) | Matchmaking-based enhanced debugging for microservices architectures | |
US11558265B1 (en) | Telemetry targeted query injection for enhanced debugging in microservices architectures | |
US20220012095A1 (en) | Metrics and security-based accelerator service rescheduling and auto-scaling using a programmable network device | |
US11570264B1 (en) | Provenance audit trails for microservices architectures | |
US20230195601A1 (en) | Synthetic data generation for enhanced microservice debugging in microservices architectures | |
US20220100566A1 (en) | Metrics-based scheduling for hardware accelerator resources in a service mesh environment | |
US10147110B2 (en) | Methods and systems to evaluate cost driver and virtual data center costs | |
US12099427B2 (en) | Machine learning for metric collection | |
CN116319240A (zh) | 使用用于确定性微服务性能的交互式矩阵的规模化遥测 | |
US10031768B2 (en) | Host-gateway-facilitated aggregation of host-computer clusters | |
US11184244B2 (en) | Method and system that determines application topology using network metrics | |
US20170371872A1 (en) | Method and subsystem that efficiently store metric data | |
US11481300B2 (en) | Processes and systems that detect abnormal behavior of objects of a distributed computing system | |
US12079663B2 (en) | Provisioning of physical servers through hardware composition | |
EP4261752A1 (en) | Machine learning for rule recommendation | |
EP4261689A1 (en) | Machine learning for rule evaluation | |
US20240211368A1 (en) | Machine learning for metric collection | |
US20240320043A1 (en) | Virtual execution environment power usage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |