CN108259554B - 网络实体在监视代理之中的动态分配 - Google Patents

网络实体在监视代理之中的动态分配 Download PDF

Info

Publication number
CN108259554B
CN108259554B CN201711232433.XA CN201711232433A CN108259554B CN 108259554 B CN108259554 B CN 108259554B CN 201711232433 A CN201711232433 A CN 201711232433A CN 108259554 B CN108259554 B CN 108259554B
Authority
CN
China
Prior art keywords
message
network service
entity
queue
sending
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.)
Active
Application number
CN201711232433.XA
Other languages
English (en)
Other versions
CN108259554A (zh
Inventor
普拉沙恩斯·卡提戈·纳格沙帕
维贾雅库马尔·班加洛雷·苏巴拉奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN108259554A publication Critical patent/CN108259554A/zh
Application granted granted Critical
Publication of CN108259554B publication Critical patent/CN108259554B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/091Measuring contribution of individual network components to actual service level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/14Arrangements for monitoring or testing data switching networks using software, i.e. software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及网络实体在监视代理之中的动态分配。描述了将实体监视分配动态地分配给多个监视代理的技术。在一个示例中,协同定位设施的处理器执行多个网络服务监视代理。多个监视代理的第一监视代理向消息服务发送指令,使所述消息服务将多个消息的第一消息从队列中去除,其中,所述第一消息描述多个网络服务实体中的第一网络服务实体。所述监视代理向第一监视代理发送第一消息。所述第一监视代理从第一消息描述的第一网络服务实体检索第一网络服务实体的性能和健康度量。所述第一监视代理将第一网络服务实体的性能和健康度量发送给消息服务,并且用于发送给协同定位设施的数据库。

Description

网络实体在监视代理之中的动态分配
技术领域
本公开总体上涉及计算机网络。
背景技术
网络服务提供商正在越来越多地向来自客户装置的分组流提供网络服务,例如,安全、隧道、虚拟专用网络、过滤、负载均衡、VoIP/多媒体处理和各种类型的应用代理(HTTP、XML、WAP等)。服务提供商还提供旨在提高用户体验质量的内容特定服务,例如,视频流和缓存。为了提供这些新服务,服务提供商经常求助于专门的专用物理或虚拟装置。在某些情况下,路由器或其他网络装置已经被修改为包括向传入的分组应用各种服务的额外硬件或软件。例如,安装在路由器的服务平面中的线路卡可以被配置为执行诸如上述服务等特定服务。在另一示例中,服务提供商已经部署了专门的物理和/或虚拟装置的复杂的服务组合,来将服务应用到客户分组流。
发明内容
本公开描述了用于向多个监视代理动态分配实体监视分配的技术。如本文所述的系统包括多个实体,例如,物理装置和/或VNF,其向云交换服务的客户提供一个或多个网络互连服务。该系统还包括多个监视代理,监视多个实体中的每个实体(即,收集多个实体中的每个实体的性能和健康度量)。所述系统还包括消息队列,用于保存描述用于监视所述多个实体的序列的信息以及足以使所述多个监视代理识别所述多个实体并且从所述多个实体中的每个实体中检索性能和健康度量的信息。该系统还包括用于存储每个受监视实体的性能和健康度量的时间序列数据库。在一些示例中,系统还包括接口,例如,基于浏览器的接口或命令行接口(CLI),其允许用户从时间序列数据库中检索或查看性能和健康度量,将实体添加到用于监视的队列或将其删除,并实例化或破坏到系统的额外监视代理。
在一个示例中,一种方法包括:由协同定位设施的一个或多个处理器执行多个网络服务监视代理,其中,执行所述多个网络服务监视代理包括:由所述多个网络服务监视代理的第一网络服务监视代理向所述协同定位设施的消息服务发送指令,所述指令促使所述消息服务:将多个消息的第一消息从队列中去除,其中,所述第一消息描述多个网络服务实体中的第一网络服务实体;并且向第一网络服务监视代理发送第一消息;由第一网络服务监视代理从消息服务中接收第一消息;由第一网络服务监视代理从由第一消息描述的第一网络服务实体中检索第一网络服务实体的性能和健康度量;并且由所述第一网络服务监视代理将第一网络服务实体的性能和健康度量发送给消息服务,并且用于发送给协同定位设施的数据库。
在另一示例中,一种协同定位设施的计算装置,包括一个或多个处理器,其被配置为:执行多个网络服务监视代理,其中,在执行时,所述多个网络服务监视代理的第一网络服务监视代理被配置为:向所述协同定位设施的消息服务发送指令,所述指令促使所述消息服务:将多个消息的第一消息从队列中去除,其中,所述第一消息描述多个网络服务实体中的第一网络服务实体;并且向第一网络服务监视代理发送第一消息;从消息服务中接收第一消息;从由第一消息描述的第一网络服务实体中检索第一网络服务实体的性能和健康度量;并且将第一网络服务实体的性能和健康度量发送给消息服务,并且用于发送给协同定位设施的数据库。
在另一示例中,一种非暂时性计算机可读介质,包括指令,所述指令在被执行时促使所述协同定位设施的计算装置的一个或多个处理器:执行多个网络服务监视代理,其中,在执行所述多个网络服务监视代理时,所述多个网络服务监视代理的第一网络服务监视代理被配置为:向所述协同定位设施的消息服务发送指令,所述指令促使所述消息服务:将多个消息的第一消息从队列中去除,其中,所述第一消息描述多个网络服务实体中的第一网络服务实体;并且向第一网络服务监视代理发送第一消息;从消息服务中接收第一消息;从由第一消息描述的第一网络服务实体中检索第一网络服务实体的性能和健康度量;并且将第一网络服务实体的性能和健康度量发送给消息服务,并且用于发送给协同定位设施的数据库。
在附图和下面的描述中阐述一个或多个示例的细节。
附图说明
图1是示出具有数据中心的示例网络的方框图,其中,可以实现本文所描述的技术的示例;
图2是示出根据本公开的技术的用于向多个监视代理动态地分配实体监视分配的示例系统的方框图;
图3是示出根据本公开的技术的用于向多个监视代理动态地分配实体监视分配的示例系统的方框图;
图4是示出用于执行关于图1的系统100所讨论的技术的示例计算装置400的方框图;
图5是示出根据本公开的技术的用于向多个监视代理动态地分配实体监视分配的示例操作的流程图。
具体实施方式
在提供多个网络服务的云交换系统中,一个或多个监视代理周期性地监视大量实体,例如,物理装置和虚拟网络功能(VNF)。监视代理收集每个受监视实体的性能和健康度量,并将度量存储在中央数据库中,以供用户(例如,云交换机的客户、服务提供商或网络管理员)进行分析。通常,监视代理轮询每个实体,因为传统实体可能不支持将遥测数据推送到监视代理。此外,仅仅将相等数量的实体分配给每个监视代理,可能由于许多不同类型的大量被监视实体而产生低效率。例如,在向第一监视代理分配十几个实体(对于这些实体需要最少量的时间来检索度量)并且向第二监视代理分配十几个实体(对于这些实体需要大量时间来检索度量)的系统中,第一监视代理可能未被充分利用,而第二监视代理可能没有足够的资源来监视其在其进行监视的时间要求内被分配到的实体。没有监视代理的多个实例,使得每个监视代理周期性地仅监视所监视的实体的集合的子集,本文所描述的技术实现多个监视代理,每个监视代理共享存储下一个可用监视任务的消息队列。这种系统提供在多个监视代理之间的实体的动态和灵活分配,其允许:1)动态添加或移除一个或多个监视代理;2)一个或多个监视代理的开始、停止和失败;3)监视不同类型实体的不同时间要求;4)每个定期监测事件的不同时间要求;以及5)希望防止特定实体与特定监视代理的静态结合。
在本文描述的系统的一个示例性操作中,监视代理线程从消息队列中去除连接到下一个未决实体所需的信息。监视代理线程从该实体提取(pull)度量,并将度量上传到时间序列数据库。在完成监视操作后,监视代理线程将包含被监视实体的详细信息的新消息排入消息队列,以确保实体接收定期监视。在一些示例中,监视代理线程使用消息服务来在消息队列中将消息排队和去除。在这些示例中,消息服务可以在排队消息之前等待预定的时间,或者在去除消息之后在发送监视代理线程的消息之前等待预定的时间,以确保仅在经过预定的时间之后发生实体的监视。
在一些示例中,系统还包括促进在监视代理、队列和数据库之间交换消息的消息服务。在该示例中,监视代理线程向消息服务发出请求,以从队列中去除监视任务。消息服务又将请求传递给队列。在一些示例中,消息服务在将请求传递到队列之前保留请求达预定时间。以这种方式,系统可以确保周期性地服务每个被监视的实体。
在一些示例中,消息队列是先入先出(FIFO)队列。监视代理随后从消息队列中去除下一个消息,以在要监视的行中执行下一个实体的监视。因此,监视代理的多个实例可以服务相同的消息队列,使得消息队列中的每个实体由下一个可用监视代理服务。
当监视代理应该开始监视实体时,用户可以将包含该实体的细节的消息排入到消息队列中,使得监视代理最终去除该消息并且服务该实体。为了停止监视实体,在服务实体之后,用户可以从消息队列中删除包含实体细节的消息,从而不进行进一步的监视。或者,为了停止实体的进一步监视,监视代理可以在描述该实体的消息队列内去除任何消息。此外,为了延迟对实体的监视,当监视代理将包含实体的细节的消息排队到消息队列时,监视代理可以还包括描述在进一步对该实体进行监视之前等待的时间的消息中的信息。
因此,本文描述的技术允许基于每个监视代理正在处理的负载以及每个监视代理服务实体所需的时间,在监视代理的多个实例之中均匀地分配在系统内的多个被监视实体。此外,可以从系统动态添加或移除监视代理,而不必为每个被监视实体重新分配监视功能或影响整个监视系统的功能。这种系统可能比其他监视系统更牢固,并且更有效地将监视任务分配给监视代理。
图1是示出具有数据中心的示例网络1的方框图,其中,可以实现本文描述的技术的示例。通常,管理员28指示协调引擎30,该引擎又指导SDN控制器32实例化一个或多个监视代理104。监视代理104对数据中心10的多个实体(例如,底盘交换机22A-22M(统称为“底盘交换机22”)、机顶架(TOR)交换机24A-24N(统称为“TOR交换机24”)和服务器26A-26X(统称为“服务器26”))执行监视功能。
通常,数据中心10为由服务提供商网络6耦合到数据中心10的客户装置4提供应用和服务的操作环境。数据中心10托管基础设施设备,例如,网络和存储系统、冗余电源和环境控制。服务提供商网络6可以耦合到由其他提供商管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如,因特网)的一部分。
在一些示例中,数据中心10可以表示许多地理上分配的网络数据中心中的一个。如图1的示例中所示,数据中心10是为客户的装置4提供网络服务的设施。客户可以是企业和政府等集体实体或个人。例如,网络数据中心可以为多个企业和最终用户托管网络服务。其他示例性服务可以包括数据存储器、虚拟专用网络、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些示例中,数据中心10是单独网络服务器、网络对等体或其他。
在该示例中,数据中心10包括通过由一排或多排物理网络交换机和路由器提供的高速交换机结构21互连的一组存储系统和应用服务器26。服务器26用作数据中心的计算节点。例如,每个服务器26可以提供用于执行一个或多个客户特定虚拟机(图1中的“VM”)的操作环境。交换机结构21由耦合到底盘交换机22的分配层的一组互连的TOR交换机24提供。尽管未示出,但是数据中心10还可以包括例如一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙等安全装置、入侵检测和/或入侵防御装置、服务器、计算机终端、笔记本电脑、打印机、数据库、诸如蜂窝电话或个人数字助理等无线移动装置、无线接入点、桥接器、电缆调制解调器、应用加速器或其他网络装置。
在该示例中,TOR交换机24和底盘交换机22向服务器26提供与IP架构20的冗余(多归属)连接。底盘交换机22聚合业务流并提供TOR交换机24之间的高速连接。TOR交换机24是提供层2(例如,MAC)和/或层3(例如,IP)路由和/或交换功能的网络装置。TOR交换机24和底盘交换机22均包括一个或多个处理器和存储器,并且能够执行一个或多个软件过程。底盘交换机22耦合到IP架构20,IP架构20执行层3路由,以由服务提供商网络6在数据中心10和客户装置4之间路由网络业务。软件定义网络(“SDN”)网关8用于在IP架构20和服务提供商网络6之间转发和接收分组。
软件定义的网络(“SDN”)控制器32根据本公开的一个或多个示例在逻辑上和在一些情况下物理地提供集中的控制器,以便于数据中心10内的一个或多个虚拟网络的操作。术语SDN控制器和虚拟网络控制器(“VNC”)可以在整个本公开中互换使用。在一些示例中,SDN控制器32响应于经由北向API 31从协调引擎30接收的配置输入而操作,API 31又响应于从管理员28接收的配置输入而操作。
在一些示例中,协调引擎30管理数据中心10的功能,例如,计算、存储、联网和应用资源。例如,协调引擎30可为数据中心10内或跨数据中心的租户创建虚拟网络。协调引擎30可以将虚拟机(VM)附接到租户的虚拟网络。协调引擎30可以将租户的虚拟网络连接到某个外部网络,例如,因特网或VPN。协调引擎30可以在一组VM上或向租户网络的边界上实施安全策略。协调引擎30可以在租户的虚拟网络中部署网络服务(例如,负载平衡器)。
在一些示例中,SDN控制器32管理网络和网络服务,例如,负载平衡、安全性,并且经由南向(southbound)API 33将资源从服务器26分配到各种应用。即,南向API 33表示一组通信协议,由SDN控制器32使用这组通信协议来使网络的实际状态等于由协调引擎30指定的期望状态。例如,SDN控制器32通过配置物理交换机来实现来自协调引擎30的高级请求,例如,TOR交换机24、底盘交换机22和交换机结构21;物理路由器;物理服务节点,例如,防火墙和负载平衡器;以及VM中的虚拟服务,例如,虚拟防火墙。SDN控制器32在状态数据库内维护路由、联网和配置信息。
通常,任何两个网络装置之间的业务,例如,在IP架构20(未示出)内的网络装置之间或者在服务器26和客户装置4之间,或者在服务器26之间的业务,可以使用许多不同的路径来遍历物理网络。例如,在两个网络装置之间可能存在几个相同成本的不同路径。在一些情况下,属于从一个网络装置到另一网络装置的网络流量的分组可以在每个网络交换机节点处使用称为多路径路由的路由策略分配在各种可能路径之间。例如,因特网工程任务组(IETF)RFC 2992“Analysis of an Equal-Cost Multi-Path Algorithm(等成本多路径算法分析)”描述了一种路由技术,用于沿相同成本的多条路径路由分组。RFC 2992的技术分析一个特定的多路径路由策略,该策略涉及通过对通过单个确定路径从特定网络流中发送所有分组的分组报头字段进行散列来将流分配给储存箱(bin)。
例如,“流”可以由分组的报头中使用的五个值或“五元组”定义,即协议、源IP地址、目的地IP地址、源端口和目的地端口,用于通过物理网络路由分组。例如,协议指定通信协议,例如,TCP或UDP,源端口和目标端口是指连接的源端口和目标端口。匹配特定流条目的一个或多个分组数据单元(PDU)的组表示流。可以使用PDU的任何参数,例如,源和目的地数据链路(例如,MAC)和网络(例如IP)地址、虚拟局域网(VLAN)标签、传输层信息、多协议标签交换(MPLS)或通用MPLS(GMPLS)标签、以及接收流的网络装置的入口,将流广泛地分类。例如,流可以是在传输控制协议(TCP)连接中传输的所有PDU、由特定MAC地址或IP地址产生的所有PDU、具有相同VLAN标签的所有PDU、或在相同交换机端口处接收到的所有PDU。
如本文所描述的,每个服务器26包括相应的虚拟路由器(图1中的“VR”),该虚拟路由器对数据中心10内的相应虚拟网络执行多个路由实例,并且将分组路由到在由服务器提供的操作环境中执行的合适的虚拟机。例如,服务器26A的虚拟路由器例如从底层物理网络结构接收的分组可以包括外部报头,以允许物理网络结构穿过有效载荷或“内部分组”,进入用于执行虚拟路由器的服务器26的网络接口的物理网络地址。外部报头不仅可以包括服务器的网络接口的物理网络地址,还可以包括虚拟网络标识符,例如,VxLAN标签或多协议标签交换(MPLS)标签,其识别一个虚拟网络以及由虚拟路由器执行的相应路由实例。内部分组包括内部报头,具有符合虚拟网络标识符标识的虚拟网络的虚拟网络寻址空间的目的地网络地址。
在一些方面,虚拟路由器在发送到分组的合适的路由实例之前,缓冲并聚合从底层物理网络结构接收的多个隧道化分组。即,在服务器26中之一上执行的虚拟路由器可以从TOR交换机24接收分组流的输入隧道分组,并且在将隧道分组路由到本地执行的虚拟机之前,处理隧道分组,以构建单个聚合隧道分组,以转发到虚拟机。即,虚拟路由器可以缓冲多个输入隧道分组,并构造单个隧道分组,其中,将多个隧道分组的有效载荷组合成单个有效载荷,并且去除隧道分组上的外部/覆盖头部,并用单个头部虚拟网络标识符替换。以这种方式,虚拟路由器可以将聚合隧道分组转发到虚拟机,就好像从虚拟网络接收单个输入隧道分组一样。此外,为了执行聚合操作,虚拟路由器可以利用基于内核的卸载引擎,该引擎无缝地、自动地引导隧道分组的聚合。
在一些示例实现方式中,在服务器26上执行的虚拟路由器引导在多个处理器核之间接收的输入隧道分组,以便于在处理用于路由到一个或多个虚拟和/或物理机器的分组时,在核心之间进行分组处理负载平衡。作为一个示例,服务器26A包括多个网络接口卡和多个处理器核,以执行虚拟路由器并且在多个处理器核之间引导接收的分组,以便于核心之间进行分组处理负载平衡。例如,服务器26A的特定网络接口卡可以与网络接口卡将所有接收到的分组引向的指定的处理器核相关联。各种处理器核并非处理每个接收到的分组,而是根据应用于内部和外部分组报头中的至少一个的散列函数,将流卸载到一个或多个其他处理器核,用于处理,以利用其他处理器核的可用工作周期。
在本文描述的系统的一个示例性操作中,监视代理线程104从消息队列108中去除连接到下一个未决实体所需的信息,例如,底盘(chassis)交换机22、TOR交换机24、服务器26、或由服务器26执行的VR或VM中的一个。监视代理线程104从实体中提取度量,并将度量上传到数据库114,数据库114可以表示时间序列数据库。在完成该监视操作时(或者可能在延迟一段时间之后),监视代理线程104将具有为包含被监视实体的细节的延迟量预设的“延迟”选项的新消息排入消息队列,以确保实体接收定期监视。监视代理线程104随后从消息队列108去除下一个消息,以在要监视的行中执行下一个实体的监视。因此,监视代理线程104的多个实例可以服务相同的消息队列108,使得由消息队列108描述的每个实体由下一个可用监视代理104服务。因此,不是将监视代理线程明确地分配给实体,监视代理线程104可以基于来自消息队列108的出队消息的信息,在特定时间确定要监视哪些实体。
管理员28可以指示监视代理104开始监视一个实体。作为响应,SDN控制器32(或一个监视代理104)可以将包含实体的细节的消息排入到消息队列108,使得最终(即,从队列去除消息之前,一旦具有其他入队消息),监视代理104从队列去除消息并且服务该实体。为了停止监视实体,在服务实体之后,监视代理104不将包含实体细节的新消息排入消息队列108,并且简单地丢弃包含实体的细节的原始消息。此外,为了延迟监视实体,监视代理104在将包含实体的细节的消息排入消息队列108之前等待预定的时间量。在其他示例中,监视代理104可以包括在描述在进一步进行实体的监视之前等待的时间的消息中的信息。
因此,本文描述的技术允许基于每个监视代理104当前正在处理的负载和每个监视代理104需要服务实体的时间,在多个监视代理程序104的多个实例之间,为系统内的多个监视实体分配监视功能。此外,监视代理104可以被动态地添加到系统或从系统中移除,而不必为每个被监视的实体104重新分配监视功能或影响整个监视系统的功能。这种系统可能比其他监视系统更加牢固,并且更有效地将监视任务分配到监视代理104。
例如,在向第一监视代理分配需要最少量的时间来检索度量的十几个实体并且向第二监视代理分配需要大量时间来检索度量的十几个实体的另一系统中,第一监视代理可能未被充分利用或空闲大量的时间。相反,第二监视代理可能没有足够的资源来监视其在其进行监视的时间要求内被分配到的实体,因此,分配给第二监测代理的实体可能不能接收足够的监视。
相反,在本文所述的系统中,第一和第二监视代理共享相同的队列,因此,如果第一监视代理被需要大量时间的监视任务占用,则第二监视代理可以继续服务队列中的实体。一旦第一监视代理完成其任务,可以从队列中检索下一个监视任务。因此,如本文所述的系统可以帮助确保需要服务的实体由下一个可用的监视代理按照实体需要监视的顺序来服务。此外,如本文所描述的系统可以确保每个监视任务以类似的方式分配在监视代理之间(即,第一和第二监视代理一旦是空闲的,就继续检索监视任务)。
图2是示出根据本公开的技术的用于向多个监视代理动态地分配实体监视分配的示例系统100的方框图。在图2的示例中,系统100包括为服务提供商网络6的客户提供一个或多个网络服务的多个实体106A-106N(统称为“实体106”)。系统100还包括用于监视实体106的性能和健康状况的多个监视代理104A-104C(统称为“监视代理104”)以及消息队列108,用于存储识别特定实体106的消息,作为监视的目标。系统100还包括用于存储用于实体106的性能和健康信息的时间序列数据库114和用于允许用户访问性能和健康信息的用户接口110。管理服务116执行系统100的各种管理功能。管理服务还包括用于便于在系统100的各种元件(例如,监视代理104、消息队列108和数据库114)之间交换消息的消息服务118。
在一些示例中,系统100是协同定位数据设施或数据中心,例如,图1的数据中心10,其为由服务提供商网络6耦合到系统的客户提供应用和服务的操作环境。
实体106向服务提供商网络6的客户提供一个或多个网络服务。在一些示例中,实体106是底盘交换机22、TOR交换机24、服务器26或由图1的服务器26执行的VR或VM中的一个。在进一步的示例中,实体106是物理装置,例如,一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙等安全装置、入侵检测和/或入侵防御装置、服务器、计算机终端、笔记本电脑、打印机、数据库、诸如蜂窝电话或个人数字助理等无线移动装置、无线接入点、桥接器、电缆调制解调器、应用加速器或其他网络装置。在其他示例中,实体106是虚拟装置,例如,虚拟路由器,其为系统100内的相应虚拟网络执行多个路由实例,并将分组路由到在系统100的服务器或主机106上执行的适当的虚拟机。
消息队列108是用于组织消息描述实体106的数据结构。消息队列108可以根据先入先出(FIFO)范例来配置,使得对于消息队列108中的所有排队消息,假设当N+1消息排队时,具有N个排队消息,在N+1从队列去除之后,N+1消息被从队列去除。消息队列108存储多个消息,其中,每个消息对应于实体106,并且消息包含用于辅助监视代理104从相应实体106检索性能和度量的信息。虽然在图2的示例中,消息队列108是简单的FIFO队列,但是在其他示例中,消息队列108可以排序或以其他方式排列消息队列内的消息(例如,优先级队列),例如,根据上次监视事件之后的时间、在队列中花费的时间、对应实体106超过其他实体106的优先级或其他约定。
管理服务116执行系统100的各种管理功能。例如,管理服务116响应于经由用户接口110的来自用户的指令,执行监视代理104的额外实例的实例化或现有监视代理104的破坏。以这种方式,用户可以使用管理服务116来动态地调整主动监视代理104的数量。
管理服务还包括用于便于在系统100的各种元件(例如,监视代理104、消息队列108和数据库114)之间交换消息的消息服务118。消息服务118充当代理(broker),以便于在监视代理104、消息队列108和数据库114的多个实例之间异步交换消息和通知。
通常,监视代理104被配置为当准备好执行监视任务时从消息队列108中去除消息。因此,在系统100的一个示例性操作中,假设监视代理104A在其他监视代理104之前准备好执行监视任务,则监视代理104向消息服务118发出从消息队列108去除连接到下一个未决实体(例如,实体106A)所需的信息的指令。消息服务118从消息队列108中去除该信息并将该信息转发给监视代理104A。使用通过消息服务118从消息队列108中接收到的信息,监视代理104A向实体106A发出提取请求。响应于提取请求,实体106A向监视代理104发送实体106A的性能和健康度量。监视代理104A转发所接收的度量消息服务118,用于转发到时间序列数据库114。反过来,消息服务118将所接收的度量转发到时间序列数据库114,用于存储。
在将所接收的度量转发到消息服务118,用于转发到数据库114之后,监视代理104产生包含描述被监视实体106A的信息的新消息,并将该消息转发到消息服务118,用于在消息队列108中排队。消息服务118在消息队列108中将消息排队,以确保监视代理104中的后续一个监视代理执行实体106A的监视。在一些示例中,监视代理104A在消息中包括预定的时间段,并且在消息队列108中将消息排队之前,消息服务118等待,直到经过预定时间段。以这种方式,消息服务118确保实体的后续监视106A仅在经过预定时间段之后才发生,以避免不必要的监视操作。
在将新消息发送到消息服务118,用于在队列108中排队之后,监视代理104A将请求发送到消息服务118,以从队列108去除一个后续消息,该消息指导监视代理104A在要监视的行中对下一个实体进行监视。此外,当监视代理104A监视一个实体106时,其他监视代理104可以从消息队列108请求相应的消息并监视相应的实体106。因此,监视代理104的多个实例可以在相同的时间服务相同的消息队列108,使得在消息队列108中具有对应消息的每个实体106由下一个可用的监视代理104服务。
此外,当用户或管理员(例如图1的管理员28)确定监视代理104应该开始监视以前未被监视的实体106时,用户经由用户接口110指示系统100开始监视实体106。响应于该指示,监视代理104A产生包含实体106的细节的消息,并将该消息发送到消息服务118,用于在消息队列108中排队。为了停止监视实体,用户经由用户接口110指示系统100停止对该实体的监视。响应于指示并且在服务实体106时,监视代理104A不向消息服务118发送描述实体106的新消息,用于在消息队列108中排队。此外,为了将实体106的监视延迟到预定时间,在消息队列108中将包含实体106的细节的消息排队之前,消息服务118可以等待预定时间量。
因此,基于监视代理104正在处理的负载和每个监视代理104服务实体106所需的时间,本文所描述的技术允许系统100内的多个监视实体106的监视过程分配在监视代理104的多个实例之间。此外,管理服务116可以响应于经由用户接口110接收到的指令(指示)将额外的监视代理104动态地添加到系统100,而不必为每个监视实体106重新分配监视功能或影响整个监视系统100的功能。因此,本文描述的这种系统可能比其他监视系统更加牢固,并且可以更有效地将监视任务分配到监视代理104。
图3是示出根据本公开的技术的用于向多个监视代理动态地分配实体监视分配的示例系统300的方框图。在图3的示例中,系统300包括多个区域112A-112N(统称为“区域112”),其中,每个区域112包括向该区域的客户提供一个或多个网络服务的多个实体106A-106N(统称为“实体106”)。每个区域112还包括用于监视实体106的性能和健康的多个监视代理104和消息队列108,用于存储将特定实体106标识为监视的目标的消息。另外,每个区域112包括管理服务116,用于管理监视代理104和消息队列108的各个方面。管理服务116还包括用于代理监视代理104、消息队列108和数据库114之间的消息和通知的消息服务118。系统300还包括用于存储实体106的性能和健康信息的时间序列数据库114以及用于允许用户访问性能和健康信息的用户接口110。图3的每个实体106、监视代理104、消息队列108、管理服务116、消息服务118和数据库114可以以与图2的相似元件基本相似的方式起作用。
在图3的示例中,每个管理服务116可以响应于经由用户接口110接收到的指令,将监视代理104动态地添加到系统300的每个区域112或将其删除。由于每个监视设备104在区域112内服务相同的队列108,所以监视代理可以在特定区域内实例化或破坏,而不必为每个被监视实体106重新分配监视功能,或者影响所有区域112上或者甚至特定区域内的整个监视系统300的功能。因此,本文描述的这种系统300可以基于每个区域正在经历的特定负载来动态地分配监视功能。此外,每个区域可以在集中式时间共享数据库114中在区域112上存储每个监视实体的性能和健康度量,以便于用户对性能和健康度量进行审查和分析。因此,这种系统可能比其他监视系统更加牢固,并且可以更有效地将监视任务分配到监视代理104。
图4是示出用于执行关于图1的系统100所讨论的技术的示例计算装置400的方框图。图4示出了计算装置400的特定示例,包括用于执行图1的监视代理104、消息队列108和数据库114中的任何一个或多个的一个或多个处理器402,如本文所述。可以在其他实例中使用计算装置400的其他示例。虽然为了示例的目的,在图4中示出为独立式计算装置400,但是计算装置可以是包括用于执行软件指令的一个或多个处理器或其他合适的计算环境的任何部件或系统,例如,不一定需要包括图4所示的一个或多个元件(例如,通信单元406;以及在一些示例中,诸如存储装置408等部件可以不与其他部件共同定位或位于同一底盘中)。计算装置400可以执行例如数据中心10的SDN控制器32,并且可以位于数据中心10、另一互连设施内,或者由云交换提供商采用或使用的分支机构或云计算环境。多个计算装置400可以以分配的方式执行监视代理104、消息队列108、管理服务116、消息服务118和数据库114,的相应实例,例如,如上面关于图3所讨论的。在一些情况下,多个计算装置400中的每一个可以执行监视代理104、消息队列108和数据库114的不同组合。换言之,单个计算装置400可以不执行监视代理104、消息队列108和数据库114中的每个。
如图4的具体示例所示,计算装置400包括一个或多个处理器402、一个或多个输入装置404、一个或多个通信单元406、一个或多个输出装置412、一个或多个存储装置408和用户接口(UI)装置110、以及通信单元406。在一个示例中,计算装置400还包括由计算装置400执行的一个或多个监视代理104、消息队列108和数据库114。部件402、404、406、408、110和412中的每一个耦合(物理地、通信地和/或可操作地),用于部件间通信。在一些示例中,通信信道414可以包括系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其他方法。作为一个示例,部件402、404、406、408、110和412可以由一个或多个通信信道414耦合。
在一个示例中,处理器402被配置为实现用于在计算装置400内执行的功能和/或处理指令。例如,处理器402可能能够处理存储在存储装置408中的指令。处理器402的示例可以包括微处理器、控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或等效的分立或集成逻辑电路中的任何一个或多个。
一个或多个存储装置408可以被配置成在操作期间在计算装置400内储存信息。在一些示例中,存储装置408被描述为计算机可读存储介质。在一些示例中,存储装置408是临时的存储器,意味着存储装置408的主要目的不是长期存储。在一些示例中,存储装置408被描述为易失性存储器,意味着当计算机关闭时,存储装置408不保持存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其他形式的易失性存储器。在一些示例中,存储装置408用于存储用于由处理器402执行的程序指令。在一个示例中,存储装置408由在计算装置400上运行的软件或应用程序用于在程序执行期间临时存储信息。
在一些示例中,存储装置408还包括一个或多个计算机可读存储介质。存储装置408可被配置为存储比易失性存储器更大量的信息。存储装置408还可被配置为长期存储信息。在一些示例中,存储装置408包括非易失性存储元件。这种非易失性存储元件的示例包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。
在一些示例中,计算装置400还包括一个或多个通信单元406。在一个示例中,计算装置400利用通信单元406经由一个或多个网络,例如,一个或多个有线/无线/移动网络,与外部装置通信。通信单元406可以包括网络接口卡,例如,以太网卡、光收发器、射频收发器、或可以发送和接收信息的任何其他类型的装置。这种网络接口的其他示例可以包括3G和WiFi无线电。在一些示例中,计算装置400使用通信单元406与外部装置进行通信。
在一个示例中,计算装置400还包括一个或多个用户接口装置110。在一些示例中,用户接口装置110被配置为通过触觉、音频或视频反馈从用户接收输入。用户接口装置110的示例包括存在敏感显示器、鼠标、键盘、语音响应系统、摄像机、麦克风或用于检测来自用户的命令的任何其他类型的装置。在一些示例中,存在敏感显示器包括触敏屏幕。
一个或多个输出装置412还可被包括在计算机装置400中。在一些示例中,输出装置412被配置为使用触觉、音频或视频刺激向用户提供输出。在一个示例中,输出装置412包括存在敏感显示器、声卡、视频图形适配器卡或用于将信号转换成对于人或机器可理解的适当形式的任何其他类型的装置。输出装置412的额外示例包括扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)或可以向用户产生可理解输出的任何其他类型的装置。
计算装置400可以包括操作系统416。在一些示例中,操作系统416控制计算装置400的部件的操作。例如,在一个示例中,操作系统416便于一个或多个监视代理104、消息队列108和数据库114与处理器402、通信单元406、存储装置408、输入装置404、用户接口装置110和输出装置412通信。监视代理104、消息队列108、管理服务116、消息服务118、以及数据库114还可以包括可由计算装置400执行的程序指令和/或数据。
图5是示出根据本公开的技术的用于向多个监视代理动态分配(distribute,分发)实体监视分配(assignment)的示例操作的流程图。为方便起见,图5被描述为由图2的监视代理104A以及相对于图2的其他部件执行。然而,应当理解,其他系统中的其他装置可能被配置为执行此或类似的方法。
在系统100的一个示例性操作中,监视代理104A向消息服务118发送请求,以从消息队列108去除第一消息(502)。第一消息包括连接到作为要监视的下一个未决实体的实体(例如,实体106A)所需的信息。例如,消息可以包括实体的名称、连接到实体的路由和路径信息、用于与实体通信的通信协议(例如,边界网关协议(BGP))、实体执行的服务或功能的类型、要收集的性能和健康度量的类型、实体的因特网协议(IP)地址、实体的媒体访问控制(MAC)地址、与实体连接时使用的协议、用于连接到实体的令牌、或上述的任何组合。响应于该请求,消息服务118从消息队列108去除消息,并将消息传送到监视代理104A。
监视代理104A接收指示下一个要监视的实体的消息(504)。监视代理104A从实体106A(506)请求健康和性能度量。在典型的操作中,实体106以“拉”配置运行。换言之,监视代理104A通过BGP向实体106A发出提取请求。响应于提取请求,实体106A编制实体106的各种性能和健康度量。例如,这种度量可以包括描述硬件配置、软件配置、网络带宽、连接、路由和路径信息、使用统计(例如运行时间、停机时间)、服务使用、通知、警报或错误消息、或上述的任何组合的信息。在收集度量时,实体106A将性能和健康度量发送到监视代理104。这种性能和健康度量包括例如自上次监视事件以来发送的字节数、在预定时间段(例如,最后一秒、一分钟、一小时、一天或一周)内发送的字节数、发送的总字节数、从上次监视事件以来接收的字节数、在预定时间段内接收的字节数、接收的总字节数、当前CPU使用、预定时间段内的平均CPU使用、预定时间段的峰值CPU使用、当前内存使用、预定时间段内的平均内存使用、以及预定时段内的峰值存储器使用。
监视代理104A从实体106接收度量,并将接收到的度量发送到时间序列数据库114,以供存储(506)。在一些示例中,监视代理104将信息发送到消息服务118,消息服务118又通过BGP将信息发送到时间序列数据库114。时间序列数据库114存储性能和健康度量,以供用户后续审查和分析。在一些示例中,时间序列数据库向用户呈现度量,用于经由用户接口110显示,该接口可以是命令行接口(CLI)或基于浏览器的仪表板。
在将接收到的度量转发到数据库114时,监视代理104A生成包含信息描述实体106A的新消息。监视代理104向消息服务118发送指令,以在消息队列108中将包含描述实体104A的信息的新消息排队(510)。在备选示例中,监视代理104A将从队列108提取的第一消息重新发送到消息服务118。消息服务118又在消息队列108内将消息排队。
在一些示例中,消息服务118立即从队列中去除第一消息并将消息发送到后续监视代理104,监视代理104又立即执行对实体106的监视。在其他示例中,在队列108中将新消息排队之前,消息服务118等待预定时间。在这样做,消息服务118确保在后续监视代理104(其可以是监视代理104A、104B或104C等中的任何一个)重复监视实体106A之前经过预定的延迟。或者,在将消息发送到后续的监视代理程序106之前,在队列108中去除消息之后,消息服务等待预定延迟或时间。
因此,监视代理104的多个实例可以服务相同的消息队列108。当第一监视代理104A经由消息服务118接收来自消息队列108的第一消息并且服务第一实体106A时,第二监视代理104B可以经由监视服务118接收来自消息队列108的第二消息并服务第二实体106B,而第三监视代理104C可以经由监视服务118接收来自消息队列108的第三消息并服务第三实体106C,以此类推。这种系统确保每个监视代理104在完成监视功能时立即接收后续任务。此外,这种系统确保每个未决实体由下一个空闲监视代理104服务,这可能比将实体静态地分配给监视代理的系统更有效。
本公开中描述的技术可以以硬件、软件、固件或其任何组合来实现。例如,技术的各个方面可以在一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或分立逻辑电路、以及这些部件的任何组合中实现。术语“处理器”或“处理电路”通常可以单独地或与其他逻辑电路或任何其他等效电路组合地指上述逻辑电路中的任一个。
当以软件实现时,归属于本公开中描述的系统和装置的功能可以体现为计算机可读介质上的指令,例如,随机存取存储器(RAM)、只读存储器(ROM)、易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、磁性介质、光学介质等。执行指令,以支持本公开中描述的功能的一个或多个方面。
本公开中描述的技术可以至少部分地在硬件、软件、固件或其任何组合中实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等效的集成或分立逻辑电路、以及这些部件的任何组合。术语“处理器”或“处理电路”可以单独地或与其他逻辑电路或任何其他等效电路组合地指上述逻辑电路中的任何一个。包括硬件的控制单元也可以执行本公开的一种或多种技术。
这种硬件、软件和固件可以在同一装置内或在单独的装置内实现,以支持本公开中描述的各种操作和功能。此外,所描述的单元、模块或部件中的任何一个可以一起或者单独地作为离散但可互操作的逻辑装置实现。将不同特征作为模块或单元进行描述,旨在突出显示不同的功能方面,并不一定意味着这种模块或单元由单独的硬件或软件部件实现。与一个或多个模块或单元相关联的功能可以由单独的硬件或软件部件执行,或者集成在共同或单独的硬件或软件部件中。
本公开中描述的技术也可以在包含指令的计算机可读介质(例如,计算机可读存储介质)中体现或编码。在计算机可读介质中嵌入或编码的指令可以促使可编程处理器或其他处理器来执行该方法,例如,当执行指令时。计算机可读介质可以包括非暂时性计算机可读存储介质和瞬时通信介质。有形和非暂时性计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质或其他计算机可读存储介质。应当理解,术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波或其他瞬时介质。

Claims (20)

1.一种用于协同定位设施的方法,包括:
由协同定位设施的一个或多个处理器执行多个网络服务监视代理,其中,执行所述多个网络服务监视代理包括:
由所述多个网络服务监视代理的第一网络服务监视代理向所述协同定位设施的消息服务发送指令,所述指令促使所述消息服务:
将多个消息的第一消息从队列中去除,其中,所述第一消息描述多个网络服务实体中的第一网络服务实体;并且
向所述第一网络服务监视代理发送所述第一消息;
由所述第一网络服务监视代理从所述消息服务中接收所述第一消息;
由所述第一网络服务监视代理从由所述第一消息描述的所述第一网络服务实体中检索所述第一网络服务实体的性能和健康度量;并且
由所述第一网络服务监视代理将所述第一网络服务实体的性能和健康度量发送给所述消息服务,并且用于发送给所述协同定位设施的数据库。
2.根据权利要求1所述的方法,还包括:
由所述第一网络服务监视代理向所述消息服务发送所述第一消息,并且用于在所述队列中将所述第一消息排队;并且
在由所述消息服务向所述数据库发送所述第一网络服务实体的性能和健康度量之后,由所述消息服务在所述队列中将所述第一消息排队。
3.根据权利要求2所述的方法,还包括由所述第一网络服务监视代理向所述消息服务发送一预定时间,并且其中,由所述消息服务在所述队列中将所述第一消息排队,包括:在经过所述预定时间之后,由所述消息服务在所述队列中将所述第一消息排队。
4.根据权利要求2所述的方法,其中,执行所述多个网络服务监视代理还包括:
由所述第一网络服务监视代理接收暂停检索所述第一网络服务实体的性能和健康度量的指令;
由所述第一网络服务监视代理向所述消息服务发送指令,促使所述消息服务:
将描述所述第一网络服务实体的第一消息从所述队列中去除;并且
在向协同定位设施的数据库发送所述第一网络服务实体的性能和健康度量时,丢弃所述第一消息,而不将所述第一消息在所述队列中排队。
5.根据权利要求1至4中任一项所述的方法,其中,执行所述多个网络服务监视代理还包括:
由所述第一网络服务监视代理接收开始检索第二网络服务实体的性能和健康度量的指令;
由所述第一网络服务监视代理确定所述队列不包含描述所述第二网络服务实体的对应消息;并且
由所述第一网络服务监视代理向所述消息服务发送描述所述第二网络服务实体的第二消息,并且用于在队列中排将所述第二消息排队。
6.根据权利要求1至4中任一项所述的方法,还包括:
由所述一个或多个处理器确定调整所述多个网络服务监视代理的数量;并且
响应于确定调整所述多个网络服务监视代理的数量,执行以下中的一个:一个或多个网络服务监视代理的实例化或一个或多个网络服务监视代理的破坏。
7.根据权利要求1至4中任一项所述的方法,其中,所述多个网络服务实体包括多个物理装置和多个虚拟网络功能。
8.根据权利要求1至4中任一项所述的方法,其中,执行所述多个网络服务监视代理还包括:
由所述多个网络服务监视代理的第二网络服务监视代理向所述消息服务发送指令,促使所述消息服务:
将所述多个消息的第二消息从所述队列中去除,其中,所述第二消息描述所述多个网络服务实体中的第二网络服务实体;并且
向所述第二网络服务监视代理发送所述第二消息;
由所述第二网络服务监视代理从所述消息服务中接收所述第二消息;
由所述第二网络服务监视代理从由所述第二消息描述的所述第二网络服务实体中检索所述第二网络服务实体的性能和健康度量;并且
由所述第二网络服务监视代理将第二网络服务实体的性能和健康度量发送给所述消息服务,并且用于发送给所述数据库。
9.一种协同定位设施的计算装置,包括一个或多个处理器,其被配置为:
执行多个网络服务监视代理,其中,在执行时,所述多个网络服务监视代理的第一网络服务监视代理被配置为:
向所述协同定位设施的消息服务发送指令,所述指令促使所述消息服务:
将多个消息的第一消息从队列中去除,其中,所述第一消息描述多个网络服务实体中的第一网络服务实体;并且
向所述第一网络服务监视代理发送所述第一消息;
从所述消息服务中接收所述第一消息;
从由所述第一消息描述的所述第一网络服务实体中检索所述第一网络服务实体的性能和健康度量;并且
将所述第一网络服务实体的性能和健康度量发送给所述消息服务,并且用于发送给所述协同定位设施的数据库。
10.根据权利要求9所述的计算装置,其中,所述多个网络服务监视代理中的所述第一网络服务监视代理还被配置为向所述消息服务发送所述第一消息,并且用于在所述队列中将所述第一消息排队,并且其中,所述消息服务还被配置为在向所述数据库发送所述第一网络服务实体的性能和健康度量之后,在所述队列中将所述第一消息排队。
11.根据权利要求10所述的计算装置,其中,所述第一网络服务监视代理被配置为向所述消息服务发送一预定时间,并且其中,所述消息服务还被配置为在经过所述预定时间之后,在所述队列中将所述第一消息排队。
12.根据权利要求10所述的计算装置,其中,所述多个网络服务监视代理中的所述第一网络服务监视代理还被配置为:
接收暂停检索所述第一网络服务实体的性能和健康度量的指令;
向所述消息服务发送指令,促使所述消息服务:
将描述所述第一网络服务实体的所述第一消息从所述队列中去除;并且
在向协同定位设施的数据库发送所述第一网络服务实体的性能和健康度量时,丢弃所述第一消息,而不将所述第一消息在所述队列中排队。
13.根据权利要求9至12中任一项所述的计算装置,其中,所述多个网络服务监视代理中的所述第一网络服务监视代理还被配置为:
接收开始检索第二网络服务实体的性能和健康度量的指令;
确定所述队列不包含描述所述第二网络服务实体的对应消息;并且
向所述消息服务发送描述所述第二网络服务实体的第二消息,并且用于在所述队列中将所述第二消息排队。
14.根据权利要求9至12中任一项所述的计算装置,其中,所述一个或多个处理器还被配置为:
确定调整所述多个网络服务监视代理的数量;并且
响应于确定调整所述多个网络服务监视代理的数量,执行以下中的一个:一个或多个网络服务监视代理的实例化或一个或多个网络服务监视代理的破坏。
15.根据权利要求9至12中任一项所述的计算装置,其中,所述多个网络服务实体包括多个物理装置和多个虚拟网络功能。
16.根据权利要求9至12中任一项所述的计算装置,其中,在执行所述多个网络服务监视代理时,所述多个网络服务监视代理的第二网络服务监视代理被配置为:
向所述消息服务发送指令,促使所述消息服务:
将所述多个消息中的第二消息从所述队列中去除,其中,
所述第二消息描述所述多个网络服务实体中的第二网络服务实体;并且
向所述第二网络服务监视代理发送所述第二消息;
从所述消息服务中接收所述第二消息;
从由所述第二消息描述的所述第二网络服务实体中检索所述第二网络服务实体的性能和健康度量;并且
将第二网络服务实体的性能和健康度量发送给所述消息服务,并且用于发送给所述数据库。
17.一种非暂时性计算机可读介质,包括指令,所述指令在被执行时促使协同定位设施的计算装置的一个或多个处理器:
执行多个网络服务监视代理,其中,在执行所述多个网络服务监视代理时,所述多个网络服务监视代理中的第一网络服务监视代理被配置为:
向所述协同定位设施的消息服务发送指令,所述指令促使所述消息服务:
将所述多个消息中的第一消息从队列中去除,其中,所述第一消息描述多个网络服务实体中的第一网络服务实体;并且
向所述第一网络服务监视代理发送所述第一消息;
从所述消息服务中接收所述第一消息;
从由所述第一消息描述的所述第一网络服务实体中检索所述第一网络服务实体的性能和健康度量;并且
将所述第一网络服务实体的性能和健康度量发送给所述消息服务,并且用于发送给所述协同定位设施的数据库。
18.根据权利要求17所述的计算机可读介质,其中,所述多个网络服务监视代理中的所述第一网络服务监视代理还被配置为向所述消息服务发送所述第一消息,并且用于在所述队列中将所述第一消息排队,并且其中,所述消息服务还被配置为在向所述数据库发送所述第一网络服务实体的性能和健康度量之后,在所述队列中将所述第一消息排队。
19.根据权利要求17所述的计算机可读介质,还包括指令,所述指令在被执行时促使所述一个或多个处理器:
确定调整所述多个网络服务监视代理的数量;并且
响应于确定调整所述多个网络服务监视代理的数量,执行以下中的一个:一个或多个网络服务监视代理的实例化或一个或多个网络服务监视代理的破坏。
20.根据权利要求17至19中任一项所述的计算机可读介质,其中,在执行所述多个网络服务监视代理时,所述多个网络服务监视代理的第二网络服务监视代理被配置为:
向所述消息服务发送指令,促使所述消息服务:
将所述多个消息的第二消息从所述队列中去除,其中,所述第二消息描述所述多个网络服务实体中的第二网络服务实体;并且
向所述第二网络服务监视代理发送所述第二消息;
从所述消息服务中接收所述第二消息;
从由所述第二消息描述的所述第二网络服务实体中检索所述第二网络服务实体的性能和健康度量;并且
将所述第二网络服务实体的性能和健康度量发送给所述消息服务,并且用于发送给所述数据库。
CN201711232433.XA 2016-12-29 2017-11-29 网络实体在监视代理之中的动态分配 Active CN108259554B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/394,368 US10462034B2 (en) 2016-12-29 2016-12-29 Dynamic distribution of network entities among monitoring agents
US15/394,368 2016-12-29

Publications (2)

Publication Number Publication Date
CN108259554A CN108259554A (zh) 2018-07-06
CN108259554B true CN108259554B (zh) 2020-12-18

Family

ID=60574405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711232433.XA Active CN108259554B (zh) 2016-12-29 2017-11-29 网络实体在监视代理之中的动态分配

Country Status (3)

Country Link
US (1) US10462034B2 (zh)
EP (1) EP3343840B1 (zh)
CN (1) CN108259554B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10911263B2 (en) 2016-09-28 2021-02-02 Amazon Technologies, Inc. Programmatic interfaces for network health information
US10862777B2 (en) 2016-09-28 2020-12-08 Amazon Technologies, Inc. Visualization of network health information
US10917324B2 (en) * 2016-09-28 2021-02-09 Amazon Technologies, Inc. Network health data aggregation service
US11095728B2 (en) * 2018-06-21 2021-08-17 Disney Enterprises, Inc. Techniques for automatically interpreting metric values to evaluate the health of a computer-based service
US11122071B2 (en) * 2018-06-29 2021-09-14 Forescout Technologies, Inc. Visibility and scanning of a variety of entities
US11252192B1 (en) * 2018-09-28 2022-02-15 Palo Alto Networks, Inc. Dynamic security scaling
US10678612B2 (en) * 2018-10-22 2020-06-09 Sap Se Event messaging system for multi-cloud computing environments
JP2020160656A (ja) * 2019-03-26 2020-10-01 セイコーエプソン株式会社 情報配信システム、ネットワークサーバー及びネットワークサーバーの制御方法
US11533259B2 (en) * 2019-07-24 2022-12-20 Vmware, Inc. Building a platform to scale control and data plane for virtual network functions
US11469942B2 (en) * 2019-08-15 2022-10-11 At&T Intellectual Property I, L.P. System and method for SDN orchestration validation
US11349774B2 (en) * 2019-12-13 2022-05-31 At&T Intellectual Property 1, L.P. Methods, systems and computer readable media for diagnosing network function virtualization performance
CN111124834B (zh) * 2019-12-25 2023-08-15 曙光信息产业(北京)有限公司 云计算环境下监控数据的接入方法、装置和计算机设备
WO2022081255A1 (en) * 2020-10-13 2022-04-21 Arris Enterprises Llc Home network health metrics reporting
US11366705B1 (en) * 2021-07-29 2022-06-21 Apex.AI, Inc. Deterministic replay of events between software entities

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102209078A (zh) * 2004-02-13 2011-10-05 诺基亚公司 定时体验质量的度量
EP2672668A1 (en) * 2012-06-06 2013-12-11 Juniper Networks, Inc. Creating searchable and global database of user visible process traces
CN104584484A (zh) * 2012-08-28 2015-04-29 阿尔卡特朗讯公司 提供基于策略的数据中心网络自动化的系统和方法
US9276826B1 (en) * 2013-03-22 2016-03-01 Google Inc. Combining multiple signals to determine global system state

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346671B2 (en) * 1998-06-05 2008-03-18 Instant Service.Com, Inc. Real time internet communications system
US9195784B2 (en) * 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US7590714B1 (en) * 2003-12-31 2009-09-15 Emc Corporation Methods and apparatus for providing extensible lightweight services in a data storage environment
TW200619002A (en) * 2004-07-12 2006-06-16 Sumitomo Chemical Co Method for producing thermoplastic resin laminated sheet
US9251481B2 (en) * 2011-06-13 2016-02-02 Accenture Global Services Limited Distributed metering and monitoring system
US9064216B2 (en) 2012-06-06 2015-06-23 Juniper Networks, Inc. Identifying likely faulty components in a distributed system
US10349240B2 (en) 2015-06-01 2019-07-09 Huawei Technologies Co., Ltd. Method and apparatus for dynamically controlling customer traffic in a network under demand-based charging
US10917324B2 (en) * 2016-09-28 2021-02-09 Amazon Technologies, Inc. Network health data aggregation service
US10592280B2 (en) * 2016-11-23 2020-03-17 Amazon Technologies, Inc. Resource allocation and scheduling for batch jobs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102209078A (zh) * 2004-02-13 2011-10-05 诺基亚公司 定时体验质量的度量
EP2672668A1 (en) * 2012-06-06 2013-12-11 Juniper Networks, Inc. Creating searchable and global database of user visible process traces
CN104584484A (zh) * 2012-08-28 2015-04-29 阿尔卡特朗讯公司 提供基于策略的数据中心网络自动化的系统和方法
US9276826B1 (en) * 2013-03-22 2016-03-01 Google Inc. Combining multiple signals to determine global system state

Also Published As

Publication number Publication date
US20180191597A1 (en) 2018-07-05
EP3343840A1 (en) 2018-07-04
CN108259554A (zh) 2018-07-06
EP3343840B1 (en) 2020-02-12
US10462034B2 (en) 2019-10-29

Similar Documents

Publication Publication Date Title
CN108259554B (zh) 网络实体在监视代理之中的动态分配
CN110971584B (zh) 针对虚拟网络生成的基于意图的策略
US11740923B2 (en) Architecture of networks with middleboxes
CN108696402B (zh) 虚拟路由器的基于会话的业务统计记录
US11076019B2 (en) Scheduling services on a platform including configurable resources
US10742607B2 (en) Application-aware firewall policy enforcement by data center controller
EP3611883A1 (en) Secure forwarding of tenant workloads in virtual networks
JP6670109B2 (ja) ネットワーク内のスケーラブルなフロー及び輻輳制御
US9596159B2 (en) Finding latency through a physical network in a virtualized network
CN104954251B (zh) 高性能、可扩展和无掉话的数据中心交换结构
JP5976942B2 (ja) ポリシーベースのデータセンタネットワーク自動化を提供するシステムおよび方法
US8694654B1 (en) Host side protocols for use with distributed control plane of a switch
US11528213B2 (en) Sharing routes using an in-memory data store in a distributed network system
EP3934206B1 (en) Scalable control plane for telemetry data collection within a distributed computing system
CN112398676A (zh) 多租户环境中服务接入端点的基于供应商无关简档的建模

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
CB02 Change of applicant information

Address after: California, USA

Applicant after: Juniper Networks, Inc.

Address before: California, USA

Applicant before: Jungle network

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant