首页 / 专利库 / 电信 / 节点 / 链路日志监控方法、装置、计算机设备和存储介质

链路日志监控方法、装置、计算机设备和存储介质

阅读:181发布:2021-04-14

专利汇可以提供链路日志监控方法、装置、计算机设备和存储介质专利检索,专利查询,专利分析的服务。并且本 申请 涉及一种链路日志监控方法、装置、计算机设备和存储介质。所述方法包括:接收终端输入的链路日志查询 请求 ,所述链路日志查询请求携带有请求标识;根据所述链路日志查询请求从 数据库 中获取对应的链路数据,所述链路数据是通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的;根据所述链路日志查询请求获取第二聚合方式,并根据所述第二聚合方式对所述链路数据进行聚合,得到与所述请求标识对应的目标数据;将所述目标数据返回至所述终端。采用本方法能够提高链路日志查询请求的响应效率。,下面是链路日志监控方法、装置、计算机设备和存储介质专利的具体信息内容。

1.一种链路日志监控方法,所述方法包括:
接收终端输入的链路日志查询请求,所述链路日志查询请求携带有请求标识;
根据所述链路日志查询请求从数据库中获取对应的链路数据,所述链路数据是通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的;
根据所述链路日志查询请求获取第二聚合方式,并根据所述第二聚合方式对所述链路数据进行聚合,得到与所述请求标识对应的目标数据;
将所述目标数据返回至所述终端。
2.根据权利要求1所述的方法,其特征在于,所述数据库的生成方式,包括:
实时读取所述链路日志;
根据预设的第一聚合方式对所述链路日志进行聚合计算,得到链路数据;
查询与所述链路数据对应的链路日志,并获取所述链路日志的链路标识与节点标识;
将所述链路数据、所述链路标识与所述节点标识关联存储,得到所述数据库。
3.根据权利要求2所述的方法,其特征在于,所述根据预设的第一聚合方式对所述链路日志进行聚合计算,得到链路数据,包括:
提取所述链路日志中的性能数据,所述性能数据包括响应时间、内容结果、应用名称、日志类型及路径信息;
将所述性能数据进行聚合计算得到链路数据,所述聚合计算是对同一应用名称、同一类型或同一请求路径中进行的聚合计算。
4.根据权利要求2所述的方法,其特征在于,所述实时读取所述链路日志,包括:
实时读取链路生成的日志字段;
当读取的日志字段为时间格式字段时,中断读取;
将已读取的多个所述日志字段作为所述链路日志存储至消息队列,并继续读取;
利用预先设置的时间窗口实时读取所述消息队列中的所述链路日志。
5.根据权利要求4所述的方法,其特征在于,所述实时读取链路生成的日志字段,包括:
获取第一目录信息,并计算所述第一目录信息对应的第一哈希值,所述第一目录信息是读取日志前所述链路的目录信息;
根据所述第一目录信息读取所述链路生成的日志字段;
读取结束后,获取第二目录信息,并计算所述第二目录信息对应的第二哈希值,所述第二目录信息是读取日志后所述链路的目录信息;
将所述第一哈希值与所述第二哈希值进行对比;
当所述第一哈希值与所述第二哈希值不同时,根据所述第二目录信息读取所述链路生成的日志字段。
6.根据权利要求1所述的方法,其特征在于,所述将所述目标数据返回至所述终端之后,还包括:
查询所述目标数据对应的所述链路标识与所述节点标识,根据所述链路标识与所述节点标识查询对应的链路节点信息;
获取与请求标识对应的修复参数,根据所述修复参数与所述链路节点信息修复链路节点。
7.一种链路日志监控装置,其特征在于,所述装置包括:
请求接收模,用于接收终端输入的链路日志查询请求,所述链路日志查询请求携带有请求标识;
数据获取模块,用于根据所述链路日志查询请求从数据库中获取对应的链路数据,所述链路数据是通过实时读取链路日志并按照第一聚合方式进行的聚合计算得到的;
数据聚合模块,用于根据所述链路日志查询请求获取第二聚合方式,并根据所述第二聚合方式对所述链路数据进行聚合,得到与所述请求标识对应的目标数据;
数据返回模块,用于将所述目标数据返回至所述终端。
8.根据权利要求7所述的装置,其特征在于,所述数据获取模块包括:
链路日志读取子模块,用于实时读取所述链路日志;
链路日志聚合子模块,用于根据预设的第一聚合方式对所述链路日志进行聚合计算,得到链路数据;
标识获取子模块,用于查询与所述链路数据对应的链路日志,并获取所述链路日志的链路标识与节点标识;
关联存储子模块,用于将所述链路数据、所述链路标识与所述节点标识关联存储,生成数据库。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。

说明书全文

链路日志监控方法、装置、计算机设备和存储介质

技术领域

[0001] 本申请涉及计算机技术领域,特别是涉及一种链路日志监控方法、装置、计算机设备和存储介质。

背景技术

[0002] 随着计算机技术的发展,软件系统越来越复杂,基于此人们提出了微服务的架构,即将复杂功能拆分成多个功能独立且架构简单的微服务。在微服务架构中,多个微服务之间通过协议进行通信。微服务的架构使得开发人员在开发和维护项目时,能够快速迭代和上线,但由于微服务架构中,完成客户的某个请求可能是后端几十几百个服务配合完成的。整个环节中如果有某些服务出了问题,很难快速定位到问题发生在哪里。同样的,如果后端对于某个请求响应很慢,开发人员也很难快速定位到性能瓶颈在哪里。
[0003] 目前的链路日志监控方法为通过收集读取服务节点被调用时生成的服务日志,并上传给监控服务器,监控服务器获得服务日志后,对服务日志进行整理分析,以获得每个用户请求对应的服务链路信息。然而,目前的这种链路日志监控方法,占用较大的存储空间,且由于存储了所有的日志,监控过程中仍存在响应速度较慢的问题,从而导致不能快速定位到问题发生位置发明内容
[0004] 基于此,有必要针对上述技术问题,提供一种能够提高异常服务响应效率的链路日志监控方法、装置、计算机设备和存储介质。
[0005] 一种链路日志监控方法,所述方法包括:
[0006] 接收终端输入的链路日志查询请求,所述链路日志查询请求携带有请求标识;
[0007] 根据所述链路日志查询请求从数据库中获取对应的链路数据,所述链路数据是通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的;
[0008] 根据所述链路日志查询请求获取第二聚合方式,并根据所述第二聚合方式对所述链路数据进行聚合,得到与所述请求标识对应的目标数据;
[0009] 将所述目标数据返回至所述终端。
[0010] 上述链路日志监控方法中,通过第一聚合方式进行的实时聚合在保留链路日志包含的信息同时,减少了链路日志占用的存储空间,进而减少了需要分析整理的链路数据的数量,因此,本方案能够快速获取与链路日志查询请求对应的目标数据,提高了链路日志查询请求的响应速度。
[0011] 在其中一个实施例中,所述数据库的生成方式,包括:
[0012] 实时读取所述链路日志;
[0013] 根据预设的第一聚合方式对所述链路日志进行聚合计算,得到链路数据;
[0014] 查询与所述链路数据对应的链路日志,并获取所述链路日志的链路标识与节点标识;
[0015] 将所述链路数据、所述链路标识与所述节点标识关联存储,得到所述数据库。
[0016] 上述链路日志监控方法中,服务器通过第一聚合方式对实时读取的链路日志进行聚合,得到链路数据后,将链路数据与对应的链路标识与节点标识关联存储,得到数据库。本方案,减少了链路日志的数据量,简化了聚合流程,提高了后续聚合效率,同时链路数据与链路标识及节点标识的关联存储,保证了快速定位与请求标识对应的链路节点,进而提高了监控过程中查询请求的响应速度。
[0017] 在其中一个实施例中,所述根据预设的第一聚合方式对所述链路日志进行聚合计算,得到链路数据,包括:
[0018] 提取所述链路日志中的性能数据,所述性能数据包括响应时间、内容结果、应用名称、日志类型及路径信息;
[0019] 将所述性能数据进行聚合计算得到链路数据,所述聚合计算是对同一应用名称、同一类型或同一请求路径中进行的聚合计算。
[0020] 上述链路日志监控方法中,服务器通过提取链路日志中的响应时间、内容结果、应用名称、日志类型及路径信息等性能数据,并根据第一聚合方式中的聚合规则计算得到同一应用名称、同一类型或同一请求路径下的链路数据。本方案,实现了多维度实时聚合链路日志中的性能数据,保证了链路日志查询请求的多样性。
[0021] 在其中一个实施例中,所述实时读取所述链路日志,包括:
[0022] 实时读取链路生成的日志字段;
[0023] 当读取的日志字段为时间格式字段时,中断读取;
[0024] 将已读取的多个所述日志字段作为所述链路日志存储至消息队列,并继续读取;
[0025] 利用预先设置的时间窗口实时读取所述消息队列中的所述链路日志。
[0026] 上述链路日志监控方法中,服务器通过日志采集系统识别字段格式正确读取日志字段,并将读取到的多个日志字段以链路日志的形式存储至流数据处理系统的消息队列中,进而服务器通过流数据流处理框架时间窗口获取一定时间内的链路日志。本方案提高了服务器链路日志读取的准确率,同时也保证了链路日志读取的实时性。
[0027] 在其中一个实施例中,所述实时读取链路生成的日志字段,包括:
[0028] 获取第一目录信息,并计算所述第一目录信息对应的第一哈希值,所述第一目录信息是读取日志前所述链路的目录信息;
[0029] 根据所述第一目录信息读取所述链路生成的日志字段;
[0030] 读取结束后,获取第二目录信息,并计算所述第二目录信息对应的第二哈希值,所述第二目录信息是读取日志后所述链路的目录信息;
[0031] 将所述第一哈希值与所述第二哈希值进行对比;
[0032] 当所述第一哈希值与所述第二哈希值不同时,根据所述第二目录信息读取所述链路生成的日志字段。
[0033] 上述链路日志监控方法中,服务器通过比对读取日志字段前的第一目录信息对应的第一哈希值与读取日志字段后前的第二目录信息对应的第二哈希值,判断链路日志读取是否读取了全部日志字段,提高了日志采集系统读取日志字段的全面性与准确率。
[0034] 在其中一个实施例中,所述将所述目标数据返回至所述终端之后,还包括:
[0035] 查询所述目标数据对应的所述链路标识与所述节点标识,根据所述链路标识与所述节点标识查询对应的链路节点信息;
[0036] 获取与请求标识对应的修复参数,根据所述修复参数与所述链路节点信息修复链路节点。
[0037] 上述链路日志监控方法中,服务器根据目标数据查询到对应的链路数据,进而获取链路标识与节点标识,并根据请求标识获取修复参数,进而根据修复参数与链路标识及节点标识对应的链路标识信息修复链路节点。
[0038] 一种链路日志监控装置,所述装置包括:
[0039] 请求接收模,用于接收终端输入的链路日志查询请求,所述链路日志查询请求携带有请求标识;
[0040] 数据获取模块,用于根据所述链路日志查询请求从数据库中获取对应的链路数据,所述链路数据是通过实时读取链路日志并按照第一聚合方式进行的聚合计算得到的;
[0041] 数据聚合模块,用于根据所述链路日志查询请求获取第二聚合方式,并根据所述第二聚合方式对所述链路数据进行聚合,得到与所述请求标识对应的目标数据;
[0042] 数据返回模块,用于将所述目标数据返回至所述终端。
[0043] 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
[0044] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
[0045] 上述链路日志监控方法、装置、计算机设备和存储介质,通过根据链路日志查询请求从数据库中获取链路数据,其中,链路数据是将通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的,并根据第二聚合方式对链路数据再次进行聚合,得到与请求标识对应的目标数据。本方案中,通过第一聚合方式进行的实时聚合在保留链路日志表示的链路信息同时,减少了链路日志占用的存储空间,由于减少了需要分析整理的链路数据的数量,因此,再次聚合能够快速定位与请求标识对应的链路节点,进而提高了监控过程中查询请求的响应速度。附图说明
[0046] 图1为一个实施例中链路日志监控方法的应用场景图;
[0047] 图2为一个实施例中链路日志监控方法的流程示意图;
[0048] 图3为一个实施例中数据库生成步骤的流程示意图;
[0049] 图4为一个实施例中链路数据生成步骤的流程示意图;
[0050] 图5为一个实施例中链路日志读取步骤的流程示意图;
[0051] 图6为一个实施例中链路日志监控装置的结构框图
[0052] 图7为一个实施例中计算机设备的内部结构图。

具体实施方式

[0053] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0054] 本申请提供的链路日志监控方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。服务器104接收终端102输入的链路日志查询请求,根据链路日志查询请求从数据库中获取对应的链路数据,链路数据是通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的数据。服务器104根据链路日志查询请求获取第二聚合方式,并根据第二聚合方式对链路数据进行聚合,得到与链路日志查询请求携带的请求标识对应的目标数据,将目标数据返回至终端102。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0055] 在一个实施例中,如图2所示,提供了一种链路日志监控方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
[0056] 步骤202,接收终端输入的链路日志查询请求,链路日志查询请求携带有请求标识。
[0057] 链路日志查询请求是终端向服务器发送的,请求查询与服务相关的链路日志的信息。其中,链路日志查询请求携带有请求标识,请求标识用于识别该链路日志查询请求的标识信息。
[0058] 服务器接收终端输入的链路日志查询请求,链路日志查询请求携带有请求标识。可以理解的是,链路日志查询请求可以是根据终端应用界面上的选择项生成的发送至服务器的请求信息。例如,服务器接收终端输入的链路日志查询请求,链路日志查询请求携带有请求标识,其中,链路日志查询请求是根据应用界面上选择项“响应平均时长”生成的查询请求。
[0059] 步骤204,根据链路日志查询请求从数据库中获取对应的链路数据,链路数据是通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的。
[0060] 数据库是存储链路数据的数据集合。链路数据是根据链路日志得到的用于综合表述该链路日志的数据,例如,链路数据可以是“弹个车,应用日志,Index→Area Index→Product List,最大响应时间5s”。链路日志是日志收集系统根据服务被调用时生成的日志字段生成的日志文件,例如,链路日志是flume日志采集系统根据服务被调用时生成的日志字段生成的日志文件。其中,链路日志中包括调用请求相关的性能数据,其中,性能数据包括响应时间、内容结果、应用名称、日志类型及路径信息等。第一聚合方式包括提取逻辑及根据预设聚合规则对链路日志数据中的性能数据进行聚合。
[0061] 服务器根据链路日志查询请求从数据库中获取对应的链路数据,链路数据是通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的。其中,服务器根据提取逻辑提取链路日志中的性能数据,进而根据聚合规则对性能数据进行聚合。
[0062] 例如,当链路日志查询请求为“查询2019年9月30日11时5分至2019年9月30日11时10分的弹个车,应用日志,Index→Area Index→Product List最大响应时间”时,服务器根据链路日志查询请求从数据库中获取对应的链路数据为:2019年9月30日11时5分对应的链路数据为“弹个车,应用日志,Index→Area Index→Product List,最大响应时间5s”;2019年9月30日11时6分对应的链路数据为“弹个车,应用日志,Index→Area Index→Product List,最大响应时间4s”;2019年9月30日11时7分对应的链路数据为“弹个车,应用日志,Index→Area Index→Product List,最大响应时间5s”;2019年9月30日11时8分对应的链路数据为“弹个车,应用日志,Index→Area Index→Product List,最大响应时间6s”;2019年9月30日11时9分对应的链路数据为“弹个车,应用日志,Index→Area Index→Product List,最大响应时间5s”;2019年9月30日11时10分对应的链路数据为“弹个车,应用日志,Index→Area Index→Product List,最大响应时间7s”。上述链路数据是服务器通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的数据,其中,上述第一聚合方式中的聚合规则为“分钟内,弹个车,应用日志,Index→Area Index→Product List”下的最大响应时间。
[0063] 步骤206,根据链路日志查询请求获取第二聚合方式,并根据第二聚合方式对链路数据进行聚合,得到与请求标识对应的目标数据。
[0064] 第二聚合方式是根据聚合规则对链路数据进行聚合。目标数据是服务器聚合后展示的数据,即为与终端查询请求对应的结果数据。
[0065] 服务器根据链路日志查询请求获取第二聚合方式,并根据第二聚合方式对链路数据进行聚合,得到与请求标识对应的目标数据。
[0066] 例如,当链路日志查询请求为“查询2019年9月30日11时5分至2019年9月30日11时10分的弹个车,应用日志,Index→Area Index→Product List最大响应时间”时,服务器根据链路日志查询请求获取到的第二聚合方式为“2019年9月30日11时5分至2019年9月30日
11时10分链路数据中的最大响应时间”。服务器根据获取到的第二聚合方式对链路数据进行聚合,得到目标数据为“2019年9月30日11时5分至2019年9月30日11时10分链路数据中的最大响应时间7s(“2019年9月30日11时10分对应的链路数据为“弹个车,应用日志,Index→Area Index→Product List,最大响应时间7s”)”。
[0067] 可以理解的是,链路日志查询请求可以为“查询2019年9月30日11时5分至2019年9月30日11时10分的弹个车最大响应时间”、“查询2019年9月30日11时5分至2019年9月30日11时10分的应用日志最大响应时间”、“查询2019年9月30日11时5分至2019年9月30日11时
10分的Index→Area Index→Product List最大响应时间”,链路日志查询请求还可以是“查询2019年9月30日11时5分至2019年9月30日11时10分的应用日志,Index→Area Index→Product List最大响应时间”、“查询2019年9月30日11时5分至2019年9月30日11时10分的弹个车,Index→Area Index→Product List最大响应时间”、“查询2019年9月30日11时5分至2019年9月30日11时10分的弹个车,应用日志最大响应时间”。服务器根据链路日志查询请求从数据库中获取对应的链路数据,并根据链路日志查询请求获取第二聚合方式,而后根据第二聚合方式对链路数据进行聚合得到与请求标识对应的目标数据。
[0068] 步骤208,将目标数据返回至终端。
[0069] 服务器将聚合得到的目标数据返回至终端。
[0070] 上述链路日志监控方法中,通过第一聚合方式进行的实时聚合在保留链路日志包含的信息同时,减少了链路日志占用的存储空间,进而减少了需要分析整理的链路数据的数量,因此,本方案能够快速获取与链路日志查询请求对应的目标数据,提高了链路日志查询请求的响应速度。
[0071] 在另一个实施例中,如图3所示,提供了一种数据库生成步骤的流程示意图,包括:
[0072] 步骤302,实时读取链路日志。
[0073] 当服务被调用时,服务器通过日志采集系统实时读取服务被调用时生成的日志字段并以链路日志形式存储,其中,日志采集系统可以是flume系统。
[0074] 例如,当服务被调用时,服务器通过flume系统实时读取服务被调用时生成的日志字段,并将日志字段以链路日志的形式存储在kafka系统消息队列中。
[0075] 步骤304,根据预设的第一聚合方式对链路日志进行聚合计算,得到链路数据。
[0076] 聚合是根据聚合规则对性能数据进行的处理。服务器根据预设的第一聚合方式对链路日志进行聚合计算,得到链路数据。聚合规则包括了预设的用于聚合目标数据的描述语句,聚合规则是与聚合后得到的链路数据相对应的,基于不同的链路数据,可预设至少一个聚合规则,其中,聚合规则可以是最大响应时间、平均响应时间、出错概率等。其中,描述语句中包括定义被聚合性能数据的属性的语句,性能数据包括响应时间、内容结果、应用名称、日志类型及路径信息。基于聚合规则的描述语句,服务器通过解析后的聚合规则从性能数据中聚合出链路数据。链路数据是至少一条性能数据基于聚合规则得到的综合概述数据,链路数据可以是上述性能数据中的一部分,链路数据还可以是根据上述性能数据得到的表征性能指标的数据。
[0077] 全链路是一条完整的服务链,全链路包含多个子链路,每个子链路对应一条链路日志。服务器根据预设的第一聚合方式中的提取逻辑提取链路日志中的性能数据,进而服务器根据第一聚合方式中的聚合规则对提取到的链路数据进行聚合计算,得到链路数据。链路数据包括:应用名称、日志类型、路径信息及指标信息。指标信息是链路日志中用于表征服务对应的服务性能信息。其中,指标信息包含指标项与指标数值,例如,指标信息为最大响应时间4s,则指标项为最大响应时间,指标数值为4s。
[0078] 例如,某一条全链路L1上包含3个子链路,其中,在预设时间内,每段链路对应于一条链路日志,服务器根据第一聚合方式中的提取逻辑得到链路日志的性能数据:第一子链路N1对应的链路日志的性能数据为“弹个车,应用日志,Index→Area Index→Product List,响应时间5s,正常”;第二子链路N2对应的链路日志的性能数据为“弹个车,应用日志,Index→Area Index→Product List,响应时间4s,正常”;第三子链路N3对应的链路日志的性能数据为“弹个车,应用日志,Index→Area Index→Product List,响应时间6s,正常”。当预设的第一聚合方式中的聚合规则为最大响应时间时,服务器将性能数据聚合后得到“弹个车,应用日志,Index→Area Index→Product List,最大响应时间6s(第三子链路N3)”;当预设的第一聚合方式中的聚合规则为平均响应时间时,服务器将性能数据聚合后得到“弹个车,应用日志,Index→Area Index→Product List,平均响应时间5s(=(5s+4s+
6s)/3)”。
[0079] 步骤306,查询与链路数据对应的链路日志,并获取链路日志的链路标识与节点标识。
[0080] 链路标识是指示服务器查找到生成链路日志的全链路的唯一标识信息。节点标识是指示服务器查找到生成链路日志的节点的唯一标识信息,其中,节点对应于链路上的子链路。例如,链路日志的链路标识为L2,节点标识为N3,则该链路日志是根据L2链路上N3节点对应的子链路生成的日志文件生成的,其中,日志文件在服务器根据子链路上服务被调用时生成的日志信息。
[0081] 服务器通过链路数据查询与链路数据对应的链路日志,并解析链路日志,从链路日志中获取调用服务接收方标识,进而根据调用服务接收方标识获取链路标识与节点标识。
[0082] 例如,服务器得到的链路数据为“弹个车,应用日志,Index→Product List,最大响应时间5s”,服务器根据该链路数据中的“2019年9月30日11时30分28秒”、“弹个车”、“应用日志”、“Index→Product List”及“最大响应时间5s”得到对应的链路日志,并解析该链路日志得到链路标识为L2与节点标识为N3。其中,服务器通过链路标识为L2与节点标识为N3获取链路日志对应的链路中的位置。
[0083] 步骤308,将链路数据、链路标识与节点标识关联存储,得到数据库。
[0084] 服务器获取链路数据、链路标识与节点标识后,将链路数据、链路标识与节点标识关联存储至数据库。
[0085] 例如,服务器获取链路数据“弹个车,应用日志,Index→Product List,最大响应时间5s”、链路标识为L2与节点标识为N3后,将“弹个车,应用日志,Index→Product List,最大响应时间5s”、L2与N3关联存储至数据库中。
[0086] 上述链路日志监控方法中,服务器通过第一聚合方式对实时读取的链路日志进行聚合,得到链路数据后,将链路数据与对应的链路标识与节点标识关联存储,得到数据库。本方案,减少了链路日志的数据量,简化了聚合流程,提高了后续聚合效率,同时链路数据与链路标识及节点标识的关联存储,保证了快速定位与请求标识对应的链路节点,进而提高了监控过程中查询请求的响应速度。
[0087] 在另一个实施例中,如图4所示,提供了一种链路数据生成步骤的流程示意图,链路数据生成步骤,也即根据预设的第一聚合方式对链路日志进行聚合计算,得到链路数据,包括:
[0088] 步骤402,提取链路日志中的性能数据,性能数据包括响应时间、内容结果、应用名称、日志类型及路径信息。
[0089] 服务器根据第一聚合方式中的提取逻辑提取链路日志中的性能数据,性能数据包括响应时间、内容结果、应用名称、日志类型及路径信息,其中,性能数据中还包括日志生成时刻。提取逻辑可以是从链路日志中提取相关关键词的处理逻辑,性能数据的提取方式可以是根据预设规则的从链路日志中提取相关关键词,还可以是根据预设格式的从链路日志中提取相关关键词。日志类型可以是debug(了解系统运行状态的日志)、info(输出信息)、warn(可修复、系统可继续运行下去)、Error(可修复,无法确认系统是否可继续运行下去)或Fatal(无法修复)中的任意一种。内容结果可以是正常或异常。路径信息可以是服务器在调用全链路完成的服务对应的路径,例如,Index→Area Index→Product List。
[0090] 例如,服务器通过flume系统实时读取链路日志后,通过提取逻辑提取链路日志中的性能数据,性能数据可以是“2019年9月30日11时30分28秒,弹个车,应用日志,Index→Area Index→Product List,响应时长5s,正常”。其中,日志生成时刻是2019年9月30日11时30分28秒,应用名称是弹个车,日志类型是应用日志,路径信息是Index→Area Index→Product List,响应时间是5s,内容结果是正常。
[0091] 步骤404,将性能数据进行聚合计算得到链路数据,聚合计算是对同一应用名称、同一类型或同一请求路径中进行的聚合计算。
[0092] 服务器对性能数据进行的聚合计算是对同一应用名称、同一日志类型或同一请求路径下的性能数据进行的聚合计算。进而服务器根据性能数据聚合计算后得到链路数据。
[0093] 例如,服务器提取得到的链路日志对应的性能数据为“2019年9月30日11时30分28秒,弹个车,应用日志,Index→Area Index→Product List,响应时长5s,正常”、“2019年9月30日11时30分35秒,弹个车,应用日志,Index→Area Index→Product List,响应时长50s,异常”、“2019年9月30日11时30分45秒,弹个车,应用日志,Index→Area Index→Product List,响应时长4s,正常”、“2019年9月30日11时30分55秒,弹个车,应用日志,Index→Europe Index→Product List,响应时长3s,正常”及“2019年9月30日11时30分35秒,卖个车,应用日志,Index→Area Index→Product List,响应时长150s,异常”,且服务器对性能数据的聚合计算为同一个应用名称“弹个车”下的聚合计算时,得到“2019年9月30日11时30分,弹个车,最大响应时间50s(2019年9月30日11时30分35秒,弹个车,应用日志,Index→Area Index→Product List,响应时长50s,异常)”。可以理解的是,服务器根据上述性能数据得到“2019年9月30日11时30分,弹个车,平均响应时间15.5s((5+50+4+3)/4)”。
[0094] 上述链路日志监控方法中,服务器通过提取链路日志中的响应时间、内容结果、应用名称、日志类型及路径信息等性能数据,并根据第一聚合方式中的聚合规则计算得到同一应用名称、同一类型或同一请求路径下的链路数据。本方案,实现了多维度实时聚合链路日志中的性能数据,保证了链路日志查询请求的多样性。
[0095] 在另一个实施例中,如图5所示,提供了一种链路日志读取步骤的流程示意图,链路日志读取步骤,也即实时读取链路日志,包括:
[0096] 步骤502,实时读取链路生成的日志字段。
[0097] 日志字段是构成日志的基本单元,在服务器接收服务调用请求的过程中,服务器会根据服务响应的过程生成日志字段。服务器通过日志采集系统实时读取链路生成的日志字段。
[0098] 步骤504,当读取的日志字段为时间格式字段时,中断读取。
[0099] 时间格式字段是日志字段中用于表征时刻的字段,例如,时间格式字段可以是2019.9.30.11:30:28。可以理解的是,当服务器日志字段为时间格式字段时,说明服务器的日志采集系统已完全读取上一条日志文件,并以中断的日志字段处读取至下一条日志文件的起始字段。当服务器读取的日志字段为时间格式字段时,服务器中断日志字段读取。
[0100] 步骤506,将已读取的多个日志字段作为链路日志存储至消息队列,并继续读取。
[0101] 当服务器中断读取字段时,服务器将已读取的多个日志字段作为链路日志存储至流数据处理系统的消息队列中。存储完成后,服务器通过日志采集系统从中断的时间格式字段处继续读取日志字段。
[0102] 步骤508,利用预先设置的时间窗口实时读取消息队列中的链路日志。
[0103] 当服务器将链路日志存储至消息队列中后,服务器利用预先设置的时间窗口实时读取消息队列中的链路日志。
[0104] 上述链路日志监控方法中,服务器通过日志采集系统识别字段格式正确读取日志字段,并将读取到的多个日志字段以链路日志的形式存储至流数据处理系统的消息队列中,进而服务器通过流数据流处理框架时间窗口获取一定时间内的链路日志。本方案提高了服务器链路日志读取的准确率,同时也保证了链路日志读取的实时性。
[0105] 在其中一个实施例中,实时读取链路生成的日志字段,包括:
[0106] 获取第一目录信息,并计算第一目录信息对应的第一哈希值,第一目录信息是读取日志前链路的目录信息;根据第一目录信息读取链路生成的日志字段;读取结束后,获取第二目录信息,并计算第二目录信息对应的第二哈希值,第二目录信息是读取日志后链路的目录信息;将第一哈希值与第二哈希值进行对比;当第一哈希值与第二哈希值不同时,根据第二目录信息读取链路生成的日志字段。
[0107] 目录信息是日志前所载的目次,是揭示和报道日志的工具。目录信息是记录日志存储路径,并按照一定的次序编排而成,为反映日志存储、指导日志读取的工具。第一目录信息是日志采集系统启动后,读取日志前监听到的目录信息,而第二目录信息是日志采集系统读取日志后重新加载得到的目录信息。其中,第一目录信息可以是预设的目录信息,也可以是当前状态信息最近更新的目录信息。哈希值是由哈希函数根据数据元素确定的数值。第一哈希值即为第一目录信息中的存储地址通过哈希函数得到的数值,同理,第二哈希值即为第二目录信息中的存储地址通过哈希函数得到的数值。
[0108] 服务器通过日志采集系统获取链路的日志文件第一目录信息,并根据第一目录信息计算第一目录信息对应的第一哈希值,其中,第一目录信息是读取日志前链路的目录信息。而后,服务器根据第一目录信息读取链路生成的日志字段。当日志字段读取结束后,服务器通过日志采集系统重新加载日志目录,获取第二目录信息,并计算第二目录信息对应的第二哈希值,其中,第二目录信息是读取日志后链路的目录信息。进而,服务器将第一哈希值与第二哈希值进行对比,得到比对结果,当比对结果为第一哈希值与第二哈希值不同时,服务器根据第二目录信息读取链路生成的日志字段。
[0109] 可以理解的是,服务器根据第二目录信息读取链路生成的日志字段后,服务器通过日志采集系统重新加载日志目录,获取第三目录信息,并计算第三目录信息对应的第三哈希值。进而,服务器将第二哈希值与第三哈希值进行对比,得到比对结果,直至比对结果为读取日志字段前后两次目录信息对应的哈希值相同时,链路日志读取结束。
[0110] 上述链路日志监控方法中,服务器通过比对读取日志字段前的第一目录信息对应的第一哈希值与读取日志字段后前的第二目录信息对应的第二哈希值,判断链路日志读取是否读取了全部日志字段,提高了日志采集系统读取日志字段的全面性与准确率。
[0111] 在其中一个实施例中,将目标数据返回至终端之后,包括:
[0112] 查询目标数据对应的链路标识与节点标识,根据链路标识与节点标识查询对应的链路节点信息;获取与请求标识对应的修复参数,根据修复参数与链路节点信息修复链路节点。
[0113] 修复参数是中包含着修复类型和修复方法。例如,修复参数可以是当服务缓慢时,可以通过增加链路中节点的方法加快服务效率;修复参数还可以是当服务中断时,需要重新建立服务链路实现网络服务。服务器会根据链路数据,获取在预先建立的修复规则库中对应的修复参数,这个预先建立的修复规则库中包含着所有链路的历史链路数据以及历史链路数据对应的修复参数。
[0114] 服务器根据目标数据查询对应的链路数据,根据链路数据获取链路标识与节点标识,并根据链路标识与节点标识查询对应的链路节点信息。服务器获取与请求标识对应的修复参数,根据修复参数与链路节点信息修复链路节点。
[0115] 例如,服务器接收的链路日志查询请求为“查询2019年9月30日11时5分至2019年9月30日11时10分的弹个车,应用日志,Index→Area Index→Product List最大响应时间”,服务器根据链路日志查询请求得到的目标数据为“2019年9月30日11时5分至2019年9月30日11时10分的弹个车,应用日志,Index→Area Index→Product List最大响应时间7s”,服务器将目标数据发送至终端后,根据该目标数据查询对应的链路数据为“弹个车,应用日志,Index→Area Index→Product List,最大响应时间7s”(2019年9月30日11时10分对应的链路数据),进而,服务器根据该数据库中的关联关系查询到该链路数据对应的链路标识为L2与节点标识为N3。而后,服务器根据查询到的链路标识L2与节点标识N3查询对应的链路节点信息为“Trace ID L2-N3”。服务器根据链路日志查询请求获取与请求标识对应的修复参数为“当服务缓慢时,可以通过增加链路中节点的方法加快服务效率;当服务中断时,需要重新建立服务链路实现网络服务”,进而,服务器根据修复参数“当服务缓慢时,可以通过增加链路中节点的方法加快服务效率;当服务中断时,需要重新建立服务链路实现网络服务”与链路节点信息“Trace ID L2-N3”修复链路节点。
[0116] 上述链路日志监控方法中,服务器根据目标数据查询到对应的链路数据,进而获取链路标识与节点标识,并根据请求标识获取修复参数,进而根据修复参数与链路标识及节点标识对应的链路标识信息修复链路节点。
[0117] 应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0118] 在一个实施例中,如图6所示,提供了一种链路日志监控装置,包括:请求接收模块602、数据获取模块604、数据聚合模块606和数据返回模块608,其中:
[0119] 请求接收模块602,用于接收终端输入的链路日志查询请求,链路日志查询请求携带有请求标识。
[0120] 数据获取模块604,用于根据链路日志查询请求从数据库中获取对应的链路数据,链路数据是通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的。
[0121] 数据聚合模块606,用于根据链路日志查询请求获取第二聚合方式,并根据第二聚合方式对链路数据进行聚合,得到与请求标识对应的目标数据。
[0122] 数据返回模块608,用于将目标数据返回至终端。
[0123] 在一个实施例中,提供了一种链路日志监控装置,数据获取模块包括:
[0124] 链路日志读取子模块,用于实时读取链路日志。
[0125] 链路日志聚合子模块,用于根据预设的第一聚合方式对链路日志进行聚合计算,得到链路数据。
[0126] 标识获取子模块,用于查询与链路数据对应的链路日志,并获取链路日志的链路标识与节点标识。
[0127] 关联存储子模块,用于将链路数据、链路标识与节点标识关联存储,得到数据库。
[0128] 在一个实施例中,提供了一种链路日志监控装置,链路日志聚合子模块包括:
[0129] 性能数据提取单元,用于提取链路日志中的性能数据,性能数据包括响应时间、内容结果、应用名称、日志类型及路径信息。
[0130] 性能数据聚合单元,用于将性能数据进行聚合计算得到链路数据,聚合计算是对同一应用名称、同一类型或同一请求路径中进行的聚合计算。
[0131] 在一个实施例中,提供了一种链路日志监控装置,链路日志读取子模块包括:
[0132] 日志字段读取单元,用于实时读取链路生成的日志字段。
[0133] 字段读取中断单元,用于当读取的日志字段为时间格式字段时,中断读取。
[0134] 链路日志存储单元,用于将已读取的多个日志字段作为链路日志存储至消息队列,并继续读取。
[0135] 链路日志读取单元,用于利用预先设置的时间窗口实时读取消息队列中的链路日志。
[0136] 在一个实施例中,提供了一种链路日志监控装置,日志字段读取单元包括:
[0137] 第一目录信息获取子单元,用于获取第一目录信息,并计算第一目录信息对应的第一哈希值,第一目录信息是读取日志前链路的目录信息。
[0138] 第一日志字段读取子单元,用于根据第一目录信息读取链路生成的日志字段。
[0139] 第二目录信息获取子单元,用于读取结束后,获取第二目录信息,并计算第二目录信息对应的第二哈希值,第二目录信息是读取日志后链路的目录信息。
[0140] 哈希值比对单元,用于将第一哈希值与第二哈希值进行对比。
[0141] 第二日志字段读取子单元,用于当第一哈希值与第二哈希值不同时,根据第二目录信息读取链路生成的日志字段。
[0142] 在一个实施例中,提供了一种链路日志监控装置,数据返回模块包括:
[0143] 标识查询子模块,用于查询目标数据对应的链路标识与节点标识,根据链路标识与节点标识查询对应的链路节点信息。
[0144] 修复子模块,用于获取与请求标识对应的修复参数,根据修复参数与链路节点信息修复链路节点。
[0145] 关于链路日志监控装置的具体限定可以参见上文中对于链路日志监控方法的限定,在此不再赘述。上述链路日志监控装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0146] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储链路日志数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种链路日志监控方法。
[0147] 本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0148] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收终端输入的链路日志查询请求,链路日志查询请求携带有请求标识;根据链路日志查询请求从数据库中获取对应的链路数据,链路数据是通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的;根据链路日志查询请求获取第二聚合方式,并根据第二聚合方式对链路数据进行聚合,得到与请求标识对应的目标数据;将目标数据返回至终端。
[0149] 在一个实施例中,处理器执行计算机程序时实现数据库的生成方式,包括:实时读取链路日志;根据预设的第一聚合方式对链路日志进行聚合计算,得到链路数据;查询与链路数据对应的链路日志,并获取链路日志的链路标识与节点标识;将链路数据、链路标识与节点标识关联存储,得到数据库。
[0150] 在一个实施例中,处理器执行计算机程序时实现根据预设的第一聚合方式对链路日志进行聚合计算,得到链路数据,包括:提取链路日志中的性能数据,性能数据包括响应时间、内容结果、应用名称、日志类型及路径信息;将性能数据进行聚合计算得到链路数据,聚合计算是对同一应用名称、同一类型或同一请求路径中进行的聚合计算。
[0151] 在一个实施例中,处理器执行计算机程序时实现实时读取链路日志,包括:实时读取链路生成的日志字段;当读取的日志字段为时间格式字段时,中断读取;将已读取的多个日志字段作为链路日志存储至消息队列,并继续读取;利用预先设置的时间窗口实时读取消息队列中的链路日志。
[0152] 在一个实施例中,处理器执行计算机程序时实现实时读取链路生成的日志字段,包括:获取第一目录信息,并计算第一目录信息对应的第一哈希值,第一目录信息是读取日志前链路的目录信息;根据第一目录信息读取链路生成的日志字段;读取结束后,获取第二目录信息,并计算第二目录信息对应的第二哈希值,第二目录信息是读取日志后链路的目录信息;将第一哈希值与第二哈希值进行对比;当第一哈希值与第二哈希值不同时,根据第二目录信息读取链路生成的日志字段。
[0153] 在一个实施例中,处理器执行计算机程序时实现将目标数据返回至终端之后,还包括:查询目标数据对应的链路标识与节点标识,根据链路标识与节点标识查询对应的链路节点信息;获取与请求标识对应的修复参数,根据修复参数与链路节点信息修复链路节点。
[0154] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收终端输入的链路日志查询请求,链路日志查询请求携带有请求标识;根据链路日志查询请求从数据库中获取对应的链路数据,链路数据是通过实时读取链路日志并按照第一聚合方式进行聚合计算得到的;根据链路日志查询请求获取第二聚合方式,并根据第二聚合方式对链路数据进行聚合,得到与请求标识对应的目标数据;将目标数据返回至终端。
[0155] 在一个实施例中,计算机程序被处理器执行时实现数据库的生成方式,包括:实时读取链路日志;根据预设的第一聚合方式对链路日志进行聚合计算,得到链路数据;查询与链路数据对应的链路日志,并获取链路日志的链路标识与节点标识;将链路数据、链路标识与节点标识关联存储,得到数据库。
[0156] 在一个实施例中,计算机程序被处理器执行时实现根据预设的第一聚合方式对链路日志进行聚合计算,得到链路数据,包括:提取链路日志中的性能数据,性能数据包括响应时间、内容结果、应用名称、日志类型及路径信息;将性能数据进行聚合计算得到链路数据,聚合计算是对同一应用名称、同一类型或同一请求路径中进行的聚合计算。
[0157] 在一个实施例中,计算机程序被处理器执行时实现实时读取链路日志,包括:实时读取链路生成的日志字段;当读取的日志字段为时间格式字段时,中断读取;将已读取的多个日志字段作为链路日志存储至消息队列,并继续读取;利用预先设置的时间窗口实时读取消息队列中的链路日志。
[0158] 在一个实施例中,计算机程序被处理器执行时实现实时读取链路生成的日志字段,包括:获取第一目录信息,并计算第一目录信息对应的第一哈希值,第一目录信息是读取日志前链路的目录信息;根据第一目录信息读取链路生成的日志字段;读取结束后,获取第二目录信息,并计算第二目录信息对应的第二哈希值,第二目录信息是读取日志后链路的目录信息;将第一哈希值与第二哈希值进行对比;当第一哈希值与第二哈希值不同时,根据第二目录信息读取链路生成的日志字段。
[0159] 在一个实施例中,计算机程序被处理器执行时实现将目标数据返回至终端之后,还包括:查询目标数据对应的链路标识与节点标识,根据链路标识与节点标识查询对应的链路节点信息;获取与请求标识对应的修复参数,根据修复参数与链路节点信息修复链路节点。
[0160] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0161] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0162] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈