CN115328742B - 容器信息监控方法、装置、存储介质及电子设备 - Google Patents
容器信息监控方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115328742B CN115328742B CN202211234752.5A CN202211234752A CN115328742B CN 115328742 B CN115328742 B CN 115328742B CN 202211234752 A CN202211234752 A CN 202211234752A CN 115328742 B CN115328742 B CN 115328742B
- Authority
- CN
- China
- Prior art keywords
- container
- target container
- target
- pointer
- monitoring
- 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
Links
- 238000012544 monitoring process Methods 0.000 title abstract description 254
- 238000000034 method Methods 0.000 title abstract description 251
- 230000008569 process Effects 0.000 abstract description 213
- 230000000875 corresponding effect Effects 0.000 description 79
- 238000012217 deletion Methods 0.000 description 64
- 230000037430 deletion Effects 0.000 description 64
- 230000007246 mechanism Effects 0.000 description 38
- 230000004044 response Effects 0.000 description 34
- 238000012545 processing Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 230000000977 initiatory effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 8
- 238000002955 isolation Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011112 process operation Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012806 monitoring device Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 239000003637 basic solution Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/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/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本公开实施方式涉及一种容器信息监控方法、装置、存储介质及电子设备,涉及计算机技术领域。该方法包括:响应于进程调度操作,生成当前运行进程的进程描述信息;根据第一目标容器指针,获取第一目标容器的容器监控信息,并建立第一目标容器指针和容器监控信息的第一关联关系;响应于第一目标容器指针的首次生成,根据第一目标容器标识获取第一目标容器的元数据,并建立第一目标容器指针和第一目标容器的元数据的第二关联关系;建立第一目标容器指针、容器监控信息以及第一目标容器的元数据三者的第三关联关系,得到第一目标容器的容器信息。本公开可以防止出现容器信息无法监控的情况,且可以提升监控容器得到的信息类型的丰富度。
Description
技术领域
本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及一种容器信息监控方法、容器信息监控装置、计算机可读存储介质及电子设备。
背景技术
在容器运行的过程中,操作系统可以对容器的运行情况进行监控,以便于获取容器在运行过程中的相关数据。
相关技术中,操作系统可以在确定容器处于运行状态时,实时监控容器的运行状态,确定容器的监控信息,例如,容器运行过程中,操作系统的资源使用量,例如,系统中央处理器(Central Processing Unit,CPU)使用时长、系统内存使用量等。
本部分旨在为权利要求中陈述的本公开的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
发明内容
然而,在现有的容器监控技术中,监控的容器信息维度单一,且对于生命周期较短的进程所对应的容器,其容器信息会出现无法被监控的情况。
为此,非常需要一种改进的方法,来避免短生命周期的进程所对应的容器信息无法被监控的情况出现;该方法还能够在容器监控过程中,在容器层面获取多维度的容器监控指标的指标数据,以提升容器监控所获得的监控信息的丰富度和价值度。
在本上下文中,本公开的实施方式期望提供一种容器信息监控方法、装置、存储介质及电子设备。
根据本公开实施方式的第一方面,提供一种容器信息监控方法,包括:
响应于进程调度操作,生成当前运行进程的进程描述信息,所述进程描述信息包括第一目标容器指针和第一目标容器标识,所述第一目标容器指针为所述第一目标容器标识的索引数据,第一目标容器为与当前运行进程对应的容器;
根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,并建立所述第一目标容器指针和所述容器监控信息的第一关联关系,所述容器监控信息为目标监控指标的指标数据,所述目标监控指标为容器维度的监控指标;
响应于所述第一目标容器指针的首次生成,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系;
根据所述第一关联关系,获取与所述第一目标容器指针关联的所述容器监控信息,以及根据所述第二关联关系,获取与所述第一目标容器指针关联的所述第一目标容器的元数据,建立所述第一目标容器指针、所述容器监控信息以及所述第一目标容器的元数据三者的第三关联关系,得到所述第一目标容器的容器信息。
可选的,所述根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,包括:
监控与所述第一目标容器标识对应的所述第一目标容器的运行状况,在所述第一目标容器的运行过程中,获取与所述第一目标容器关联的所述目标监控指标的指标数据,所述目标监控指标包括所述第一目标容器的处理器调度延时、所述第一目标容器的内存申请延时、所述第一目标容器的远程存储读写延时和/或所述第一目标容器的网络重传率;
将与所述第一目标容器关联的所述目标监控指标的指标数据,确定为所述第一目标容器的容器监控信息。
可选的,所述方法还包括:
根据容器指针历史信息表确定所述第一目标容器指针是否为首次生成,所述容器指针历史信息表中记录有,历史运行进程的进程描述信息中的第二目标容器指针,相应的第二目标容器为与历史运行进程对应的容器;
若是,则建立所述第二关联关系。
可选的,所述响应于进程调度操作,生成当前运行进程的进程描述信息,包括:
响应于进程调度操作,基于物理资源隔离Cgroups机制生成当前运行进程的进程描述信息,所述进程描述信息为进程描述符的结构体task_struct,所述第一目标容器指针为所述task_struct中的kernfs entry指针。
可选的,所述根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系,包括:
响应于所述第一目标容器标识和预先配置的待监控容器标识相同,根据所述第一目标容器标识,在预先存储的容器标识和容器元数据的对应关系中,获取所述第一目标容器的元数据;
建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系。
可选的,在响应于进程调度操作之后,所述方法还包括:
通过第一内核函数finish_task_switch触发第一伯克利包过滤器eBPF触发点,并运行与所述第一eBPF触发点对应的第一eBPF程序,所述第一eBPF程序响应于所述第一目标容器指针的首次生成,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系。
可选的,所述方法还包括:
响应于容器删除操作,获取第三目标容器指针和第三目标容器标识,所述第三目标容器指针为所述第三目标容器标识的索引数据,第三目标容器为所述容器删除操作的删除对象;
建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
可选的,所述建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系,包括:
在确定所述第三目标容器标识和预先配置的待监控容器标识相同时,建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
可选的,所述方法还包括:
若所述第四关联关系中的所述第三目标容器指针和所述第一目标容器指针相同,则删除所述第一目标容器运行过程中的容器监控信息。
可选的,在响应于容器删除操作之后,所述方法还包括:
通过第二内核函数cgroup_rmdir触发第二伯克利包过滤器eBPF触发点,并运行与第二eBPF触发点对应的第二eBPF程序,所述第二eBPF程序用于,获取第三目标容器指针和第三目标容器标识,建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
可选的,所述第一目标容器的元数据包括所述第一目标容器所属容器组pod标签,所述方法还包括:
响应于接收到容器信息获取请求,解析所述容器信息获取请求得到目标pod标签;
若所述目标pod标签与所述第一目标容器所属容器组pod标签相同,则根据所述第一目标容器的容器信息,以及所述第一目标容器所属容器组pod中其他容器的容器信息,对所述容器信息获取请求作出响应。
可选的,所述方法应用于部署有Linux操作系统的电子设备,所述电子设备包括监控统计装置、索引触发装置、索引管理装置和索引关联装置,所述监控统计装置和所述索引触发装置运行于所述Linux操作系统的内核态,所述索引管理装置和索引关联装置运行于所述Linux操作系统的用户态。
可选的,所述监控统计装置,用于根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,并建立所述第一目标容器指针和所述容器监控信息的第一关联关系;
所述索引触发装置,响应于所述第一目标容器指针的首次生成,根据所述第一目标容器指针和所述第一目标容器标识,生成第一事件消息,并将所述第一事件消息推送至所述内核态和所述用户态的共享数据缓存区域;
所述索引管理装置,响应于在所述共享数据缓存区域监听到所述第一事件消息,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系;
所述索引关联装置,用于根据所述第一关联关系,获取与所述第一目标容器指针关联的所述容器监控信息,以及根据所述第二关联关系,获取与所述第一目标容器指针关联的所述第一目标容器的元数据,建立所述第一目标容器指针、所述容器监控信息以及所述第一目标容器的元数据三者的第三关联关系,得到所述第一目标容器的容器信息。
可选的,所述索引触发装置,用于获取第三目标容器指针和第三目标容器标识,根据所述第三目标容器指针和所述第三目标容器标识生成第二事件消息,并将所述第二事件消息推送至所述内核态和所述用户态的共享数据缓存区域;
所述索引管理装置,响应于在所述共享数据缓存区域监听到所述第二事件消息,建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
根据本公开实施方式的第二方面,提供一种容器监控装置,包括:
确定模块,被配置为响应于进程调度操作,生成当前运行进程的进程描述信息,所述进程描述信息包括第一目标容器指针和第一目标容器标识,所述第一目标容器指针为所述第一目标容器标识的索引数据,第一目标容器为与当前运行进程对应的容器;
获取模块,被配置为根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,并建立所述第一目标容器指针和所述容器监控信息的第一关联关系,所述容器监控信息为目标监控指标的指标数据,所述目标监控指标为容器维度的监控指标;
建立模块,被配置为响应于所述第一目标容器指针的首次生成,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系;
信息获取模块,被配置为根据所述第一关联关系,获取与所述第一目标容器指针关联的所述容器监控信息,以及根据所述第二关联关系,获取与所述第一目标容器指针关联的所述第一目标容器的元数据,建立所述第一目标容器指针、所述容器监控信息以及所述第一目标容器的元数据三者的第三关联关系,得到所述第一目标容器的容器信息。
可选的,所述获取模块,被配置为:
监控与所述第一目标容器标识对应的所述第一目标容器的运行状况,在所述第一目标容器的运行过程中,获取与所述第一目标容器关联的所述目标监控指标的指标数据,所述目标监控指标包括所述第一目标容器的处理器调度延时、所述第一目标容器的内存申请延时、所述第一目标容器的远程存储读写延时和/或所述第一目标容器的网络重传率;
将与所述第一目标容器关联的所述目标监控指标的指标数据,确定为所述第一目标容器的容器监控信息。
可选的,所述装置还包括:指针比对模块,被配置为:
根据容器指针历史信息表确定所述第一目标容器指针是否为首次生成,所述容器指针历史信息表中记录有,历史运行进程的进程描述信息中的第二目标容器指针,相应的第二目标容器为与历史运行进程对应的容器;
若是,则建立所述第二关联关系。
可选的,所述确定模块,被配置为:
响应于进程调度操作,基于物理资源隔离Cgroups机制生成当前运行进程的进程描述信息,所述进程描述信息为进程描述符的结构体task_struct,所述第一目标容器指针为所述task_struct中的kernfs entry指针。
可选的,所述建立模块,被配置为:
响应于所述第一目标容器标识和预先配置的待监控容器标识相同,根据所述第一目标容器标识,在预先存储的容器标识和容器元数据的对应关系中,获取所述第一目标容器的元数据;
建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系。
可选的,在响应于进程调度操作之后,所述装置还包括,第一触发模块,被配置为:
通过第一内核函数finish_task_switch触发第一伯克利包过滤器eBPF触发点,并运行与所述第一eBPF触发点对应的第一eBPF程序,所述第一eBPF程序响应于所述第一目标容器指针的首次生成,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系。
可选的,所述装置还包括,删除信息获取模块,被配置为:
响应于容器删除操作,获取第三目标容器指针和第三目标容器标识,所述第三目标容器指针为所述第三目标容器标识的索引数据,第三目标容器为所述容器删除操作的删除对象;
建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
可选的,所述删除信息获取模块,被配置为:
在确定所述第三目标容器标识和预先配置的待监控容器标识相同时,建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
可选的,所述装置还包括,删除模块,被配置为:
若所述第四关联关系中的所述第三目标容器指针和所述第一目标容器指针相同,则删除所述第一目标容器运行过程中的容器监控信息。
可选的,在响应于容器删除操作之后,所述装置还包括,第二触发模块,被配置为:
通过第二内核函数cgroup_rmdir触发第二伯克利包过滤器eBPF触发点,并运行与第二eBPF触发点对应的第二eBPF程序,所述第二eBPF程序用于,获取第三目标容器指针和第三目标容器标识,建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
可选的,所述第一目标容器的元数据包括所述第一目标容器所属容器组pod标签,所述装置还包括,请求处理模块,被配置为:
响应于接收到容器信息获取请求,解析所述容器信息获取请求得到目标pod标签;
若所述目标pod标签与所述第一目标容器所属容器组pod标签相同,则根据所述第一目标容器的容器信息,以及所述第一目标容器所属容器组pod中其他容器的容器信息,对所述容器信息获取请求作出响应。
可选的,所述装置为部署有Linux操作系统的电子设备,所述电子设备包括监控统计装置、索引触发装置、索引管理装置和索引关联装置,所述监控统计装置和所述索引触发装置运行于所述Linux操作系统的内核态,所述索引管理装置和索引关联装置运行于所述Linux操作系统的用户态。
可选的,所述监控统计装置,用于根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,并建立所述第一目标容器指针和所述容器监控信息的第一关联关系;
所述索引触发装置,响应于所述第一目标容器指针的首次生成,根据所述第一目标容器指针和所述第一目标容器标识,生成第一事件消息,并将所述第一事件消息推送至所述内核态和所述用户态的共享数据缓存区域;
所述索引管理装置,响应于在所述共享数据缓存区域监听到所述第一事件消息,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系;
所述索引关联装置,用于根据所述第一关联关系,获取与所述第一目标容器指针关联的所述容器监控信息,以及根据所述第二关联关系,获取与所述第一目标容器指针关联的所述第一目标容器的元数据,建立所述第一目标容器指针、所述容器监控信息以及所述第一目标容器的元数据三者的第三关联关系,得到所述第一目标容器的容器信息。
可选的,所述索引触发装置,用于获取第三目标容器指针和第三目标容器标识,根据所述第三目标容器指针和所述第三目标容器标识生成第二事件消息,并将所述第二事件消息推送至所述内核态和所述用户态的共享数据缓存区域;
所述索引管理装置,响应于在所述共享数据缓存区域监听到所述第二事件消息,建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
根据本公开实施方式的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种方法。
根据本公开实施方式的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一种方法。
根据本公开实施方式的容器信息监控方法、装置、存储介质及电子设备,一方面,可以在与容器对应的进程被调度后,对运行中的容器进行监控,并以进程描述信息中的容器指针作为信息统计维度进行容器监控信息统计,由于进程描述信息是进程被调度后一定会生成的信息,不论容器对应进程的生命周期的长短,都可以基于进程描述信息进行容器监控,从而提升容器监控信息获取的可靠性;另一方面,将容器信息获取过程从现有技术中的监控进程下探至本申请中的监控容器,从而使得监控维度的粒度更细,获取的容器信息更精准;再一方面,在容器监控过程中,在容器层面获取多维度的容器监控指标的指标数据,以提升容器监控所获得的监控信息的丰富度和价值度。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示出了根据本公开实施方式的一种容器信息监控方法运行环境的系统架构图;
图2示出了根据本公开实施方式的一种容器信息监控的流程图;
图3示出了根据本公开实施方式的一种电子设备架构图;
图4示出了根据本公开实施方式的一种第一事件消息生成过程的流程图;
图5示出了根据本公开实施方式的一种容器信息获取过程的数据交互图;
图6示出了根据本公开实施方式的一种容器信息获取过程的交互流程图;
图7示出了根据本公开实施方式的一种容器监控信息删除过程的数据交互图;
图8示出了根据本公开实施方式的一种容器监控信息删除过程的交互流程图;
图9示出了根据本公开实施方式的一种容器信息监控装置的结构框图;
图10示出了根据本公开实施方式的电子设备的结构框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的应用程序(包括固件、驻留应用程序、微代码等),或者硬件和应用程序结合的形式。
根据本公开的实施方式,提供一种容器信息监控方法、装置、计算机可读存储介质及电子设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐述本公开的原理和精神。
发明概述
本发明人发现,在Linux操作系统中,可以使用物理资源隔离Cgroups机制提供的资源控制能力,对运行过程中的容器进行CPU、内存等系统资源的分配;伯克利包过滤器(extended Berkeley Packet Filter,eBPF)机制可以对系统性能进行监控。
在容器运行过程中,Cgroups机制以与容器对应的进程标识或者进程组标识为依据,生成用于管理进程或者进程组的管理文件,其中,管理文件的文件目录中通常可以包含容器标识信息;同时,eBPF机制可以以进程标识或者进程组标识为依据,对进程的运行信息进行监控;进一步的,可以以进程标识或者进程组标识为依据,在文件目标获取与进程标识或者进程组标识对应的容器标识信息;并在进程的运行信息中,得到与进程标识或者进程组标识对应的进程的运行信息,得到与容器标识对应容器的运行信息。
相关技术中,上述对容器的监控过程可以基于不同版本的Cgroups机制实现,在第一种版本的Cgroups(Cgroups v1)机制中,一方面,由于Cgroups v1机制本身的性能限制,导致eBPF机制通常只能监控与容器对应的进程运行过程中,进程的运行对设备硬件资源的消耗状况,例如,与容器对应的进程运行过程中设备CPU的使用量,设备内存的占用量和/或设备CPU的使用时长,而在与容器对应的进程运行过程中,对于容器维度的监控指标无法进行监控,也即是,现有技术中对容器的运行状况无法进行监控;另一方面,对于生命周期短的进程所对应的容器,会出现由于进程的生命周期太短而不能及时生成管理文件的情况,导致eBPF机制无法获取容器标识,进而无法对短生命周期的进程所对应的容器进行监控;在第二种版本的Cgroups(Cgroups v2)机制中,Cgroups v2机制可以对短生命周期的进程所对应的容器进行监控,以及对容器维度的监控指标进行监控,但是这些能力的实现是以修改操作系统的底层代码为代价的,工程量大,需要花费大量的人力和时间。
鉴于上述内容,本公开的基本方案在于:提供一种容器信息监控方法、装置、计算机可读存储介质及电子设备,可以响应于进程调度操作,生成当前运行进程的进程描述信息,其中,进程描述信息包括第一目标容器指针和第一目标容器标识,第一目标容器指针为第一目标容器标识的索引数据,第一目标容器为与当前运行进程对应的容器;以及,根据第一目标容器指针,获取第一目标容器的容器监控信息,并建立第一目标容器指针和容器监控信息的第一关联关系,其中,容器监控信息为目标监控指标的指标数据,目标监控指标为容器维度的监控指标;进一步的,可以响应于第一目标容器指针的首次生成,根据第一目标容器标识获取第一目标容器的元数据,并建立第一目标容器指针和第一目标容器的元数据的第二关联关系;最后,根据第一关联关系,获取与第一目标容器指针关联的容器监控信息,以及根据第二关联关系,获取与第一目标容器指针关联的第一目标容器的元数据,建立第一目标容器指针、容器监控信息以及第一目标容器的元数据三者的第三关联关系,得到第一目标容器的容器信息。本公开可以对容器的运行信息进行监控,并以容器指针为信息统计维度,对监控得到的信息进行记录,得到容器监控信息;且容器监控信息为容器维度监控指标的监控数据,丰富了监控指标的维度,提升了获取的容器监控信息的丰富度。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
需要注意的是,下述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
本公开可以应用于基于容器实现业务服务的所有场景,例如:在Linux操作系统中,将容器信息获取过程从现有技术中的监控进程下探至本申请中的监控容器,从而使得监控维度的粒度更细,获取的容器信息更精准;其中,在与容器对应的进程被调度后,对运行中的容器进行监控,并以进程描述信息中的容器指针作为信息统计维度进行容器监控信息统计,得到容器监控信息,提升容器监控信息获取的可靠性;且容器监控信息为容器层面获取多维度的容器监控指标,丰富了容器运行过程中获取的监控信息的丰富度和价值度。
图1示出了本公开实施例中提供的容器信息监控方法运行环境的系统架构图。如图1所示,该系统架构100可以包括:电子设备110和信息采集设备120,其中,电子设备可以是服务器或云服务器等,电子设备中部署有提供各种业务服务的容器,例如,可以是音乐平台的服务器,短视频平台的服务器或者购物平台的服务器。信息采集设备120可以是用于采集容器信息监控结果的终端设备,例如,运维人员所使用的计算机,平板电脑或者笔记本等。一般情况下,电子设备110与信息采集设备120之间可以建立网络连接以进行交互。
在一种可选的实施方式中,电子设备110可以响应于进程调度操作,生成当前运行进程的进程描述信息,进程描述信息包括第一目标容器指针和第一目标容器标识,根据第一目标容器指针,获取第一目标容器的容器监控信息,并建立第一目标容器指针和容器监控信息的第一关联关系,响应于第一目标容器指针的首次生成,根据第一目标容器标识获取第一目标容器的元数据,并建立第一目标容器指针和第一目标容器的元数据的第二关联关系。
信息采集设备120可以向电子设备110发送容器信息获取请求,电子设备110可以解析容器信息获取请求得到第一目标容器指针,并根据第一关联关系,获取与第一目标容器指针关联的容器监控信息,以及根据第二关联关系,获取与第一目标容器指针关联的第一目标容器的元数据,建立第一目标容器指针、容器监控信息以及第一目标容器的元数据三者的第三关联关系,得到第一目标容器的容器信息,并将第一目标容器的容器信息发送至信息采集设备120,对容器信息获取请求作出响应。
示例性方法
本公开的示例性实施方式首先提供一种容器信息监控方法,该容器信息监控方法可以应用于云服务器中,如图2所示,该方法可以包括以下步骤S201至S204:
步骤S201,响应于进程调度操作,生成当前运行进程的进程描述信息;
在本公开实施例中,云服务器检测到云服务器中部署的容器对应的进程被调度开始运行,云服务器可以生成当前运行进程的进程描述信息。其中,当前运行进程的进程描述信息可以包括第一目标容器指针和第一目标容器标识,第一目标容器指针为第一目标容器标识的索引数据,第一目标容器为与当前运行进程对应的容器。
步骤S202,根据第一目标容器指针,获取第一目标容器的容器监控信息,并建立第一目标容器指针和容器监控信息的第一关联关系;
在本公开实施例中,容器监控信息为目标监控指标的指标数据,目标监控指标为容器维度的监控指标;例如,目标监控指标可以包括容器的处理器调度延时、容器的在操作系统中的内存申请延时、容器的远程存储读取延时、容器的远程存储写入延时和/或容器的网络重传率等。由于目标监控指标为容器维度的,且目标监控指标的类型丰富,可以提升容器监控所获得的监控信息的丰富度和价值度。
步骤S203,响应于第一目标容器指针的首次生成,根据第一目标容器标识获取第一目标容器的元数据,并建立第一目标容器指针和第一目标容器的元数据的第二关联关系;
在本公开实施例中,容器的元数据为创建容器时,为容器配置的基础信息,例如,容器标识,容器所属容器组pod标签,容器所在Pod的命名空间Namespace名称等。
步骤S204,根据第一关联关系,获取与第一目标容器指针关联的容器监控信息,以及根据第二关联关系,获取与第一目标容器指针关联的第一目标容器的元数据,建立第一目标容器指针、容器监控信息以及第一目标容器的元数据三者的第三关联关系,得到第一目标容器的容器信息。
综上所述,本公开实施例提供的容器信息监控方法,一方面,可以在与容器对应的进程被调度后,对运行中的容器进行监控,并以进程描述信息中的容器指针为信息统计维度存储容器监控信息,由于进程描述信息是进程被调度后一定会生成的信息,从而提升容器监控信息获取的可靠性;另一方面,在容器监控过程中,监控指标包括容器维度的监控指标,丰富了监控指标的维度,提升了获取的容器监控信息的丰富度。
在一个可选的实施例中,在上述步骤S201中,云服务器可以响应于进程调度操作,生成当前运行进程的进程描述信息。
在本公开实施例中,进程描述信息用于记录进程运行过程中的进程相关信息,例如,进程描述信息可以包括进程状态、进程标识、进程的依赖进程信息,以及进程优先级等信息,其中,依赖进程信息可以包括父进程信息或子进程信息。在容器关联的进程被调度后,生成的进程描述信息中还包括容器指针和容器标识,其中,容器指针为容器标识的索引数据。例如,进程描述信息为进程描述符的结构体task_struct,容器指针为结构体task_struct中的kernfs entry指针。
在一种可选的实施方式中,云服务器响应于进程调度操作,生成当前运行进程的进程描述信息的过程可以包括:在云服务器中部署的容器被调度时,云服务器可以响应于进程调度操作,基于物理资源隔离Cgroups机制生成当前运行进程的进程描述信息,其中,当前运行进程的进程描述信息包括第一目标容器指针和第一目标容器标识,第一目标容器指针为第一目标容器标识的索引数据,第一目标容器为与当前运行进程对应的容器。其中,Cgroups机制可以是第一种版本的Cgroups机制,或者,第二种版本的Cgroups机制,本公开实施例对此不作限定。
需要说明的是,在本公开实施例中,基于Cgroups机制生成的当前运行进程的进程描述信息为进程描述符的结构体task_struct,第一目标容器指针为task_struct中的kernfs entry指针。由于Cgroups机制生成的进程描述信息(task_struct)中,包含了用于查找到容器标识的容器指针(kernfs entry),其中,容器指针与容器标识为一一对应关系,可以保证基于容器指针实现容器维度的容器监控方案。
可以理解的是,在本公开实施例中,在基于Cgroups机制生成当前运行进程的进程描述信息后,云服务器可以解析当前运行进程的进程描述符的结构体task_struct,获取第一目标容器指针(kernfs entry),示例性的,假设当前运行进程的进程描述符的结构体task_struct标识为cur_task,则在结构体标识为cur_task的结构体中,查看当前运行进程对应的cgroups[0],其中,cgroups[0]中的0为进程cpu节点(cpuset Cgroup)索引,用于指示在cgroups中查找当前进程对应的进程cpuset Cgroup信息,进一步的,可以在当前进程对应的cpuset Cgroup信息中查找kernfs entry指针,得到第一目标容器指针。
在一个可选的实施例中,在上述步骤S202中,云服务器可以根据第一目标容器指针,获取第一目标容器的容器监控信息,并建立第一目标容器指针和容器监控信息的第一关联关系。
在本公开实施例中,容器监控信息为目标监控指标的指标数据,目标监控指标为容器维度的监控指标,其中,目标监控指标可以基于实际的监控需求确定,本公开实施例对此不作限定。示例性地,第一目标容器的目标监控指标可以包括第一目标容器的处理器调度延时、第一目标容器的在操作系统中的内存申请延时、第一目标容器的远程存储读取延时、第一目标容器的远程存储写入延时和/或第一目标容器的网络重传率等。
在一种可选的实施方式中,云服务器根据第一目标容器指针,获取第一目标容器的容器监控信息的过程可以包括:监控与第一目标容器标识对应的第一目标容器的运行状况,在第一目标容器的运行过程中,获取与第一目标容器关联的目标监控指标的指标数据。在云服务器可以实现容器维度的监控指标的监控数据获取,丰富获取的与容器相关的监控数据,满足多样化的容器的运行数据的监控需求。
在一种可选的实施方式中,云服务器根据第一目标容器指针,获取第一目标容器的容器监控信息,并建立第一目标容器指针和容器监控信息的第一关联关系的过程可以基于伯克利包过滤器eBPF机制实现,则在云服务器获取与第一目标容器关联的目标监控指标的指标数据,建立第一目标容器指针和容器监控信息的第一关联关系之后,可以将第一目标容器指针和容器监控信息的第一关联关系存储至容器监控信息表(eBPF Map)。
需要说明的是,在本公开实施例中,在容器的监控场景下,在获取容器的容器监控信息的同时,还需要获取容器的元数据,才能得到完整的容器信息。其中,容器的元数据为创建容器时,为容器配置的基础信息,例如,容器标识,容器所属容器组pod标签,容器所在Pod 的命名空间Namespace名称等。在云服务器中,容器可能被多次启用,但是,容器的元数据不变,由于本公开实施例以容器指针为容器信息的信息统计维度,因此,需要在容器首次被运行后,建立容器指针和容器的元数据之间的对应关系,以便基于容器指针获取容器的元数据,确定容器的容器信息。
在一种可选的实施方式中,在得到进程描述信息后,可以根据容器指针历史信息表确定第一目标容器指针是否为首次生成,若是,表明第一目标容器在操作系统中首次被调用,则建立关于第一目标容器的第二关联关系,并将第一目标容器指针和第一目标容器标识存储至容器指针历史信息表;若否,表明第一目标容器在操作系统中非首次被调用,云服务器中已经建立了关于第一目标容器的第二关联关系,则不重复建立关于第一目标容器的第二关联关系,其中,容器指针历史信息表中记录有,历史运行进程的进程描述信息中的第二目标容器指针,相应的,第二目标容器为与历史运行进程对应的容器。其中,第二关联关系为容器指针和容器的元数据之间的关联关系,第一目标容器的第二关联关系为第一目标容器指针和第一目标容器的元数据之间的关联关系。针对第一目标容器,若云服务器确定第一目标容器对应的进程首次被调度,则建立第一目标容器指针和第一目标容器的元数据的第二关联关系,便于根据第一目标容器指针在第二关联关系中获取第一目标容器的元数据,以实现基于容器指针统计维度的第一目标容器的容器信息获取;若云服务器确定第一目标容器对应的进程非首次被调度,则无需重复建立第一目标容器指针和第一目标容器的元数据之间的关联关系,减少云服务器的资源消耗,且由于云服务器中已经存在第一目标容器指针和第一目标容器的元数据的第二关联关系,可以根据第一目标容器指针在第二关联关系中获取第一目标容器的元数据,不会影响基于容器指针统计维度的第一目标容器的容器信息获取。
在一个可选的实施例中,在上述步骤S203中,云服务器可以响应于第一目标容器指针的首次生成,根据第一目标容器标识获取第一目标容器的元数据,并建立第一目标容器指针和第一目标容器的元数据的第二关联关系。
在一种可选的实施方式中,云服务器根据第一目标容器标识获取第一目标容器的元数据,并建立第一目标容器指针和第一目标容器的元数据的第二关联关系的过程可以包括:根据第一目标容器标识,在预先存储的容器标识和容器元数据的对应关系中,获取第一目标容器的元数据;建立第一目标容器指针和第一目标容器的元数据的第二关联关系。云服务器可以基于预先存储的容器标识和容器元数据的对应关系,建立第一目标容器指针和第一目标容器的元数据之间的第二关联关系,便于云服务器基于第一目标容器指针获取第一目标容器的元数据,以确定第一目标容器的容器信息。
在一种可选的实施方式中,云服务器根据第一目标容器标识获取第一目标容器的元数据,并建立第一目标容器指针和第一目标容器的元数据的第二关联关系的过程可以包括:响应于第一目标容器标识和预先配置的待监控容器标识相同,根据第一目标容器标识,在预先存储的容器标识和容器元数据的对应关系中,获取第一目标容器的元数据;建立第一目标容器指针和第一目标容器的元数据的第二关联关系。其中,预先配置的待监控容器标识为与业务场景对应的容器标识,其中,与业务场景对应的容器为在业务场景下提供业务服务的容器,待监控容器标识可以基于实际需要确定,本公开实施例对此不作限定,例如,云服务器中的容器包括:与直播场景对应的容器,与在线听歌场景对应的容器以及与视频通话场景对应的业务容器,预先配置的待监控容器标识可以包括:与直播场景对应容器的容器标识,与在线听歌场景对应容器的容器标识。可以根据实际需求,确定是否需要对与业务场景对应的容器进行监控,以满足多样化的容器监控需求。
在本公开实施例中,对于容器的监控过程可以基于伯克利包过滤器eBPF机制实现,可以在eBPF机制的配置过程中,配置第一eBPF触发点,第一eBPF触发点被触发后,云服务器可以建立容器指针和容器的元数据之间的关联关系,第一eBPF触发点可以由第一内核函数finish_task_switch触发,第一内核函数finish_task_switch为进程被调度后,开始运行被调度进程的函数。
在一种可选的实施方式中,云服务器可以响应于进程调度操作,通过第一内核函数finish_task_switch触发第一伯克利包过滤器eBPF触发点,并运行与第一eBPF触发点对应的第一eBPF程序,第一eBPF程序可以响应于第一目标容器指针的首次生成,根据第一目标容器标识获取第一目标容器的元数据,并建立第一目标容器指针和第一目标容器的元数据的第二关联关系。其中,eBPF机制可以根据实际需要开启或者关闭,eBPF机制的开启或者关闭状态可以基于对eBPF机制的设置实现,而不是通过关闭操作系统或者重启操作系统实现;云服务器可以在需要对容器信息进行监控的时候,响应于eBPF机制的启动操作启用eBPF机制,并基于eBPF机制生成第一目标容器指针和第一目标容器的元数据的第二关联关系,实现第一目标容器的元数据获取,避免在第一目标容器的元数据获取过程中对操作系统的重启,保障操作系统正常运行。
其中,第一目标容器指针和第一目标容器的元数据的第二关联关系可以存储至容器监控信息表(Cache Map),Cache Map中的数据是以键值对key-value形式进行存储的,在Cache Map中,key为第一目标容器指针,value为第一目标容器的元数据。
在一个可选的实施例中,在上述步骤S204中,云服务器可以根据第一关联关系,获取与第一目标容器指针关联的容器监控信息,以及根据第二关联关系,获取与第一目标容器指针关联的第一目标容器的元数据,建立第一目标容器指针、容器监控信息以及第一目标容器的元数据三者的第三关联关系,得到第一目标容器的容器信息。
在本公开实施例中,云服务器提供对于任一容器的容器信息的查询,也提供对一组容器的容器信息的查询。其中,云服务器可以有容器信息获取请求触发,确定容器的容器信息,容器信息获取请求中可以携带容器指针,或者容器组pod标签。可以理解的是,容器信息获取请求中携带的是容器指针时,云服务器可以对容器指针对应的容器信息进行查询;容器信息获取请求中携带的是容器组pod标签时,云服务器可以对容器组pod标签对应的多个容器的容器信息进行查询。
在一种可选的实施方式中,云服务器可以响应于容器信息获取请求,解析容器信息获取请求得到第一目标容器指针,并根据第一目标容器的容器信息,对容器信息获取请求作出响应。云服务器可以满足用户对任一容器的容器信息的获取需求,提升用户对于容器信息的查阅满意度。
在一种可选的实施方式中,云服务器可以响应于接收到容器信息获取请求,解析容器信息获取请求得到目标容器组pod标签;将目标pod标签与第一目标容器的元数据中,第一目标容器所属容器组pod标签进行比对,若目标pod标签与第一目标容器所属容器组pod标签不相同,则根据目标pod标签对应的容器组pod中每个容器的容器信息,对容器信息获取请求作出响应;若目标pod标签与第一目标容器所属容器组pod标签相同,则根据第一目标容器的容器信息,以及第一目标容器所属容器组pod中其他容器的容器信息,对容器信息获取请求作出响应。云服务器可以满足用户对一组容器的容器信息的获取需求,减少用户获取多个容器的容器信息的操作流程,提升用户的容器信息查阅体验。
在一种可选的实施方式中,对于云服务器中已部署的容器,可以对不需要提供业务服务的容器进行删除,减少对云服务器的内存空间占用。其中,在云服务其中的容器被删除后,云服务器可以响应于容器删除操作,获取第三目标容器指针和第三目标容器标识;建立第三目标容器指针和第三目标容器的删除完成时间之间的第四关联关系。其中,第三目标容器指针为第三目标容器标识的索引数据,第三目标容器为容器删除操作的删除对象。云服务器可以对容器的删除操作进行监控,以容器指针为容器删除操作的信息统计维度,获取被删除容器的容器指针和删除时间信息,得到删除容器信息,便于根据容器指针对被删除容器的容器监控信息进行删除,以维护容器的生命周期。
其中,第三目标容器指针和第三目标容器的删除完成时间之间的第四关联关系可以存储至删除容器信息表(Delete Map),Delete Map中的数据以是以键值对key-value形式进行存储的,在Delete Map中,key值为第三目标容器指针,value值为第三目标容器的删除完成时间。
在一种可选的实施方式中,云服务器建立第三目标容器指针和第三目标容器的删除完成时间之间的第四关联关系的过程可以包括:在确定第三目标容器标识和预先配置的待监控容器标识相同时,建立第三目标容器指针和第三目标容器的删除完成时间之间的第四关联关系;其中,与业务场景对应的容器标识,其中,与业务场景对应的容器为在相应业务场景下提供业务服务的容器,待监控容器标识可以基于实际需要确定,本公开实施例对此不作限定。若预先设置的监控对象被删除,则获取被删除容器的容器指针和删除时间信息,实现容器指针维度的删除事件的记录,便于根据容器指针对被删除的预设监控对象的容器监控信息进行删除,以对预先设置的监控对象退出监控。
在一种可选的实施方式中,云服务器对于容器删除事件的监控过程可以基于伯克利包过滤器eBPF机制实现,其中,在eBPF机制的配置过程中,配置第二eBPF触发点,第二eBPF触发点被触发后,云服务器可以建立被删除容器的容器指针和被删除容器的删除完成时间之间的关联关系,第二eBPF触发点可以由第二内核函数cgroup_rmdir,第二内核函数cgroup_rmdir为检测到容器删除操作后,开始删除容器的函数。
其中,云服务器可以响应于容器删除操作,通过第二内核函数cgroup_rmdir触发第二伯克利包过滤器eBPF触发点,并运行与第二eBPF触发点对应的第二eBPF程序,其中,第二eBPF程序用于,获取第三目标容器指针和第三目标容器标识,建立第三目标容器指针和第三目标容器的删除完成时间之间的第四关联关系。其中,eBPF机制可以根据实际需要开启或者关闭,eBPF机制的开启或者关闭状态可以基于对eBPF机制的设置实现,而不是通过关闭操作系统或者重启操作系统实现;云服务可以在需要对容器信息进行删除的时候,响应于eBPF机制的启动操作启用eBPF机制,并基于eBPF机制建立第三目标容器指针和第三目标容器的删除完成时间之间的第四关联关系,以记录被删除容器的容器删除信息,避免在被删除容器的容器删除事件记录过程中对操作系统的重启,保障操作系统正常运行。
在一种可选的实施方式中,可以理解的是,对于被删除的容器,云服务器可以不再对容器的容器信息进行监控;在建立第三目标容器指针和第三目标容器的删除完成时间之间的第四关联关系之后,若云服务器确定第四关联关系中的第三目标容器指针和第一目标容器指针相同,则删除第一目标容器运行过程中的容器监控信息。云服务器可以对被删除容器的容器监控信息进行删除,减少对云服务器的存储空间的占用。
在一种可选的实施方式中,云服务器可以周期性的接收到信息采集设备发送的容器信息获取请求,在每个信息采集周期内,云服务器接收到容器信息获取请求后,可以根据上述步骤S204中的方法得到第一目标容器的容器信息;进一步的,云服务器还可以查找第四关联关系,若确定第四关联关系中的第三目标容器指针和第一目标容器指针相同,则确定第一目标容器被删除。其中,第一目标容器可能是在容器信息获取请求的请求发起时刻之前删除的,也可能是在容器信息获取请求的请求发起时刻之后删除的,其中,信息采集设备发送的容器信息获取请求中,携带有信息采集设备发起容器信息获取请求的请求发起时刻。
需要说明的是,在本公开实施例中,在当前信息采集周期内,若云服务器确定第一目标容器被删除,则云服务器需要确定第一目标容器在容器信息获取请求的请求发起时刻之前被删除,还是在容器信息获取请求的请求发起时刻之后被删除;其中,若云服务器确定第一目标容器在容器信息获取请求的请求发起时刻之前被删除,表明在当前信息采集周期内的容器信息获取请求发起时刻,第一目标容器已经被删除,云服务器在当前信息采集周期内获取到容器信息获取请求后,禁止向信息采集设备发送第一目标容器的容器信息,则在当前信息采集周期内,云服务器向信息采集设备发送第一目标容器被删除的提示信息;若云服务器确定第一目标容器在容器信息获取请求的请求发起时刻之后被删除,表明在当前信息采集周期内的容器信息获取请求发起时刻,第一目标容器还没有被删除,云服务器在当前信息采集周期内获取到容器信息获取请求后,需要向信息采集设备发送第一目标容器的容器信息,则在当前信息采集周期内,云服务器向信息采集设备发送第一目标容器的容器信息。
进一步的,在当前信息采集周期内,若云服务器确定第一目标容器被删除,则可以删除第一目标容器的容器监控信息,释放云服务器存储资源;同时,云服务器可以停止对第一目标容器进行监控,减少数据处理资源的消耗;其中,信息采集周期可以基于实际需要确定,本公开实施例对此不作限定,例如,信息采集周期可以为30秒,云服务器可以每间隔30秒接收到一次容器信息获取请求。在容器被删除后,可以对容器删除时间和容器信息获取请求的请求生成时刻进行比对,确定当前数据采集周期是否可以返回容器的容器信息,防止在容器被删除后继续向信息采集设备发送容器的容器信息,可以提高云服务器处理容器信息获取请求的处理结果的精准度。
需要说明的是,在本公开实施例中提供的容器信息监控方法可以应用于部署有Linux操作系统的云服务器中,如图3所示,云服务器110包括监控统计装置301、索引触发装置302、索引管理装置303和索引关联装置304,监控统计装置301和索引触发装置302运行于Linux操作系统的内核态,索引管理装置303和索引关联装置304运行于Linux操作系统的用户态。
其中,内核态与用户态是操作系统的两种运行等级,操作系统在内核态运行时,可以得到较多的系统资源,而在用户态运行时,操作系统的资源会被限制;由于与容器对应的进程在运行过程中,需要根据容器中的业务应用程序提供对应的业务服务,操作系统系统需要尽可能的集中系统资源对外提供服务,因此,与容器对应的进程属于内核进程,在进程被调度后,需要运行在操作系统的内核态;为了实现对内核态的进程进行监控,监控统计装置和索引触发装置需要运行于Linux操作系统的内核态,以实现对进程对应容器的监控;而用于处理容器信息获取请求的索引管理装置和索引关联装置,执行的是容器信息的读取过程,且需要实现容器信息的对外传输,因此,索引管理装置和索引关联装置需要运行于操作系统的用户态。
在一种可选的实施方式中,在云服务器响应于进程调度操作,生成当前运行进程的进程描述信息后,监控统计装置,用于根据第一目标容器指针,获取第一目标容器的容器监控信息,并建立第一目标容器指针和容器监控信息的第一关联关系;
索引触发装置,响应于第一目标容器指针的首次生成,根据第一目标容器指针和第一目标容器标识,生成第一事件消息,并将第一事件消息推送至内核态和用户态的共享数据缓存区域;
其中,如图4所述,云服务器响应于进程调度操作,生成当前运行进程的进程描述信息后,索引触发装置生成第一事件消息的过程可以包括:
S401,获取当前运行进程的进程描述信息;
其中,当前运行进程的进程描述信息为进程描述符的结构体task_struct。
S402,解析进程描述符的结构体task_struct,获取第一目标容器指针(kernfsentry);
S403,根据容器指针历史信息表确定第一目标容器指针是否为首次生成;
S404,若否,则不建立关于第一目标容器的第二关联关系;
S405,若是,则响应于第一目标容器标识和预先配置的待监控容器标识相同,根据第一目标容器指针和第一目标容器标识,生成第一事件消息;
S406,将第一事件消息推送至内核态和用户态的共享数据缓存区域;
在本公开实施例中,基于共享数据缓存区域,可以实现内核态向用户态传输数据传输,其中,内核态的索引触发装置可以将第一事件消息推送至共享数据缓存区域,用户态的索引管理装置监听共享数据缓存区域,在索引管理装置监听到第一事件消息后,立刻建立第一目标容器指针和第一目标容器的元数据的第二关联关系,提高确定第一目标容器指针和第一目标容器的元数据的第二关联关的效率。
S407,将第一目标容器指针和第一目标容器标识存储至容器指针历史信息表。
索引管理装置,响应于在共享数据缓存区域监听到第一事件消息,根据第一目标容器标识获取第一目标容器的元数据,并建立第一目标容器指针和第一目标容器的元数据的第二关联关系;
索引关联装置,用于根据第一关联关系,获取与第一目标容器指针关联的容器监控信息,以及根据第二关联关系,获取与第一目标容器指针关联的第一目标容器的元数据,建立第一目标容器指针、容器监控信息以及第一目标容器的元数据三者的第三关联关系,得到第一目标容器的容器信息。
其中,索引关联装置基于监控统计装置和索引管理装置,获取第一目标容器的容器信息的数据交互过程可以参考图5,如图5所示,索引关联装置304可以向监控统计装置301发送与第一目标容器指针关联的容器监控信息获取请求,并接收监控统计装置301在容器监控信息表(eBPF Map)中获取的,与第一目标容器指针关联的容器监控信息;
同时,索引关联装置304可以向索引管理装置303发送与第一目标容器指针关联的容器元数据获取请求,并接收索引管理装置303在容器监控信息表(Cache Map)获取的,与第一目标容器指针关联的第一目标容器的元数据;
进一步的,索引关联装置304可以建立第一目标容器指针、容器监控信息以及第一目标容器的元数据三者的第三关联关系,得到第一目标容器的容器信息。
其中,索引关联装置基于监控统计装置和索引管理装置,获取第一目标容器的容器信息的数据交互流程可以参考图6,如图6所示,包括:
步骤S601,索引关联装置向监控统计装置发送与第一目标容器指针关联的容器监控信息获取请求;
步骤S602,监控统计装置响应于容器监控信息获取请求,在容器监控信息表(eBPFMap)中获取,与第一目标容器指针关联的容器监控信息,并将与第一目标容器指针关联的容器监控信息发送至索引关联装置;
步骤S603,索引关联装置向索引管理装置发送与第一目标容器指针关联的容器元数据获取请求;
步骤S604,索引管理装置响应于容器元数据获取请求,在容器监控信息表(CacheMap)获取,与第一目标容器指针关联的第一目标容器的元数据,并将与第一目标容器指针关联的第一目标容器的元数据发送至索引关联装置;
步骤S605,索引关联装置建立第一目标容器指针、容器监控信息以及第一目标容器的元数据三者的第三关联关系,得到第一目标容器的容器信息。
可以理解的是,由于与容器对应的进程属于内核进程,在进程被调度后,需要运行在操作系统的内核态;为了实现对内核态的进程进行监控,监控统计装置和索引触发装置需要运行于Linux操作系统的内核态,在容器对应的进程被调用后,监控统计装置可以及时监控容器的运行状态,对监控容器得到的信息进行存储,得到容器监控信息;索引触发装置可以确定当前运行进程对应容器的容器标识信息,并及时触发在用户态运行的索引管理装置获取当前运行进程对应的容器的元数据;由于索引管理装置和索引关联装置运行于用户态,索引管理装置在被触发后可立刻获取当前运行进程对应的容器的元数据,并在接收到容器信息获取请求后,在索引管理装置中获取容器的元数据,以及在监控统计装置获取容器的容器监控信息,得到容器信息,以便于高效的提供容器信息获取服务。其中,索引为容器相关信息的信息标识,索引可以为容器指针,例如,监控统计装置中的容器相关信息为容器监控信息,则监控统计装置的索引为容器监控信息的标识;索引触发装置中的容器相关信息为容器标识,则索引触发装置的 索引为容器标识的标识;索引管理装置中的容器相关信息为容器的元数据,则索引管理装置中的索引为容器的元数据的标识;索引关联装置中的容器相关信息为容器信息,则索引关联装置中的索引为容器信息的标识。
在一种可选的实施方式中,在云服务器检测到容器删除操作之后,索引触发装置,用于获取第三目标容器指针和第三目标容器标识,根据第三目标容器指针和第三目标容器标识生成第二事件消息,并将第二事件消息推送至内核态和用户态的共享数据缓存区域;
索引管理装置,响应于在共享数据缓存区域监听到第二事件消息,建立第三目标容器指针和第三目标容器的删除完成时间之间的第四关联关系。索引触发装置运行于内核态,在容器被删除后,索引触发装置可以以容器指针为信息统计维度,记录被删除容器的容器标识信息,并及时触发用户态的索引管理装置以容器指针为信息统计维度,对被删除容器的删除完成时间进行记录,得到容器删除事件信息;在索引管理装置以容器指针为信息统计维度,对容器删除事件信息进行记录后,若索引关联装置接收到容器信息获取请求,还可以根据容器删除事件信息,在确定容器被删除后,通知监控统计装置删除相应被删除容器的容器监控信息,以及时释放内核态存储空间。
在一种可选的实施方式中,索引关联装置根据容器删除事件信息,在确定容器被删除后,通知监控统计装置删除相应被删除容器的容器监控信息的数据交互过程可以参考图7,如图7所示,索引关联装置304可以向索引管理装置303发送与第一目标容器指针关联的删除容器信息查询请求,若索引管理装置303确定第一目标容器指针在删除容器信息表(Delete Map)中,则可以向索引关联装置304返回第一目标容器指针和第一目标容器的删除完成时间;
若索引关联装置304可以确定接收到的容器信息获取请求的请求发起时刻,晚于第一目标容器的删除完成时间,则向监控统计装置301发送与第一目标容器指针关联的容器监控信息删除指令,以使监控统计装置301删除与第一目标容器指针关联的第一目标容器的容器监控信息,释放操作系统在内核态的存储资源;同时,内核态的监控统计装置也可以停止对第一目标容器进行监控,减少操作系统在内核态的数据处理资源的消耗。
其中,索引关联装置根据容器删除事件信息,在确定容器被删除后,通知监控统计装置删除相应被删除容器的容器监控信息的交互流程可以参考图8,如图8所示,包括:
步骤S801,索引关联装置向索引管理装置发送与第一目标容器指针关联的删除容器信息查询请求;
步骤S802,若索引管理装置确定第一目标容器指针在删除容器信息表(DeleteMap)中,则向索引关联装置发送第一目标容器指针和第一目标容器的删除完成时间;
步骤S803,若索引关联装置确定接收到的容器信息获取请求的请求发起时刻,晚于第一目标容器的删除完成时间,则向监控统计装置发送与第一目标容器指针关联的容器监控信息删除指令;
步骤S804,监控统计装置响应于容器监控信息删除指令,删除与第一目标容器指针关联的第一目标容器的容器监控信息。
示例性装置
在介绍了本公开示例性实施方式的方法之后,接下来,参考图9对本公开示例性实施方式的装置进行说明。
本公开实施例提供一种容器监控装置,如图9所示,容器监控装置900,包括:
确定模块901,被配置为响应于进程调度操作,生成当前运行进程的进程描述信息,所述进程描述信息包括第一目标容器指针和第一目标容器标识,所述第一目标容器指针为所述第一目标容器标识的索引数据,第一目标容器为与当前运行进程对应的容器;
获取模块902,被配置为根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,并建立所述第一目标容器指针和所述容器监控信息的第一关联关系,所述容器监控信息为目标监控指标的指标数据,所述目标监控指标为容器维度的监控指标;
建立模块903,被配置为响应于所述第一目标容器指针的首次生成,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系;
信息获取模块904,被配置为根据所述第一关联关系,获取与所述第一目标容器指针关联的所述容器监控信息,以及根据所述第二关联关系,获取与所述第一目标容器指针关联的所述第一目标容器的元数据,建立所述第一目标容器指针、所述容器监控信息以及所述第一目标容器的元数据三者的第三关联关系,得到所述第一目标容器的容器信息。
可选的,所述获取模块902,被配置为:
监控与所述第一目标容器标识对应的所述第一目标容器的运行状况,在所述第一目标容器的运行过程中,获取与所述第一目标容器关联的所述目标监控指标的指标数据,所述目标监控指标包括所述第一目标容器的处理器调度延时、所述第一目标容器的内存申请延时、所述第一目标容器的远程存储读写延时和/或所述第一目标容器的网络重传率;
将与所述第一目标容器关联的所述目标监控指标的指标数据,确定为所述第一目标容器的容器监控信息。
可选的,所述装置还包括:指针比对模块905,被配置为:
根据容器指针历史信息表确定所述第一目标容器指针是否为首次生成,所述容器指针历史信息表中记录有,历史运行进程的进程描述信息中的第二目标容器指针,相应的第二目标容器为与历史运行进程对应的容器;
若是,则建立所述第二关联关系。
可选的,所述确定模块901,被配置为:
响应于进程调度操作,基于物理资源隔离Cgroups机制生成当前运行进程的进程描述信息,所述进程描述信息为进程描述符的结构体task_struct,所述第一目标容器指针为所述task_struct中的kernfs entry指针。
可选的,所述建立模块903,被配置为:
响应于所述第一目标容器标识和预先配置的待监控容器标识相同,根据所述第一目标容器标识,在预先存储的容器标识和容器元数据的对应关系中,获取所述第一目标容器的元数据;
建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系。
可选的,在响应于进程调度操作之后,所述装置还包括,第一触发模块906,被配置为:
通过第一内核函数finish_task_switch触发第一伯克利包过滤器eBPF触发点,并运行与所述第一eBPF触发点对应的第一eBPF程序,所述第一eBPF程序响应于所述第一目标容器指针的首次生成,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系。
可选的,所述装置还包括,删除信息获取模块907,被配置为:
响应于容器删除操作,获取第三目标容器指针和第三目标容器标识,所述第三目标容器指针为所述第三目标容器标识的索引数据,第三目标容器为所述容器删除操作的删除对象;
建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
可选的,所述删除信息获取模块907,被配置为:
在确定所述第三目标容器标识和预先配置的待监控容器标识相同时,建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
可选的,所述装置还包括,删除模块908,被配置为:
若所述第四关联关系中的所述第三目标容器指针和所述第一目标容器指针相同,则删除所述第一目标容器运行过程中的容器监控信息。
可选的,在响应于容器删除操作之后,所述装置还包括,第二触发模块,被配置为:
通过第二内核函数cgroup_rmdir触发第二伯克利包过滤器eBPF触发点,并运行与第二eBPF触发点对应的第二eBPF程序,所述第二eBPF程序用于,获取第三目标容器指针和第三目标容器标识,建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
可选的,所述第一目标容器的元数据包括所述第一目标容器所属容器组pod标签,所述装置还包括,请求处理模块909,被配置为:
响应于接收到容器信息获取请求,解析所述容器信息获取请求得到目标pod标签;
若所述目标pod标签与所述第一目标容器所属容器组pod标签相同,则根据所述第一目标容器的容器信息,以及所述第一目标容器所属容器组pod中其他容器的容器信息,对所述容器信息获取请求作出响应。
可选的,所述装置为部署有Linux操作系统的电子设备,所述电子设备包括监控统计装置、索引触发装置、索引管理装置和索引关联装置,所述监控统计装置和所述索引触发装置运行于所述Linux操作系统的内核态,所述索引管理装置和索引关联装置运行于所述Linux操作系统的用户态。
可选的,所述监控统计装置,用于根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,并建立所述第一目标容器指针和所述容器监控信息的第一关联关系;
所述索引触发装置,响应于所述第一目标容器指针的首次生成,根据所述第一目标容器指针和所述第一目标容器标识,生成第一事件消息,并将所述第一事件消息推送至所述内核态和所述用户态的共享数据缓存区域;
所述索引管理装置,响应于在所述共享数据缓存区域监听到所述第一事件消息,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系;
所述索引关联装置,用于根据所述第一关联关系,获取与所述第一目标容器指针关联的所述容器监控信息,以及根据所述第二关联关系,获取与所述第一目标容器指针关联的所述第一目标容器的元数据,建立所述第一目标容器指针、所述容器监控信息以及所述第一目标容器的元数据三者的第三关联关系,得到所述第一目标容器的容器信息。
可选的,所述索引触发装置,用于获取第三目标容器指针和第三目标容器标识,根据所述第三目标容器指针和所述第三目标容器标识生成第二事件消息,并将所述第二事件消息推送至所述内核态和所述用户态的共享数据缓存区域;
所述索引管理装置,响应于在所述共享数据缓存区域监听到所述第二事件消息,建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
此外,本公开实施方式的其他具体细节在上述方法的发明实施方式中已经详细说明,在此不再赘述。
示例性存储介质
下面对本公开示例性实施方式的存储介质进行说明。
本示例性实施方式中,可以通过程序产品实现上述方法,如可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RE等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(FAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性电子设备
参考图10对本发明示例性实施方式的电子设备进行说明。
图10显示的电子设备1000仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:至少一个处理单元1010、至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030、显示单元1040。
其中,存储单元存储有程序代码,程序代码可以被处理单元1010执行,使得处理单元1010执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元1010可以执行如图2所示的方法步骤等。
存储单元1020可以包括易失性存储单元,例如随机存取存储单元(RAM)1021和/或高速缓存存储单元1022,还可以进一步包括只读存储单元(ROM)1023。
存储单元1020还可以包括具有一组(至少一个)程序模块1025的程序/实用工具1024,这样的程序模块1025包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以包括数据总线、地址总线和控制总线。
电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口1040进行。电子设备1000还包括显示单元,其连接到输入/输出(I/O)接口1040,用于进行显示。并且,电子设备1000还可以通过网络适配器1050与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1050通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (9)
1.一种容器信息监控方法,其特征在于,包括:
响应于进程调度操作,生成当前运行进程的进程描述信息,所述进程描述信息包括第一目标容器指针和第一目标容器标识,所述第一目标容器指针为所述第一目标容器标识的索引数据,第一目标容器为与当前运行进程对应的容器;
根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,并建立所述第一目标容器指针和所述容器监控信息的第一关联关系,所述容器监控信息为目标监控指标的指标数据,所述目标监控指标为容器维度的监控指标;
响应于所述第一目标容器指针的首次生成,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系;
根据所述第一关联关系,获取与所述第一目标容器指针关联的所述容器监控信息,以及根据所述第二关联关系,获取与所述第一目标容器指针关联的所述第一目标容器的元数据,建立所述第一目标容器指针、所述容器监控信息以及所述第一目标容器的元数据三者的第三关联关系,得到所述第一目标容器的容器信息;
其中,所述根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,包括:
监控与所述第一目标容器标识对应的所述第一目标容器的运行状况,在所述第一目标容器的运行过程中,获取与所述第一目标容器关联的所述目标监控指标的指标数据,所述目标监控指标包括所述第一目标容器的处理器调度延时、所述第一目标容器的内存申请延时、所述第一目标容器的远程存储读写延时和/或所述第一目标容器的网络重传率;
将与所述第一目标容器关联的所述目标监控指标的指标数据,确定为所述第一目标容器的容器监控信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系,包括:
响应于所述第一目标容器标识和预先配置的待监控容器标识相同,根据所述第一目标容器标识,在预先存储的容器标识和容器元数据的对应关系中,获取所述第一目标容器的元数据;
建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于容器删除操作,获取第三目标容器指针和第三目标容器标识,所述第三目标容器指针为所述第三目标容器标识的索引数据,第三目标容器为所述容器删除操作的删除对象;
建立所述第三目标容器指针和所述第三目标容器的删除完成时间之间的第四关联关系。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述第四关联关系中的所述第三目标容器指针和所述第一目标容器指针相同,则删除所述第一目标容器运行过程中的容器监控信息。
5.根据权利要求1至4任一所述的方法,其特征在于,所述方法应用于部署有Linux操作系统的电子设备,所述电子设备包括监控统计装置、索引触发装置、索引管理装置和索引关联装置,所述监控统计装置和所述索引触发装置运行于所述Linux操作系统的内核态,所述索引管理装置和索引关联装置运行于所述Linux操作系统的用户态。
6.根据权利要求5所述的方法,其特征在于,所述监控统计装置,用于根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,并建立所述第一目标容器指针和所述容器监控信息的第一关联关系;
所述索引触发装置,响应于所述第一目标容器指针的首次生成,根据所述第一目标容器指针和所述第一目标容器标识,生成第一事件消息,并将所述第一事件消息推送至所述内核态和所述用户态的共享数据缓存区域;
所述索引管理装置,响应于在所述共享数据缓存区域监听到所述第一事件消息,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系;
所述索引关联装置,用于根据所述第一关联关系,获取与所述第一目标容器指针关联的所述容器监控信息,以及根据所述第二关联关系,获取与所述第一目标容器指针关联的所述第一目标容器的元数据,建立所述第一目标容器指针、所述容器监控信息以及所述第一目标容器的元数据三者的第三关联关系,得到所述第一目标容器的容器信息。
7.一种容器监控装置,其特征在于,包括:
确定模块,被配置为响应于进程调度操作,生成当前运行进程的进程描述信息,所述进程描述信息包括第一目标容器指针和第一目标容器标识,所述第一目标容器指针为所述第一目标容器标识的索引数据,第一目标容器为与当前运行进程对应的容器;
获取模块,被配置为根据所述第一目标容器指针,获取所述第一目标容器的容器监控信息,并建立所述第一目标容器指针和所述容器监控信息的第一关联关系,所述容器监控信息为目标监控指标的指标数据,所述目标监控指标为容器维度的监控指标;
建立模块,被配置为响应于所述第一目标容器指针的首次生成,根据所述第一目标容器标识获取所述第一目标容器的元数据,并建立所述第一目标容器指针和所述第一目标容器的元数据的第二关联关系;
信息获取模块,被配置为根据所述第一关联关系,获取与所述第一目标容器指针关联的所述容器监控信息,以及根据所述第二关联关系,获取与所述第一目标容器指针关联的所述第一目标容器的元数据,建立所述第一目标容器指针、所述容器监控信息以及所述第一目标容器的元数据三者的第三关联关系,得到所述第一目标容器的容器信息;
所述获取模块,被配置为监控与所述第一目标容器标识对应的所述第一目标容器的运行状况,在所述第一目标容器的运行过程中,获取与所述第一目标容器关联的所述目标监控指标的指标数据,所述目标监控指标包括所述第一目标容器的处理器调度延时、所述第一目标容器的内存申请延时、所述第一目标容器的远程存储读写延时和/或所述第一目标容器的网络重传率;
将与所述第一目标容器关联的所述目标监控指标的指标数据,确定为所述第一目标容器的容器监控信息。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的方法。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211234752.5A CN115328742B (zh) | 2022-10-10 | 2022-10-10 | 容器信息监控方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211234752.5A CN115328742B (zh) | 2022-10-10 | 2022-10-10 | 容器信息监控方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115328742A CN115328742A (zh) | 2022-11-11 |
CN115328742B true CN115328742B (zh) | 2023-02-17 |
Family
ID=83913518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211234752.5A Active CN115328742B (zh) | 2022-10-10 | 2022-10-10 | 容器信息监控方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115328742B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112068975B (zh) * | 2020-08-31 | 2023-07-21 | 北京五八信息技术有限公司 | 一种信息处理方法及装置 |
CN116302732B (zh) * | 2022-12-30 | 2024-10-22 | 国科础石(重庆)软件有限公司 | 多处理器性能指标获取方法、装置、电子设备及车辆 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915285A (zh) * | 2015-06-30 | 2015-09-16 | 北京奇虎科技有限公司 | 一种容器进程监控方法、装置及系统 |
CN111625418A (zh) * | 2020-05-12 | 2020-09-04 | 深圳前海微众银行股份有限公司 | 一种进程监控方法及装置 |
CN112199668A (zh) * | 2020-09-01 | 2021-01-08 | 中国科学院信息工程研究所 | 一种检测容器中应用层消耗CPU的DoS攻击的方法和装置 |
CN112416719A (zh) * | 2020-12-04 | 2021-02-26 | 中国建设银行股份有限公司 | 针对数据库容器的监控处理方法、系统、设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111355622A (zh) * | 2018-12-21 | 2020-06-30 | 中兴通讯股份有限公司 | 容器的业务监控方法、系统和计算机可读存储介质 |
US11025670B2 (en) * | 2019-08-27 | 2021-06-01 | Cloudflare, Inc. | Method and apparatus for distributed emulation of behavior of a malicious domain |
CN115336191B (zh) * | 2021-03-11 | 2024-02-23 | 北京小米移动软件有限公司 | 一种最大传输层数的调整的方法及其装置 |
-
2022
- 2022-10-10 CN CN202211234752.5A patent/CN115328742B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915285A (zh) * | 2015-06-30 | 2015-09-16 | 北京奇虎科技有限公司 | 一种容器进程监控方法、装置及系统 |
CN111625418A (zh) * | 2020-05-12 | 2020-09-04 | 深圳前海微众银行股份有限公司 | 一种进程监控方法及装置 |
CN112199668A (zh) * | 2020-09-01 | 2021-01-08 | 中国科学院信息工程研究所 | 一种检测容器中应用层消耗CPU的DoS攻击的方法和装置 |
CN112416719A (zh) * | 2020-12-04 | 2021-02-26 | 中国建设银行股份有限公司 | 针对数据库容器的监控处理方法、系统、设备和存储介质 |
Non-Patent Citations (4)
Title |
---|
Research on Container Monitoring Security Infrastructure;Pu Yunming et al;《IEEE》;20080107;全文 * |
The Relevance of Container Monitoring Towards Container Intelligence;R. Madhumathi et al;《IEEE》;20181018;全文 * |
基于Docker的可信容器;王鹃等;《武汉大学学报(理学版)》;20170430(第02期);全文 * |
基于Kafka和Kubernetes的云平台监控告警系统;郝鹏海等;《计算机系统应用》;20200815(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115328742A (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021180025A1 (zh) | 一种消息处理方法、装置、电子设备及介质 | |
US11132356B2 (en) | Optimizing data entries in a log | |
US12182632B2 (en) | Communications framework for multi-cluster management systems | |
CN115328742B (zh) | 容器信息监控方法、装置、存储介质及电子设备 | |
CN112131237B (zh) | 数据同步方法、装置、设备及计算机可读介质 | |
CN110162345A (zh) | 一种应用程序访问方法、装置和存储介质 | |
US11327816B2 (en) | Monitoring components in a service framework | |
US10061863B2 (en) | Asset manager | |
CN110674025A (zh) | 交互行为监测方法、装置以及计算机设备 | |
US11093312B2 (en) | System for monitoring a plurality of distributed devices | |
CN112218115B (zh) | 流媒体音视频同步的控制方法、装置、计算机设备 | |
US20210157716A1 (en) | Pre-populating continuous delivery test cases | |
CN110825694A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN112256676A (zh) | 一种数据库迁移的方法、装置、设备和介质 | |
CN112698921A (zh) | 一种逻辑代码运行方法、装置、计算机设备和存储介质 | |
CN113238815B (zh) | 一种接口访问控制方法、装置、设备及存储介质 | |
CN113254315B (zh) | 埋点信息的上报方法、埋点方法、装置、介质、电子设备 | |
CN116627333A (zh) | 日志缓存方法、装置、电子设备及计算机可读存储介质 | |
CN111954072A (zh) | 一种多媒体播放方法、装置、多媒体播放器和介质 | |
CN113051221A (zh) | 数据存储方法、装置、介质、设备及分布式文件系统 | |
CN111522626B (zh) | 一种虚拟机列表生成方法、装置及电子设备 | |
US12020039B2 (en) | Compute instance warmup operations | |
CN113760856B (zh) | 数据库管理方法及装置、计算机可读存储介质、电子设备 | |
CN114610730A (zh) | 状态数据管理方法、装置及系统 | |
CN115470036A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd. Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd. |
|
CP01 | Change in the name or title of a patent holder |