CN115756993A - 系统运行检测方法、装置、电子设备和存储介质 - Google Patents
系统运行检测方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115756993A CN115756993A CN202211572849.7A CN202211572849A CN115756993A CN 115756993 A CN115756993 A CN 115756993A CN 202211572849 A CN202211572849 A CN 202211572849A CN 115756993 A CN115756993 A CN 115756993A
- Authority
- CN
- China
- Prior art keywords
- information
- current system
- operation information
- function
- storing
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 131
- 230000008569 process Effects 0.000 claims abstract description 111
- 230000002159 abnormal effect Effects 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 137
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 230000005856 abnormality Effects 0.000 claims description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000013024 troubleshooting Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003924 mental process Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种系统运行检测方法、装置、电子设备和存储介质,涉及人工智能领域,具体为自动驾驶和智能交通领域。具体实现方案为:在当前系统的运行过程中,获取所述当前系统的多个操作信息,所述操作信息包括操作时间、目标函数和传参;根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,所述运行记录信息包括所述当前系统执行的流程以及操作结果;根据所述运行记录信息,检测所述当前系统在所述运行过程中是否存在异常。本公开实施例可以提高系统运行检测的准确性以及系统问题排查的效率。
Description
技术领域
本公开涉及人工智能领域,具体为自动驾驶和智能交通领域,具体涉及一种系统运行检测方法、装置、电子设备和存储介质。
背景技术
分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。
在自动驾驶系统中分布式系统可以是由多个进程组成的系统,进程的拓扑信息可以用于定位异常。
发明内容
本公开提供了一种系统运行检测方法、装置、电子设备和存储介质。
根据本公开的一方面,提供了一种系统运行检测方法,包括:
在当前系统的运行过程中,获取所述当前系统的多个操作信息,所述操作信息包括操作时间、目标函数和传参;
根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,所述运行记录信息包括所述当前系统执行的流程以及操作结果;
根据所述运行记录信息,检测所述当前系统在所述运行过程中是否存在异常。
根据本公开的一方面,提供了一种系统运行检测装置,包括:
操作信息获取模块,用于在当前系统的运行过程中,获取所述当前系统的多个操作信息,所述操作信息包括操作时间、目标函数和传参;
运行记录模块,用于根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,所述运行记录信息包括所述当前系统执行的流程以及操作结果;
异常检测模块,用于根据所述运行记录信息,检测所述当前系统在所述运行过程中是否存在异常。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所述的系统运行检测方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开任一实施例所述的系统运行检测方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序和/或指令,所述计算机程序和/或指令在被处理器执行时实现本公开任一实施例所述的系统运行检测方法。
本公开实施例可以提高系统运行检测的准确性以及系统问题排查的效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例公开的一种系统运行检测方法的流程图;
图2是根据本公开实施例公开的另一种系统运行检测方法的流程图;
图3是根据本公开实施例公开的另一种系统运行检测方法的流程图;
图4是根据本公开实施例公开的一种函数调用时序图的示意图;
图5是根据本公开实施例公开的一种拓扑关系图的示意图;
图6是根据本公开实施例公开的另一种系统运行检测方法的流程图;
图7是根据本公开实施例公开的另一种存储格式的示意图;
图8是根据本公开实施例公开的另一种系统运行检测装置的结构图;
图9是用来实现本公开实施例的系统运行检测方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例公开的一种系统运行检测方法的流程图,本实施例可以适用于对当前系统的运行过程进行复现的情况。本实施例方法可以由系统运行检测装置来执行,该装置可采用软件和/或硬件的方式实现,并具体配置于具有一定数据运算能力的电子设备中,该电子设备可以是客户端设备或服务器端设备,客户端设备例如手机、平板电脑和车载终端等。
S101,在当前系统的运行过程中,获取所述当前系统的多个操作信息,所述操作信息包括操作时间、目标函数和传参。
当前系统为分布式系统,是由多个进程组成的系统。当前系统运行时,可以同时运行多个进程。操作信息是指当前系统执行的操作关联的信息,通常可以包括操作时间、目标函数和传参。其中,操作时间可以是当前系统执行操作的起始时间、结束时间和执行时长等。目标函数可以是当前系统执行的操作所调用的函数。传参可以是目标函数执行时所需的变量,其由运行的环境、用户输入和运行状态等确定,几乎每次都不同,而且通常无法预测。传参具有随机性,通常记录传参内容,才能实现复现当前系统的运行过程。操作信息用于录制并复现当前系统的运行过程,以重复当前系统的运行过程,从而定位在运行过程中出现的异常。
S102,根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,所述运行记录信息包括所述当前系统执行的流程以及操作结果。
一个运行过程中当前系统通常会执行多个操作,每个操作都存在对应的操作信息。可以理解为一个操作对应一个操作信息。运行记录信息用于复现当前系统的运行流程。运行记录信息可以是指当前系统的完整运行过程关联的信息,可以包括流程以及流程中涉及的各操作的操作结果。流程可以是指当前系统执行的多个操作的内容、各操作的时序、起始时间、结束时间和执行时长等,示例性的,运行记录信息包括当前系统启动了哪些组件、组件的创建时间、初始化耗时、何时释放、创建了哪些发布者和订阅者、发布的频率和数据大小以及各个任务的执行耗时等。操作结果可以是指执行操作得到的操作结果,例如,操作为对数据进行存储,操作结果为是否存储成功,存储成功对应的存储的位置(起始地址)和存储占用空间,以及存储失败对应的反馈信息等。
根据运行记录信息,确定当前系统何时执行何种操作,操作的输入数据和输出数据,以及操作输入方和操作输出方等,从而可以根据运行记录信息,再发送给当前系统,重复执行运行记录信息对应的运行过程,实现精准复现运行过程。此外,运行记录信息可以文本形式展示,或者以图表形式展示。
S103,根据所述运行记录信息,检测所述当前系统在所述运行过程中是否存在异常。
运行记录信息可以准确完整复刻当前系统的运行过程,从而,在运行过程结束后,还可以对完成的运行过程进行复盘,检测当前系统在历史完成的运行过程中是否存在异常。其中,异常可以是操作执行超时、进程异常退出或进程(虚拟节点)创建失败等。
在本公开实施例中,可以在当前系统测试过程中,运行当前系统,获取当前系统的多个操作信息,最终得到运行记录信息,并在运行过程结束后,对当前系统在运行过程是否存在异常进行检测。或者可以在当前系统发布使用过程中,用户运行当前系统,并经过用户授权,获取当前系统的多个操作信息,最终得到运行记录信息,在服务器中收集运行记录信息,对用户运行当前系统的过程中检测该运行过程是否存在异常。通常在运行时,当前系统处于在线状态,在线收集当前系统的多个操作信息,在离线状态下,根据收集的操作信息,确定运行记录信息,并离线检测当前系统在在线运行过程中是否存在异常。
可选的,所述当前系统为自动驾驶系统。
自动驾驶系统是一个分布式系统,由一组通过网络进行通信、为了完成共同的任务而协调工作的进程组成的系统。
满足用户复杂的业务场景,自动驾驶系统进程通常具有多个功能模块,每个模块包含初始化、释放、开始和停止等执行特定业务逻辑的复杂操作,这些操作正确的执行顺序、执行时间和执行结果等保证了自动驾驶系统的正确运行。当自动驾驶系统运行出错或行为不符合预期时,缺少一种有效的手段去分析各个模块运行的状态,难以进一步定位问题。
通过对操作信息的记录,并生成运行记录信息,在实时运行过程结束之后,还可以进行运行过程分析,支持运行过程的离线存储,可以兼顾自动驾驶的实时性需求,以及精准完整复现运行过程,提高异常检测的准确性,并提高自动驾驶系统的优化速度和异常处理速度。
在现有技术中,分布式系统中的各个进程发现其它进程提供的服务,并简化服务之间的通信方式。但进程停止后拓扑信息也随之丢失,当进程运行出错后,用户无法基于运行时的拓扑信息进一步定位问题。尤其是,为满足用户复杂的业务场景,自动驾驶系统进程通常具有多个功能模块,每个模块包含初始化、释放、开始、停止等执行特定业务逻辑的复杂操作,这些操作正确的执行顺序、执行时间和执行结果等保证了自动驾驶系统的正确运行。当自动驾驶系统运行出错或行为不符合预期时,用户缺少一种有效的手段去分析各个模块运行的状态,难以进一步定位问题。
根据本公开的技术方案,通过在当前系统的运行过程中,获取操作信息,并根据操作信息生成运行记录信息,可以完整记录当前系统在运行过程中的流程和操作结果,基于运行记录信息对当前系统在运行过程中是否存在异常,支持离线异常检测,精准完整复现运行过程,提高异常检测准确性,无需在日志信息中筛选关键信息提取运行过程关联的信息,可以提高运行录制的效率。
图2是根据本公开实施例公开的另一种系统运行检测方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。所述获取所述当前系统的操作信息,具体化为:在所述当前系统在调用所述目标函数的过程中,执行关键位置处的预设关键代码段,并获取所述目标函数的函数信息、操作时间和传参;将所述目标函数的函数信息、操作时间和传参,确定为一个操作信息。
S201,在当前系统的运行过程中,在所述当前系统在调用所述目标函数的过程中,执行关键位置处的预设关键代码段,并获取所述目标函数的函数信息、操作时间和传参。
关键位置可以是指目标函数对应的代码段中某个位置,例如第i行。关键位置用于添加关键代码段。关键代码段与目标函数的本身功能无关,关键代码段用于获取目标函数的操作信息,具体可以包括目标函数的函数信息、操作时间和传参。其中,函数信息可以包括目标函数的标识信息和功能等。操作时间可以是指当前时间,具体是直接获取时间戳。示例性的,在目标函数对应的代码段的首行获取的时间为目标函数开始执行的时间,在目标函数对应的代码段的末行获取的时间为目标函数结束执行的时间,二者之差为目标函数的执行时长。传参可以是指目标函数的输入变量。目标函数将传参带入目标函数对应的代码段中进行计算,得到目标函数的输出结果。
在当前系统的运行过程中,当前系统可以调用多个目标函数。针对调用任意一个目标函数,在调用该目标函数的过程中,执行该目标函数对应的代码段。该目标函数对应的代码段中可以设置有至少一个关键位置,在关键位置处的代码段与目标函数实现的功能无关,仅仅用于获取操作时间、当前执行的目标函数的函数信息和当前执行的目标函数的传参等。其中,在依赖执行的相邻两个目标函数中,当前执行的目标函数的传参可以包括上一次执行的目标函数的输出结果。
示例性的,可以在当前系统中筛选关键的目标函数的函数接口,在目标函数的入口和结束位置打点,打点位置出记录函数和时间戳和传参等。
在一个具体的例子中,一次目标函数调用过程视为一个Event(事件)对象,Event对象包含Type(类型)、Time(时间)和Param(参数)等属性。其中,Type属性表示当前事件调用了哪个函数接口;Time属性记录了调用函数接口的时间,便于后续按照时间先后顺序处理各个事件;Param属性记录了调用某接口时传递的全部或部分参数。
需要说明的是,一个目标函数对应的代码段中可以配置多个关键位置,从而获取多个操作信息,而同一个目标函数的调用过程产生的这些多个操作信息仍为同一次目标函数执行的操作,可以汇聚得到一个操作信息。实际上,这些多个操作仅仅是操作时间不同,目标函数仍为同一个,目标函数的输入仍为同一个,随着目标函数执行过程,仅有操作时间不同,相应的,可以将多个操作时间进行汇聚,并按照操作时间的时序进行排列。汇聚之后可以减少存储占用空间,此外,还可以不进行汇聚,减少中间计算过程。
S202,将所述目标函数的函数信息、操作时间和传参,确定为一个操作信息。
将目标函数执行一次的函数信息、操作时间和传参记录为一个操作信息。将该次之外的,其他目标函数执行一次的函数信息、操作时间和传参记录为另一个操作信息。或者将该次之外的,该目标函数执行一次的函数信息、操作时间和传参记录为另一个操作信息。
S203,根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,所述运行记录信息包括所述当前系统执行的流程以及操作结果。
S204,根据所述运行记录信息,检测所述当前系统在所述运行过程中是否存在异常。
根据本公开的技术方案,通过在目标函数的代码段的关键位置处添加关键代码段,在目标函数执行过程中,执行到该关键代码段时,实现获取目标函数的操作信息,实现精准记录目标函数执行过程和执行结果,提高操作信息的检测准确性,并且可以精准检测操作信息,减少记录冗余数据。
图3是根据本公开实施例公开的另一种系统运行检测方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。所述根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,具体为:对多个操作信息进行存储;在存储的操作信息中,生成运行记录信息。
S301,在当前系统的运行过程中,获取所述当前系统的多个操作信息,所述操作信息包括操作时间、目标函数和传参。
S302,对多个操作信息进行存储。
对操作信息进行存储,可以不用实时对操作信息进行处理,可以在空闲时对操作信息进行处理,避免对其他正常执行的任务的干扰。
可选的,所述对多个操作信息进行存储,包括:对各所述操作信息的内容建立索引,并将索引替换各所述操作信息的内容;对替换后的各所述操作信息进行存储;将索引与内容之间的映射关系进行存储。
当前系统执行大量的操作,并可以相应获取到大量的操作信息,其中,操作信息中包括的信息存在大量相同的长字符串,这类长字符串在存储时占据大量的存储空间。可以对操作信息进行字典压缩存储。
索引用于唯一标识操作信息的内容,索引与操作信息的内容存在映射关系,可以基于该映射关系,根据索引,确定索引对应的内容。并且,索引为操作信息的内容进行简化的信息。索引与内容之间的映射关系,用于根据存储的索引查询内容。其中,索引与内容之间的映射关系可以理解为字典。其中,操作信息的内容包括至少一个属性的字符串,为同一属性的字符串建立生成简短的数字索引,并采用该数字索引替换该属性的字符串,从而简化操作信息的内容,并且还能够查询到数字索引对应的字符串,确保操作信息的内容并无丢失。其中,一个属性的字符串可以是操作时间、目标函数和传参等。示例性的,操作时间的内容,确定为操作时间的属性的字符串,目标函数的函数信息,确定为目标函数属性的字符串。其中,传参可以包括多个参数,不同功能或者不同类型的参数不同。可以针对一个参数的内容(参数名和属性值)确定为一个属性的字符串,不同参数的内容,为不同属性的字符串。
如前例,Event对象存在大量重复的字符串,传输和存储Event数据时会占用较多资源。因此,针对各个字符串创建了字典,每个在Event中出现的字符串唯一对应一个数字索引,发送和存储Event数据时则利用索引代替其相应字符串。
在存储的操作信息中,按照所述当前系统的多个操作信息的操作时间,获取顺序执行的多个操作信息,并生成运行记录信息,可以包括:获取存储数据,根据索引与内容的映射关系,对存储数据进行解析,得到存储的操作信息,按照所述当前系统的多个操作信息的操作时间,获取顺序执行的多个操作信息,并生成运行记录信息。
通过为操作信息的内容建立索引,并采用索引替代操作信息的内容进行存储,以及存储索引与内容之间的映射关系,可以减少大量重复的内容存储占用的空间,减少存储资源占用。
可选的,所述对多个操作信息进行存储,包括:将所述操作信息存入队列中;将所述队列中操作信息定时写入磁盘。
队列可以理解为缓存空间中的存储空间。将操作信息存储队列中,在定期将队列中的数据进行落盘存储,可以减少磁盘的IO次数。可以在查询时,可以直接从队列中先查询操作信息,在查询为空时,再去磁盘中查询。
如前例,将产生的Event数据加入队列,定时将队列中的数据作为一个文件写入磁盘中,并在该文件的最后写入映射关系,即字符串字典。
通过先将操作信息存储在队列中,并定时将队列内容写入磁盘,减少磁盘的IO次数,提高读写效率。
S303,在存储的操作信息中,按照所述当前系统的多个操作信息的操作时间,获取顺序执行的多个操作信息,并生成运行记录信息。
操作时间用于确定操作信息的执行次序,可以按照操作时间的先后,确定操作信息的执行次序,并按照执行次序排列操作信息。取一段时间内的操作信息,生成该时间段的运行记录信息。运行记录信息可以是各顺序执行的操作信息。从而可以基于各顺序执行的操作信息,依次执行相应操作,复现当前系统在该时间段的运行过程。
可以在存储时,根据操作信息的操作时间,对各操作信息进行顺序存储,直接提取某个时间段内的连续存储的操作信息,或者也可以直接无关次序的存储,在存储空间中单独查询筛选该时间段内的操作信息。
可选的,所述生成运行记录信息,包括:根据所述顺序执行的多个操作信息,生成所述当前系统的函数调用时序图,其中,所述函数调用时序图包括目标函数的调用时长、输入数据和输出数据。
函数调用时序图用于展示各目标函数调用的前后顺序,以及每个目标函数的调用时长、输入数据和输出数据等。其中,调用前后顺序,调用时长和输入数据和输出数据都可以用于检测是否存在异常。
根据顺序执行的多个操作信息,可以确定当前系统调用的目标函数是什么,何时开始运行,何时结束运行,运行的结果是什么等,据此,生成函数调用时序图。如图4所示,调用先后顺序为函数4、函数7和函数2。函数7的从tk开始运行,到tk+1结束运行,函数7的输入数据为传参m+1,输出数据包括传参m+2。
此外,操作信息还可以包括进程信息,相应的,函数调用时序图中,还可以用于展示各进程的运行顺序,每个进程的运行时长等。相应的,还可以根据顺序执行的多个操作信息,生成拓扑关系图。拓扑关系图描述进程、模块和节点之间的拓扑关系。如图5所示,进程1创建了模块1和模块2,模块1包含节点1和节点2,模块2包含节点3;进程2创建了模块3,模块3包含节点4、节点5和节点6;节点4、5、6发送数据到节点3,节点3处理后并将数据转发至节点1和2。
通过生成函数调用时序图,可以清楚确定当前系统先后执行的目标函数,以及各目标函数的输入和输出等,以便后续进行异常检测,从而提高异常检测准确性。
S304,根据所述运行记录信息,检测所述当前系统在所述运行过程中是否存在异常。
根据本公开的技术方案,通过对操作信息进行存储,并在存储的操作信息中,获取顺序执行的多个操作信息,生成运行记录信息,以精准记录当前系统的先后执行的操作,从而准确复现当前系统的运行过程。
图6是根据本公开实施例公开的一种系统运行检测方法的应用示意图。当前系统的拓扑关系和时序图的构建过程可理解为调用一系列函数接口的过程,获取各个接口的调用顺序和接口参数,可以离线构建出与运行时完全相同的拓扑关系图和时序图。基于此,通过记录相关函数的调用与调用参数,并利用上述数据构建出系统运行时的拓扑关系。
S601,在当前系统的运行过程中,在所述当前系统在调用所述目标函数的过程中,执行关键位置处的预设关键代码段,并获取所述目标函数的函数信息、操作时间和传参。
一次目标函数调用过程视为一个Event(事件)对象,Event对象包含Type(类型)、Time(时间)和Param(参数)等属性。其中,Type属性采用数字索引表示当前事件调用了哪个函数接口;Time属性记录了调用函数接口的时间,便于后续按照时间先后顺序处理各个事件;Param属性记录了调用某接口时传递的全部或部分参数。
S602,将所述目标函数的函数信息、操作时间和传参,确定为一个操作信息。
S603,对各所述操作信息的内容建立索引,并将索引替换各所述操作信息的内容。
S604,对替换后的各所述操作信息存入队列中。
S605,将索引与内容之间的映射关系存入队列中。
针对自动驾驶的业务场景,同各个进程间通信量增大时,Event对象存在大量重复的字符串,传输和存储Event数据时会占用较多资源。因此,针对各个字符串创建了字典,每个在Event中出现的字符串唯一对应一个数字索引,发送和存储Event数据时则利用索引代替其相应字符串,实现去除冗余数据。
S606,将所述队列中操作信息定时写入磁盘。
将产生的Event数据加入队列,定时将队列中的数据作为一个文件写入磁盘中,并在该文件的最后写入映射关系,即字符串字典。文件中的存储格式如图7所示,Header记录了所有Event数据的大小,Map记录了字符串字典。
S607,获取存储数据,根据索引与内容的映射关系,对存储数据进行解析,得到存储的操作信息。
离线状态下,根据图7所示的格式,解析出各个Event对象,并按照时间顺序调用相关函数接口,即可构建出系统运行时任意时刻的拓扑关系,进而排查相关问题。
S608,在存储的操作信息中,根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,所述运行记录信息包括所述当前系统执行的流程以及操作结果。
S609,根据所述运行记录信息,检测所述当前系统在所述运行过程中是否存在异常。
与分析日志和定时存储的方法相比,本公开实施例仅存储了系统相关函数的调用过程,有效降低离线存储的数据量大小,减少了资源占用,并能够根据离线数据快速复现出分布式系统运行时的拓扑数据,对于快速排查分布式系统问题具有重要意义。
根据本公开的实施例,图8是本公开实施例中的系统运行检测装置的结构图,本公开实施例适用于对当前系统的运行过程进行复现的情况。该装置采用软件和/或硬件实现,并具体配置于具备一定数据运算能力的电子设备中。
如图8所示的一种系统运行检测装置800,包括:操作信息获取模块801、运行记录模块802和异常检测模块803;其中,
操作信息获取模块801,用于在当前系统的运行过程中,获取所述当前系统的多个操作信息,所述操作信息包括操作时间、目标函数和传参;
运行记录模块802,用于根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,所述运行记录信息包括所述当前系统执行的流程以及操作结果;
异常检测模块803,用于根据所述运行记录信息,检测所述当前系统在所述运行过程中是否存在异常。
根据本公开的技术方案,通过在当前系统的运行过程中,获取操作信息,并根据操作信息生成运行记录信息,可以完整记录当前系统在运行过程中的流程和操作结果,基于运行记录信息对当前系统在运行过程中是否存在异常,支持离线异常检测,精准完整复现运行过程,提高异常检测准确性,无需在日志信息中筛选关键信息提取运行过程关联的信息,可以提高运行录制的效率。
进一步的,所述操作信息获取模块801,包括:传参获取单元,用于在所述当前系统在调用所述目标函数的过程中,执行关键位置处的预设关键代码段,并获取所述目标函数的函数信息、操作时间和传参;操作信息检测单元,用于将所述目标函数的函数信息、操作时间和传参,确定为一个操作信息。
进一步的,所述运行记录模块802,包括:信息存储单元,用于对多个操作信息进行存储;运行过程录制单元,用于在存储的操作信息中,按照所述当前系统的多个操作信息的操作时间,获取顺序执行的多个操作信息,并生成运行记录信息。
进一步的,所述信息存储单元,包括:索引建立子单元,用于对各所述操作信息的内容建立索引,并将索引替换各所述操作信息的内容;操作存储子单元,用于对替换后的各所述操作信息进行存储;索引存储子单元,用于将索引与内容之间的映射关系进行存储。
进一步的,所述信息存储单元,包括:队列缓存子单元,用于将所述操作信息存入队列中;定期落盘子单元,用于将所述队列中操作信息定时写入磁盘。
进一步的,运行过程录制单元,包括:时序图生成子单元,用于根据所述顺序执行的多个操作信息,生成所述当前系统的函数调用时序图,其中,所述函数调用时序图包括目标函数的调用时长、输入数据和输出数据。
进一步的,所述当前系统为自动驾驶系统。
上述系统运行检测装置可执行本公开任意实施例所提供的系统运行检测方法,具备执行系统运行检测方法相应的功能模块和有益效果。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序对象。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性区域图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如系统运行检测方法。例如,在一些实施例中,系统运行检测方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的系统运行检测方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行系统运行检测方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准对象(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或区域图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (17)
1.一种系统运行检测方法,包括:
在当前系统的运行过程中,获取所述当前系统的多个操作信息,所述操作信息包括操作时间、目标函数和传参;
根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,所述运行记录信息包括所述当前系统执行的流程以及操作结果;
根据所述运行记录信息,检测所述当前系统在所述运行过程中是否存在异常。
2.根据权利要求1所述的方法,其中,所述获取所述当前系统的操作信息,包括:
在所述当前系统在调用所述目标函数的过程中,执行关键位置处的预设关键代码段,并获取所述目标函数的函数信息、操作时间和传参;
将所述目标函数的函数信息、操作时间和传参,确定为一个操作信息。
3.根据权利要求1所述的方法,所述根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,包括:
对多个操作信息进行存储;
在存储的操作信息中,按照所述当前系统的多个操作信息的操作时间,获取顺序执行的多个操作信息,并生成运行记录信息。
4.根据权利要求3所述的方法,其中,所述对多个操作信息进行存储,包括:
对各所述操作信息的内容建立索引,并将索引替换各所述操作信息的内容;
对替换后的各所述操作信息进行存储;
将索引与内容之间的映射关系进行存储。
5.根据权利要求3所述的方法,其中,所述对多个操作信息进行存储,包括:
将所述操作信息存入队列中;
将所述队列中操作信息定时写入磁盘。
6.根据权利要求3所述的方法,其中,所述生成运行记录信息,包括:
根据所述顺序执行的多个操作信息,生成所述当前系统的函数调用时序图,其中,所述函数调用时序图包括目标函数的调用时长、输入数据和输出数据。
7.根据权利要求1所述的方法,其中,所述当前系统为自动驾驶系统。
8.一种系统运行检测装置,包括:
操作信息获取模块,用于在当前系统的运行过程中,获取所述当前系统的多个操作信息,所述操作信息包括操作时间、目标函数和传参;
运行记录模块,用于根据所述当前系统的多个操作信息,生成所述当前系统在所述运行过程中的运行记录信息,所述运行记录信息包括所述当前系统执行的流程以及操作结果;
异常检测模块,用于根据所述运行记录信息,检测所述当前系统在所述运行过程中是否存在异常。
9.根据权利要求8所述的装置,其中,所述操作信息获取模块,包括:
传参获取单元,用于在所述当前系统在调用所述目标函数的过程中,执行关键位置处的预设关键代码段,并获取所述目标函数的函数信息、操作时间和传参;
操作信息检测单元,用于将所述目标函数的函数信息、操作时间和传参,确定为一个操作信息。
10.根据权利要求8所述的装置,其中,所述运行记录模块,包括:
信息存储单元,用于对多个操作信息进行存储;
运行过程录制单元,用于在存储的操作信息中,按照所述当前系统的多个操作信息的操作时间,获取顺序执行的多个操作信息,并生成运行记录信息。
11.根据权利要求10所述的装置,其中,所述信息存储单元,包括:
索引建立子单元,用于对各所述操作信息的内容建立索引,并将索引替换各所述操作信息的内容;
操作存储子单元,用于对替换后的各所述操作信息进行存储;
索引存储子单元,用于将索引与内容之间的映射关系进行存储。
12.根据权利要求10所述的装置,其中,所述信息存储单元,包括:
队列缓存子单元,用于将所述操作信息存入队列中;
定期落盘子单元,用于将所述队列中操作信息定时写入磁盘。
13.根据权利要求10所述的装置,其中,运行过程录制单元,包括:
时序图生成子单元,用于根据所述顺序执行的多个操作信息,生成所述当前系统的函数调用时序图,其中,所述函数调用时序图包括目标函数的调用时长、输入数据和输出数据。
14.根据权利要求8所述的装置,其中,所述当前系统为自动驾驶系统。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的系统运行检测方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的系统运行检测方法。
17.一种计算机程序产品,包括计算机程序和/或指令,所述计算机程序和/或在被处理器执行时实现根据权利要求1-7中任一项所述的系统运行检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211572849.7A CN115756993A (zh) | 2022-12-08 | 2022-12-08 | 系统运行检测方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211572849.7A CN115756993A (zh) | 2022-12-08 | 2022-12-08 | 系统运行检测方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115756993A true CN115756993A (zh) | 2023-03-07 |
Family
ID=85344795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211572849.7A Pending CN115756993A (zh) | 2022-12-08 | 2022-12-08 | 系统运行检测方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756993A (zh) |
-
2022
- 2022-12-08 CN CN202211572849.7A patent/CN115756993A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022017588A (ja) | 深層学習フレームワークのトレーニング方法、装置及び記憶媒体 | |
CN112965903A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN118193389A (zh) | 一种测试案例生成方法、装置、设备、存储介质及产品 | |
CN112149828B (zh) | 基于深度学习框架的算子精度检测方法和装置 | |
CN112199261A (zh) | 应用程序性能分析方法及装置、电子设备 | |
CN114417780A (zh) | 状态同步方法、装置、电子设备及存储介质 | |
CN113138906A (zh) | 一种调用链数据采集方法、装置、设备及存储介质 | |
CN116545740B (zh) | 一种基于大数据的威胁行为分析方法及服务器 | |
CN111258765B (zh) | 一种负载均衡方法、装置、计算设备和存储介质 | |
CN115890684A (zh) | 一种机器人调度方法、装置、设备及介质 | |
CN115756993A (zh) | 系统运行检测方法、装置、电子设备和存储介质 | |
CN115687406A (zh) | 一种调用链数据的采样方法、装置、设备及存储介质 | |
CN114912582A (zh) | 模型生产方法、装置、电子设备以及存储介质 | |
CN112579587B (zh) | 数据清洗方法及装置、设备和存储介质 | |
CN114997329A (zh) | 用于生成模型的方法、装置、设备、介质和产品 | |
CN114706610A (zh) | 一种业务流程图生成方法、装置、设备及存储介质 | |
CN112765033A (zh) | 速度测试方法、装置、设备及存储介质 | |
CN114490408A (zh) | 一种测试用例生成方法、装置、设备、存储介质及产品 | |
CN110085237B (zh) | 交互过程的恢复方法、装置及设备 | |
CN113806416A (zh) | 实时数据服务的实现方法、装置及电子设备 | |
CN111597026A (zh) | 用于获取信息的方法及装置 | |
CN114475631B (zh) | 驾驶数据处理方法装置、设备、自动驾驶车辆介质及产品 | |
CN111770095B (zh) | 探测方法、装置、设备以及存储介质 | |
CN114024858B (zh) | 一种任务执行方法、装置、设备及存储介质 | |
CN107888696A (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 |