G06F11/30
1.一种状态分析方法,其特征在于,所述方法包括:
获取每个进程的注册申请信息,并根据所述注册申请信息,建立每个进程对应的进程映射表;
获取每个动态链接库上报的日志信息,并打印展示;
获取控制指令,并将所述控制指令发送至对应的动态链接库,其中,所述控制指令是根据用户操作所述动态链接库上报的日志信息生成的;
指示对应的动态链接库根据所述控制指令进行相应地操作,生成指令执行结果;
获取所述指令执行结果,并将所述指令执行结果上报至控制面板。
2.根据权利要求1所述的方法,其特征在于,所述获取控制指令,并将所述控制指令发送至对应的动态链接库包括:
获取控制面板下发的控制指令,并将所述控制面板下发的控制指令发送至对应的动态链接库;
所述指示对应的动态链接库根据所述控制指令进行相应地操作,生成指令执行结果包括:
指示对应的动态链接库根据所述控制面板下发的控制指令进行相应地操作,生成指令执行结果。
3.根据权利要求1所述的方法,其特征在于,所述指示对应的动态链接库根据所述控制指令进行相应地操作,生成指令执行结果包括:
指示对应的动态链接库根据所述控制指令进行调整进程参数、修改日志级别、截取过程变量、或采集中间数据。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述指令执行结果包括:经过过滤的日志、以及指令返回结果中的至少之一;其中,所述经过过滤的日志是指根据用户设定的日志等级对全部日志进行过滤之后,得到的日志。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述获取所述指令执行结果,并将所述指令执行结果上报至控制面板包括:
每条所述控制指令执行完成之后,即刻将该控制指令对应的指令执行结果上报至控制面板。
6.根据权利要求5所述的方法,其特征在于,所述控制指令包括:本地基础指令集、系统指令集、以及进程模块自定义指令集中的至少之一。
7.一种状态分析方法,其特征在于,所述方法包括:
日志调度器接收每个进程内部的功能模块通过动态链接库发送的注册申请信息,并根据所述注册申请信息,建立每个进程对应的进程映射表;并接收每个动态链接库上报的日志信息,并打印展示;
控制面板下发控制指令至日志调度器;
日志调度器接收所述控制指令,并将所述控制指令发送至对应的动态链接库,其中,所述控制指令是根据用户操作所述动态链接库上报的日志信息生成的;
对应的动态链接库根据所述控制指令进行相应地操作,生成指令执行结果,并将所述指令执行结果发送给日志调度器;
日志调度器接收所述指令执行结果,并将所述指令执行结果上报至控制面板。
控制面板将所述指令执行结果呈现给用户。
8.根据权利要求7所述的方法,其特征在于,所述日志调度器接收每个进程内部的功能模块通过动态链接库发送的注册申请信息,并根据所述注册申请信息,建立每个进程对应的进程映射表之前,所述方法还包括:
控制面板与日志调度器之间建立连接;
每个进程启动时,该进程内的各个功能模块向动态链接库申请注册;
注册成功后,该进程内的各个功能模块通过动态链接库向日志调度器汇报自身信息进行注册。
9.一种状态分析装置,其特征在于,所述装置包括;
建立模块,获取每个进程的注册申请信息,并根据所述注册申请信息,建立每个进程对应的进程映射表;
获取模块,获取每个动态链接库上报的日志信息,并打印展示;
发送模块,获取控制指令,并将所述控制指令发送至对应的动态链接库,其中,所述控制指令是根据用户操作所述动态链接库上报的日志信息生成的;
指示模块,指示对应的动态链接库根据所述控制指令进行相应地操作,生成指令执行结果;
上报模块,获取所述指令执行结果,并将所述指令执行结果上报至控制面板。
10.一种状态分析系统,其特征在于,所述系统包括:
控制面板、与所述控制面板连接的日志调度器、以及与所述日志调度器连接的至少一个动态链接库;
日志调度器,接收每个进程内部的功能模块通过动态链接库发送的注册申请信息,并根据所述注册申请信息,建立每个进程对应的进程映射表;接收每个动态链接库上报的日志信息,并打印展示;
控制面板,下发控制指令至日志调度器;
日志调度器,接收所述控制指令,并将所述控制指令发送至对应的动态链接库,其中,所述控制指令是根据用户操作所述动态链接库上报的日志信息生成的;
动态链接库,根据所述控制指令进行相应地操作,生成指令执行结果,并将所述指令执行结果发送给日志调度器;
日志调度器,接收所述指令执行结果,并将所述指令执行结果上报至控制面板。
控制面板,将所述指令执行结果呈现给用户。
本公开涉及状态分析技术领域,具体涉及一种状态分析方法、装置和系统。
零终端设备的特点是存储空间有限,flash小于64M,甚至于32M字节。在安全图传系统场景下,终端不存密的要求,对设备提出了很多的限制。零终端内部各种业务模块协同工作,各个进程之间需要大量的数据传导和信令交互,以保证各自状态同步。在实际使用中,通常需要根据业务场景,切换参数配置,以达到性能最优化的目的。但外部环境多变,一旦遇到意料之外的条件变化,总会引起性能指标的变化,比如:需要灵活观察和调整进程的状态。针对这一问题,通常解决方案是写日志,将日志写在文件或者打印到串口中,分析Dump文件等,但是,由于零终端环境的特殊性,导致零终端中无法写太多文件。遇到保密环境,零终端设备不允许被拆开,无法外漏接口也就无法连接串口线或者USB、type-c等数据线。
本公开的目的在于克服现有技术的不足,提供一种状态分析方法、装置和系统,该状态分析方法能够解决现有技术中无法灵活地观察和修改配置零终端的参数、进行日志分析的问题。
根据本公开实施例的第一方面,提供一种状态分析方法,该方法包括:
获取每个进程的注册申请信息,并根据注册申请信息,建立每个进程对应的进程映射表;
获取每个动态链接库上报的日志信息,并打印展示;
获取控制指令,并将控制指令发送至对应的动态链接库,其中,控制指令是根据用户操作动态链接库上报的日志信息生成的;
指示对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果;
获取指令执行结果,并将指令执行结果上报至控制面板。
在一个实施例中,获取控制指令,并将控制指令发送至对应的动态链接库包括:
获取控制面板下发的控制指令,并将控制面板下发的控制指令发送至对应的动态链接库;
指示对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果包括:
指示对应的动态链接库根据控制面板下发的控制指令进行相应地操作,生成指令执行结果。
在一个实施例中,指示对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果包括:
指示对应的动态链接库根据控制指令进行调整进程参数、修改日志级别、截取过程变量、或采集中间数据。
在一个实施例中,指令执行结果包括:经过过滤的日志、以及指令返回结果中的至少之一;其中,经过过滤的日志是指根据用户设定的日志等级对全部日志进行过滤之后,得到的日志。
在一个实施例中,获取指令执行结果,并将指令执行结果上报至控制面板包括:
每条控制指令执行完成之后,即刻将该控制指令对应的指令执行结果上报至控制面板。
在一个实施例中,控制指令包括:本地基础指令集、系统指令集、以及进程模块自定义指令集中的至少之一。
根据本公开实施例的第二方面,提供一种状态分析方法,该方法包括:
日志调度器接收每个进程内部的功能模块通过动态链接库发送的注册申请信息,并根据注册申请信息,建立每个进程对应的进程映射表;并接收每个动态链接库上报的日志信息,并打印展示;
控制面板下发控制指令至日志调度器;
日志调度器接收控制指令,并将控制指令发送至对应的动态链接库,其中,控制指令是根据用户操作动态链接库上报的日志信息生成的;
对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果,并将指令执行结果发送给日志调度器;
日志调度器接收指令执行结果,并将指令执行结果上报至控制面板。
控制面板将指令执行结果呈现给用户。
根据本公开实施例的第三方面,提供一种状态分析装置,该装置包括:
建立模块,获取每个进程的注册申请信息,并根据注册申请信息,建立每个进程对应的进程映射表;
获取模块,获取每个动态链接库上报的日志信息,并打印展示;
发送模块,获取控制指令,并将控制指令发送至对应的动态链接库,其中,控制指令是根据用户操作动态链接库上报的日志信息生成的;
指示模块,指示对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果;
上报模块,获取指令执行结果,并将指令执行结果上报至控制面板。
根据本公开实施例的第四方面,提供一种状态分析系统,该系统包括:
控制面板、与控制面板连接的日志调度器、以及与日志调度器连接的至少一个动态链接库;
日志调度器,接收每个进程内部的功能模块通过动态链接库发送的注册申请信息,并根据注册申请信息,建立每个进程对应的进程映射表;接收每个动态链接库上报的日志信息,并打印展示;
控制面板,下发控制指令至日志调度器;
日志调度器,接收控制指令,并将控制指令发送至对应的动态链接库,其中,控制指令是根据用户操作动态链接库上报的日志信息生成的;
动态链接库,根据控制指令进行相应地操作,生成指令执行结果,并将指令执行结果发送给日志调度器;
日志调度器,接收指令执行结果,并将指令执行结果上报至控制面板。
控制面板,将指令执行结果呈现给用户。
本公开提供的一种状态分析方法,可以为零终端通过网络环境灵活地观察和修改配置参数,进行日志分析等。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本公开实施例提供的一种状态分析方法的流程图。
图2为本公开实施例提供的一种状态分析方法的流程图。
图3是本公开实施例提供的一种状态分析装置的架构图。
图4是本公开实施例提供的状态分析系统的示意图。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1为本公开实施例提供一种状态分析方法的流程图。如图1所示,该状态分析方法包括以下步骤:
步骤101、获取每个进程的注册申请信息,并根据注册申请信息,建立每个进程对应的进程映射表;
需要说明的是,该进程映射表中,需要记录的信息包括但不限于:进程名、每个进程中包括哪些模块、进程支持哪些指令以及支持的回调函数接口等信息。
步骤102、获取每个动态链接库上报的日志信息,并打印展示;
在本步骤中,日志调度器接收各个动态链接库上报的日志信息,并将这些日志信息打印展示,供用户查看。
步骤103、获取控制指令,并将控制指令发送至对应的动态链接库,其中,控制指令是根据用户操作动态链接库上报的日志信息生成的;
在本步骤中,用户通过控制面板查看进程日志过程中,可以通过控制面板向零终端下发控制指令。
在一个实施例中,获取控制指令,并将控制指令发送至对应的动态链接库包括:
获取控制面板下发的控制指令,并将控制面板下发的控制指令发送至对应的动态链接库;
在一个实施例中,控制指令可分为本地基础指令集、系统指令集和进程模块自定义指令集等,可以根据实际业务情况分类和扩展。
步骤104、指示对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果;
在一个实施例中,指示对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果包括:
指示对应的动态链接库根据控制面板下发的控制指令进行相应地操作,生成指令执行结果。
在一个实施中,指示对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果包括:
指示对应的动态链接库根据控制指令进行调整进程参数、修改日志级别、截取过程变量、或采集中间数据。
需要说明的是,本实施例中的控制指令按照提前约定的格式发送,一种示例性的指令格式如下:
[PROC|SYS|LOCAL][::Process][::Module][::CMD][Para]
其中,[PROC|SYS|LOCAL]表示指令集信息,主要分三大类指令集:PROC指发给某进程的指令、SYS指发给系统的指令、LOCAL指发给LogPub本地的指令;[::Process]表示进程名;[::Module]表示模块名;[::CMD]表示模块名;[Para]表示参数;
符号“|”表示“或”;
符号“[]”表示可选项;
符号“::”表示分隔符;
比如:PROC::processA::audio_module::log DEBUG
表示用PROC指令集下的,针对进程ProcessA的audio_module音频管理模块修改日志等级为debug级别。
按照上述特定格式可以任意扩展。
SYS指令集包括但不限于修改日志文件大小,缓存数量,是否抓取Dump信息、修改模式等;
LOCAL指令集包括但不限于查看系统版本、修改权限、修改密码、通知打开或者关闭发送通道、打开或关闭本地打印等等;
PROC指令集包括但不限于日志等级过滤、扩展指令回调等等。
步骤104、指示对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果;
在一个实施例中,指示对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果包括:
指示对应的动态链接库根据控制指令进行调整进程参数、修改日志级别、截取过程变量、或采集中间数据。
步骤105、获取指令执行结果,并将指令执行结果上报至控制面板。
本步骤中,动态链接库提供几个标准格式的接口,其中一组为供进程模块调用的函数。模块收到指令后,根据指令执行相应操作,操作完成后,将执行结果通过规定的格式通过动态链接库提供的接口发还给日志调度器。
指令执行结果通常包括:经过过滤的日志以及指令返回结果等等。
具体地,由于进程模块的源码中加入了大量日志打印语句,比如:LogD(.....)、LogI(.....)、LogW(.....)、LogE(......)等等,针对代码中的不同分支,不同条件能够打印不同的日志内容。所有打印的日志内容会统一汇总到LogKey,由LogKey来根据用户设定的日志等级来对日志内容进行过滤,比如,只显示ERROR级别的日志,其它日志就不用发送给LogPub了,直接进行丢弃,这一部分日志内容用户就看不到了。因此,本实施例中,经过过滤的日志是指根据用户设定的日志等级对所有日志进行过滤之后,所得到的日志。
在一个实施例中,每条控制指令执行完成之后,即刻将该控制指令对应的指令执行结果上报至控制面板。
本实施例中,由于日志量与业务相关,有可能会很大,每秒1000条甚至更多。为保证指令不丢失,在内部处理的时候,是指令的下发和上传是插队进行的。在正常的日志汇报流量当中,实时上报指令回复的内容,避免回复排队,造成用户体验不佳。
本公开实施例提供的一种状态分析方法,外部可灵活地修改特定的日志级别,以查看任意一个进程在工作中的状态、中间变量、甚至于进程崩溃时,可以捕获崩溃信号,回推函数调用栈,并将崩溃地址翻译成对应的源码文件行号。
需要说的是,在控制面板连接日志调度器之前,动态链接库的日志信息汇报通道可以是关闭的,这样汇报的日志在地址源端地址,即进程内部就已经过滤掉了,也就是说,动态链接库在没有接收到日志调度器的通知消失消息之前,不进行日志的发送,当控制面板连接之后,动态链接库开启通道,将日志内容逐一汇报给日志调度器,也可以根据日志调度器的设定将日志重定向到本地。如果控制面板在连接前发生了系统性的灾难性事件,还可以先记录到本地,之后由用户打开Ctrl Panel再收集。这样可以使得一些未知的严重故障可以被很好的保留并查看。各种进程对于内部重大事件过程也做了记录,比如:是否有崩溃重启过,连接账号是否断开过,有没有重连等等,根据用户需要记录,以备日后查看。
图2为本公开实施例提供一种状态分析方法的流程图。如图2所示,该状态分析方法包括以下步骤:
步骤201、日志调度器接收每个进程内部的功能模块通过动态链接库发送的注册申请信息,并根据注册申请信息,建立每个进程对应的进程映射表;并接收每个动态链接库上报的日志信息,并打印展示;
步骤202、控制面板下发控制指令至日志调度器;
步骤203、日志调度器接收控制指令,并将控制指令发送至对应的动态链接库,其中,控制指令是根据用户操作动态链接库上报的日志信息生成的;
步骤204、对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果,并将指令执行结果发送给日志调度器;
步骤205、日志调度器接收指令执行结果,并将指令执行结果上报至控制面板。
步骤206、控制面板将指令执行结果呈现给用户。
可选地,日志调度器接收每个进程内部的功能模块通过动态链接库发送的注册申请信息,并根据注册申请信息,建立每个进程对应的进程映射表之前,该方法还包括:
控制面板与日志调度器之间建立连接;
每个进程启动时,该进程内的各个功能模块向动态链接库申请注册;
注册成功后,该进程内的各个功能模块通过动态链接库向日志调度器汇报自身信息进行注册。
图3是本公开实施例提供的状态分析装置的架构图。参照图3,该装置包括建立模块301、获取模块302、发送模块303、指示模块304、以及上报模块305;其中,建立模块301用于取每个进程的注册申请信息,并根据注册申请信息,建立每个进程对应的进程映射表;获取模块302用于获取每个动态链接库上报的日志信息,并打印展示;发送模块303用于获取控制指令,并将控制指令发送至对应的动态链接库;指示模块304用于指示对应的动态链接库根据控制指令进行相应地操作,生成指令执行结果;上报模块305用于获取指令执行结果,并将指令执行结果上报至控制面板。
图4是本公开实施例提供的状态分析系统的示意图。参照图4,该系统包括:
控制面板401、与控制面板401连接的日志调度器402、以及与日志调度器402连接的至少一个动态链接库403;
日志调度器402,接收每个进程内部的功能模块通过动态链接库发送的注册申请信息,并根据注册申请信息,建立每个进程对应的进程映射表;接收每个动态链接库上报的日志信息,并打印展示;
控制面板401,下发控制指令至日志调度器402;
日志调度器402,接收控制指令,并将控制指令发送至对应的动态链接库403,其中,控制指令是根据用户操作动态链接库上报的日志信息生成的;
动态链接库403,根据控制指令进行相应地操作,生成指令执行结果,并将指令执行结果发送给日志调度器402;
日志调度器402,接收指令执行结果,并将指令执行结果上报至控制面板401。
控制面板401,将指令执行结果呈现给用户。
需要说明的是,本公开实施例中,控制面板401与日志调度器402之间通过网络建立连接;日志调度器402和动态链接库403之间通过IPC(进程间通信接口)进行通信。
控制面板401为位于零终端之外的其它具备数据处理功能的设备,例如,PC上;日志调度器402和动态链接库403位于零终端上。其中,
控制面板:用户的交互面板,用于下发指令和呈现信息;
日志调度器:用于指令分发、调度和信息汇总。
动态链接库,集成日志接口,嵌入到各个进程中,主要用于接收指令、过滤信息和收集信息。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以预置于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
本文发布于:2023-04-14 19:50:26,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/86819.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |