CN114968960A - 日志处理方法、装置、计算机设备及存储介质 - Google Patents

日志处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN114968960A
CN114968960A CN202210649100.1A CN202210649100A CN114968960A CN 114968960 A CN114968960 A CN 114968960A CN 202210649100 A CN202210649100 A CN 202210649100A CN 114968960 A CN114968960 A CN 114968960A
Authority
CN
China
Prior art keywords
analysis
function
service
log
type
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
Application number
CN202210649100.1A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210649100.1A priority Critical patent/CN114968960A/zh
Publication of CN114968960A publication Critical patent/CN114968960A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/156Query results presentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种日志处理方法、装置、计算机设备及存储介质,属于计算机技术领域。本申请通过对待分析的日志,利用过滤词过滤得到本次日志分析所针对的字段数据,进而通过与业务分析类型相关联的分析函数,自动化地对过滤所得的字段数据以函数计算的方式来进行业务分析,并输出最终的业务分析结果,从而只要在配置好分析函数的情况下,就能够引入分析函数来由机器实现业务分析,而无需人工参与到日志分析流程中来排查业务问题,提高了日志分析过程的处理效率,且能够将日志分析与业务逻辑的异常定位和排查任务进行有机结合。

Description

日志处理方法、装置、计算机设备及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种日志处理方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术的发展,在应用对用户提供业务服务的过程中,通常还会生成业务日志,在应用的新版本或新功能上线前,通常会对应用代码执行大量测试,通过对产生的业务日志进行分析,能够分析应用代码在测试过程中产生的问题(Bug),以便于定位应用代码中的问题并利于调试(Debug)修复问题。
在对业务日志进行分析的过程中,通常可采用基于关键词的正则匹配方式,快速从海量业务日志中查找到关键词所关联的字段数据,并将这些字段数据按照业务日志的时间戳进行排序展示。
由于在基于正则匹配过滤得到指定的字段数据,并基于时间戳展示过滤得到的字段数据时,只能够针对展示的这些字段数据进行线性的流程分析,还需要人工排查字段数据所反映的业务问题,因此,日志分析过程的处理效率低,无法与业务逻辑相结合。
发明内容
本申请实施例提供了一种日志处理方法、装置、计算机设备及存储介质,能够提高日志分析过程的处理效率,且能够将日志分析与业务逻辑的异常定位和排查任务进行有机结合。该技术方案如下:
一方面,提供了一种日志处理方法,该方法包括:
确定日志分析的业务场景类型和业务分析类型,所述业务场景类型表征所述日志分析所针对的业务场景,所述业务分析类型表征所述日志分析所针对字段数据所属的分析种类;
获取与所述业务场景类型相关联的过滤词以及与所述业务分析类型相关联的分析函数;
从待分析的日志中,过滤得到与所述过滤词关联的字段数据;
基于所述分析函数,对所述字段数据进行业务分析,输出所述日志的业务分析结果。
在一种可能实施方式中,所述方法还包括:
显示日志分析的场景参数配置界面,所述场景参数配置界面用于编辑所述业务场景类型、所述业务分析类型、所述过滤词或所述分析函数中的至少一项;
响应于基于所述场景参数配置界面触发的编辑操作,将所述编辑操作输入的信息赋值给所述编辑操作所针对的编辑对象,所述编辑对象为所述业务场景类型、所述业务分析类型、所述过滤词或所述分析函数中的至少一项。
在一种可能实施方式中,在所述场景参数配置界面支持编辑所述分析函数的情况下,所述方法还包括:
在所述场景参数配置界面中用于编辑所述分析函数的区域中,显示所述分析函数所支持的应用程序编程接口API以及所述API的描述信息。
一方面,提供了一种日志处理装置,该装置包括:
确定模块,用于确定日志分析的业务场景类型和业务分析类型,所述业务场景类型表征所述日志分析所针对的业务场景,所述业务分析类型表征所述日志分析所针对字段数据所属的分析种类;
获取模块,用于获取与所述业务场景类型相关联的过滤词以及与所述业务分析类型相关联的分析函数;
过滤模块,用于从待分析的日志中,过滤得到与所述过滤词关联的字段数据;
分析输出模块,用于基于所述分析函数,对所述字段数据进行业务分析,输出所述日志的业务分析结果。
在一种可能实施方式中,所述获取模块包括:
第一确定单元,用于确定与所述业务分析类型相关联的多个候选函数;
第二确定单元,用于确定与所述过滤词关联的字段数据的数据类型;
第三确定单元,用于从所述多个候选函数中,确定输入参数的参数类型与所述数据类型相匹配的分析函数。
在一种可能实施方式中,所述数据类型包括变量类型和变量属性,所述变量类型表征所述字段数据所涉及变量的类型,所述变量属性表征所述变量类型所属的变量种类;
所述第三确定单元用于:
从所述多个候选函数中,筛选得到所述输入参数命中所述变量属性的至少一个候选函数;
从所述至少一个候选函数中,筛选得到所述参数类型与所述变量类型相兼容的分析函数。
在一种可能实施方式中,所述分析函数包括分析子函数和图表子函数;
所述分析输出模块用于:
将所述字段数据作为所述分析子函数的输入参数,传入所述分析子函数,运行已传入所述输入参数的所述分析子函数,得到所述分析子函数的运行结果;
将所述运行结果传入所述图表子函数,通过所述图表子函数绘制对所述运行结果的分析图表,将所述分析图表输出为所述业务分析结果。
在一种可能实施方式中,所述装置还包括:
读取模块,用于在已缓存所述分析函数的函数代码的情况下,从缓存中读取所述函数代码;
转换模块,用于在未缓存所述函数代码的情况下,获取所述分析函数的函数字符串,将所述函数字符串转换为所述函数代码。
在一种可能实施方式中,所述业务分析结果包括下述至少一项:基于所述分析函数对所述字段数据分析所得的业务分析数据;或,以图表方式绘制的所述业务分析数据随着日志时间戳的变化趋势曲线;或,基于所述变化趋势曲线分析所得的业务分析报告。
在一种可能实施方式中,所述装置还包括:
显示模块,用于显示日志分析的场景参数配置界面,所述场景参数配置界面用于编辑所述业务场景类型、所述业务分析类型、所述过滤词或所述分析函数中的至少一项;
赋值模块,用于响应于基于所述场景参数配置界面触发的编辑操作,将所述编辑操作输入的信息赋值给所述编辑操作所针对的编辑对象,所述编辑对象为所述业务场景类型、所述业务分析类型、所述过滤词或所述分析函数中的至少一项。
在一种可能实施方式中,在所述场景参数配置界面支持编辑所述分析函数的情况下,所述显示模块还用于:
在所述场景参数配置界面中用于编辑所述分析函数的区域中,显示所述分析函数所支持的应用程序编程接口API以及所述API的描述信息。
一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器加载并执行以实现如上述任一种可能实现方式的日志处理方法。
一方面,提供了一种存储介质,该存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现如上述任一种可能实现方式的日志处理方法。
一方面,提供一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括一条或多条程序代码,所述一条或多条程序代码存储在计算机可读存储介质中。计算机设备的一个或多个处理器能够从计算机可读存储介质中读取所述一条或多条程序代码,所述一个或多个处理器执行所述一条或多条程序代码,使得计算机设备能够执行上述任一种可能实施方式的日志处理方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过对待分析的日志,利用过滤词过滤得到本次日志分析所针对的字段数据,进而通过与业务分析类型相关联的分析函数,自动化地对过滤所得的字段数据以函数计算的方式来进行业务分析,并输出最终的业务分析结果,从而只要在配置好分析函数的情况下,就能够引入分析函数来由机器实现业务分析,而无需人工参与到日志分析流程中来排查业务问题,提高了日志分析过程的处理效率,且能够将日志分析与业务逻辑的异常定位和排查任务进行有机结合。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其他的附图。
图1是本申请实施例提供的一种日志处理方法的实施环境示意图;
图2是本申请实施例提供的一种日志处理方法的流程图;
图3是本申请实施例提供的一种日志处理方法的流程图;
图4是本申请实施例提供的一种分析图表的示意图;
图5是本申请实施例提供的一种日志处理方法的原理性流程图;
图6是本申请实施例提供的一种业务分析结果的显示示意图;
图7是本申请实施例提供的一种场景参数配置界面的示意图;
图8是本申请实施例提供的一种场景参数配置界面的示意图;
图9是本申请实施例提供的一种日志处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个候选函数是指两个或两个以上的候选函数。
本申请中术语“包括A或B中至少一项”涉及如下几种情况:仅包括A,仅包括B,以及包括A和B两者。
本申请中涉及到的用户相关的信息(包括但不限于用户的设备信息、个人信息、行为信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,当以本申请实施例的方法运用到具体产品或技术中时,均为经过用户许可、同意、授权或者经过各方充分授权的,且相关信息、数据以及信号的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的业务场景下产生的日志都是在充分授权的情况下获取的。
以下,对本申请实施例涉及的术语进行解释说明。
日志信息过滤:日志是由多个字段各自的字段数据所构成的信息,通过正则表达式,能够基于正则匹配方式,从日志中过滤出指定字段的字段数据,或者过滤出包含指定关键词的字段数据,过滤得到的各个字段数据能够形成日志流程图。
函数计算:在日志分析过程中,通过向技术人员提供编写代码的容器,使得技术人员能够在容器中预定义分析函数的函数代码,从而通过函数代码能够对日志内容直接操作分析,并控制输出函数代码的运行结果。
图表分析:在日志分析过程中,通过上述函数计算方式得到分析函数的运行结果后,相当于对海量的日志数据实现了清洗分析,在图表相关函数的作用下能够将运行结果以图表方式进行可视化呈现,图表方式包括但不限于:数据表格、柱状图、饼状图、扇形图、折线图、散点图等。
有果找因:在日志分析过程中,如果业务流程中出现了BUG,有些BUG导致的结果会在拿到日志进行分析的时候才能定位出来,此时可以通过结果数据作为线索,逆序来在业务流程中查询到会导致这一结果数据的BUG。
时间回溯:在日志分析过程中,某些日志中可能会遗漏时间戳,或者某些业务流程中只有执行失败的流程节点才会产生日志,执行成功的流程节点则不会产生日志,这会导致已有日志中缺失时间戳,或者由于缺失某些日志导致缺失流程节点的时间戳,在这种情况下,可以使用上一个流程节点的时间戳作为当前缺失流程节点的时间戳,以达到日志时间回溯的效果。
以下,对本申请实施例的系统架构进行说明。
图1是本申请实施例提供的一种日志处理方法的实施环境示意图。参见图1,在该实施环境中包括终端101和服务器102,终端101和服务器102均为一种计算机设备的示例性说明。
终端101用于对外提供任一类型的业务服务,例如,终端101通过浏览器应用提供Web服务,或者通过地图应用提供LBS(Location Based Services,基于位置的服务),或者通过社交应用提供即时通讯服务等,在终端101提供业务服务的过程中,支持上述业务服务的应用会产生日志,并将日志上报到服务器102,上述日志的产生、上报需要经过用户的充分授权和单独同意。
终端101以及服务器102能够通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
服务器102用于向终端101提供日志分析平台,可选地,服务器102既为上述支持业务服务的应用提供后台服务,也对上述应用产生的日志提供分析服务,或者,服务器102是由业务服务器和分析服务器构成的服务器集群,业务服务器用于为支持业务服务的应用提供后台服务,分析服务器用于为上述应用产生的日志提供分析服务。
在一些实施例中,服务器102在接收到各个终端101上报的日志之后,通过本申请实施例涉及的日志处理方法,能够对海量日志进行批量的分析处理,以获取到日志的业务分析结果,并对该业务分析结果进行可视化呈现,该业务分析结果能够辅助定位业务流程中可能出现的BUG,或者排查应用中出现的各类异常(如闪退、页面遮挡、卡顿、无法跳转、功能异常等),还能够帮助测试应用的新版本或新功能的业务效果,具有广泛的应用场景。
在一些实施例中,服务器102可以和终端101集成在同一物理机上,本申请实施例对此不进行具体限定。
可选地,服务器102是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可选地,该终端101泛指多个终端中的一个,该终端101的设备类型包括:智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机、台式计算机、智能音箱或者智能手表中的至少一种。例如,终端101是智能手机,或者其他便携式电子设备。
本领域技术人员可以知晓,上述终端101的数量可以更多或更少。比如上述终端101可以仅为一个,或者上述终端101为几十个或几百个,或者更多数量。本申请实施例对终端101的数量和设备类型不加以限定。
图2是本申请实施例提供的一种日志处理方法的流程图。参见图2,该实施例由计算机设备执行,以计算机设备为服务器为例进行说明,该实施例包括:
201、服务器确定日志分析的业务场景类型和业务分析类型,该业务场景类型表征该日志分析所针对的业务场景,该业务分析类型表征该日志分析所针对字段数据所属的分析种类。
本申请实施例涉及的日志,是指在业务场景下应用提供业务服务的过程中产生的日志,因此也称为业务日志。其中,该日志是由多个字段各自的字段数据所构成的信息,在存储过程中每个日志可作为数据库中的一条数据记录进行存储,以数据记录方式存储的日志称为日志记录,对日志记录来说每个字段相当于日志记录的一个数据列的列名,每个字段的字段数据相当于对应数据列中存储的字段值。
本申请实施例涉及的业务场景类型,用于表征日志分析所针对的业务场景,可选地,该业务场景类型涉及以下几种等级的场景标签:应用标签、业务标签和场景标签,应用标签用于标识针对哪个应用上报的日志来进行分析,例如应用标签包括:应用A、应用B、应用C等,业务标签用于标识针对指定应用的所支持的哪类业务产生的日志来进行分析,例如业务标签包括:基础业务、导航业务、地图业务、推荐业务、广告业务、扩展业务1、扩展业务2等,场景标签用于标识指定应用在提供指定业务的相关服务的过程针对哪类场景进行分析,例如,场景标签包括:进程号切换、页面布局耗时分析、页面停留时长分析、视频观看时长分析等,本申请实施例对业务场景类型不进行具体限定。
本申请实施例涉及的业务分析类型,代表在指定业务场景类型下,需要对指定过滤词筛选得到的何种字段数据进行分析,例如,业务分析类型包括:info(用于分析各类字段数据)、core(用于分析业务流程)、warn(用于分析报警情况)、error(用于分析报错情况)、fatal(用于分析核心BUG)、图表(用于对业务分析结果进行可视化展示)等,本申请实施例对业务分析类型不进行具体限定。
在一些实施例中,在日志分析流程中,由技术人员在服务器侧输入或指定本次日志分析所针对的业务场景类型和业务分析类型。
在另一些实施例中,服务器向技术人员提供日志分析平台,技术人员可以在终端侧的网页端或应用端登录该日志分析平台,接着,在该日志分析平台中开启一次日志分析流程,指定本次日志分析所针对的业务场景类型和业务分析类型。例如,在该日志分析平台的用户交互界面中提供有开启分析选项,技术人员点击该开始分析选项之后,弹出分析配置界面(可以是弹窗形式,或者新的标签页的形式,或者子界面的形式等),在分析配置界面中可以选择业务场景类型、业务分析类型,可选地,在分析配置界面中还显示有过滤词的编辑框以及运行选项,技术人员可以在编辑框中输入本次日志分析针对的过滤词,同时在对各个超参数以及分析函数配置完毕后,点击该运行选项能够触发向日志分析平台的服务器发送日志分析请求,该日志分析请求用于启动针对该业务场景类型下的所有日志,使用与该业务分析类型匹配的分析函数来实现本次日志分析,服务器接收该日志分析请求后,解析得到该业务场景类型和该业务分析类型,本申请实施例对业务场景类型和业务分析类型的确定方式不进行具体限定。
202、服务器获取与该业务场景类型相关联的过滤词以及与该业务分析类型相关联的分析函数。
本申请实施例涉及的过滤词,是指在日志分析过程中用于进行日志信息过滤的关键词(或称为搜索词、查询词等),服务器会基于该过滤词和技术人员指定的过滤规则来生成正则表达式,从而基于正则匹配的方式,从多个日志以及每个日志的多个字段数据中过滤得到与该过滤词相匹配的各个字段数据。
本申请实施例涉及的分析函数,是指用于对从日志中过滤得到的各个字段数据以自动化方式进行分析或处理的函数,分析函数可以是技术人员本次针对特定业务场景实时编写的,还可以是从函数库中读取到的预定义函数(可能是历史分析过程中用过的,或者是函数库中原生的,或者是技术人员事先编写好存入库中的),本申请实施例对分析函数的来源不进行具体限定。
在一些实施例中,技术人员在服务器侧输入过滤词,并指定该分析函数,以使得服务器获取该过滤词和该分析函数,可选地,在获取过滤词的过程中,技术人员输入过滤词,或者,技术人员从提供的多个过滤词中选择一个作为本次日志分析的过滤词,本申请实施例对过滤词的输入方式不进行具体限定,可选地,在获取分析函数的过程中,技术人员输入该分析函数的函数代码,或者技术人员从事先已经封装好的多个分析函数中选择一个作为本次日志分析的分析函数,或者,技术人员无需指定分析函数,由服务器自动按照过滤词和业务分析类型选取最匹配的分析函数,本申请实施例对分析函数的获取方式不进行具体限定。
在另一些实施例中,服务器接收终端发送的日志分析请求,假设该日志分析请求中携带分析函数的函数代码,则服务器直接从日志分析请求中解析得到该分析函数的函数代码;或者,假设该日志分析请求中携带分析函数的函数标识,则服务器以该函数标识(如函数名或函数ID)为索引,从函数库中查找得到该函数标识所对应分析函数的函数代码;或者,假设该日志分析请求中不携带任何函数代码和函数标识,则由服务器自动按照过滤词和业务分析类型选取最匹配的分析函数,本申请实施例对分析函数的获取方式不进行具体限定。
203、服务器从待分析的日志中,过滤得到与该过滤词关联的字段数据。
在一些实施例中,从日志库中存储的多个日志中,筛选得到与该业务场景类型相匹配的多个待分析日志,接着,基于该过滤词和预设的过滤规则,来生成包含该过滤词的正则表达式,基于该正则表达式,对每个待分析日志中的所有字段进行正则匹配,从而过滤得到符合该正则表达式的字段数据,重复执行上述操作直到遍历所有的待分析日志,最终得到所有待分析日志中与该过滤词关联的所有字段数据。
在另一些实施例中,假设技术人员还指定了分析时间段,或者在日志分析请求中还携带了分析时间段,那么服务器能够获取到本次日志分析的分析时间段,进而从日志库中存储的多个日志中,筛选得到与该业务场景类型相匹配且位于该分析时间段内的多个待分析日志,接着基于上述方式来过滤得到所有待分析日志中与该过滤词关联的所有字段数据。
204、服务器基于该分析函数,对该字段数据进行业务分析,输出该日志的业务分析结果。
在一些实施例中,服务器将过滤得到的每个字段数据都作为输入参数,输入到上述步骤202确定的分析函数中,并运行该分析函数,从而得到该分析函数的运行结果,可选地,将该分析函数的运行结果直接作为该业务分析结果进行输出,可选地,分析函数包括分析子函数和图表子函数,通过分析子函数获取到上述运行结果,再通过图表子函数自动将该运行结果转换成图表形式的可视化信息,以将该可视化信息作为该业务分析结果进行输出,本申请实施例对是否将可视化信息作为业务分析结果不进行具体限定。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供的方法,通过对待分析的日志,利用过滤词过滤得到本次日志分析所针对的字段数据,进而通过与业务分析类型相关联的分析函数,自动化地对过滤所得的字段数据以函数计算的方式来进行业务分析,并输出最终的业务分析结果,从而只要在配置好分析函数的情况下,就能够引入分析函数来由机器实现业务分析,而无需人工参与到日志分析流程中来排查业务问题,提高了日志分析过程的处理效率,且能够将日志分析与业务逻辑的异常定位和排查任务进行有机结合。
在上述实施例中,简单介绍了本申请实施例涉及的日志处理流程,而在本申请实施例中,将提供一种利用分析函数来进行日志分析的详细示例性流程,下面进行说明。
图3是本申请实施例提供的一种日志处理方法的流程图。参见图3,该实施例由计算机设备执行,以计算机设备为服务器为例进行说明,该实施例包括:
301、服务器确定日志分析的业务场景类型和业务分析类型,该业务场景类型表征该日志分析所针对的业务场景,该业务分析类型表征该日志分析所针对字段数据所属的分析种类。
上述步骤301与上述步骤201类似,这里不做赘述。
302、服务器获取与该业务场景类型相关联的过滤词。
上述步骤302与上述步骤202中过滤词的方式类似,这里不做赘述。
303、服务器从待分析的日志中,过滤得到与该过滤词关联的字段数据。
上述步骤303与上述步骤203类似,这里不做赘述。
304、服务器确定与该业务分析类型相关联的多个候选函数。
在上述实施例中,步骤302中介绍了多种对分析函数的确定方式,而在本申请实施例中,将以技术人员未指定分析函数的情况下,服务器如何确定与过滤词最匹配的分析函数为例进行说明。
在一些实施例中,服务器在函数库中存储用于日志分析的每个候选函数时,会将候选函数与业务分析类型进行关联存储,从而在通过上述步骤301获取到业务分析类型的情况下,能够在函数库中查询到与该业务分析类型相关联的多个候选函数。
示意性地,上述将候选函数与业务分析类型进行关联存储是指,在函数库中存储各个候选函数时,以其所属的业务分析类型作为索引,以候选函数的函数标识和函数代码构成的二元组作为索引内容,这样在查询候选函数时,可以以上述步骤301获取到业务分析类型为索引,在函数库中查询与该索引对应的多个候选函数。
示意性地,上述将候选函数与业务分析类型进行关联存储是指,在缓存中构建一张函数索引表,该函数索引表用于指示每个函数的函数标识与业务分析类型的映射关系,这样在查询候选函数时,在该函数索引表中查询与该业务分析类型具有映射关系的多个函数标识,接着,以每个函数标识作为索引,在函数库中查询的与该索引对应的候选函数,重复执行上述操作即可获取到多个候选函数。
在一些实施例中,不管是以业务分析类型作为索引,还是以函数标识作为索引,均可以构建索引-索引内容的Key-Value(键值对)数据结构,比如,以业务分析类型作为Key(键名),以{函数标识,函数代码}二元组作为Value(键值),构建Key-Value数据结构,又例如,以函数标识作为Key,以函数代码作为Value构建Key-Value数据结构,这样能够将多对Key-Value数据结构存储到一张哈希表中,以便于提升索引效率。
305、服务器确定与该过滤词关联的字段数据的数据类型。
在一些实施例中,该数据类型包括变量类型和变量属性,该变量类型表征该字段数据所涉及变量的类型,例如,该变量类型包括但不限于:整型、浮点型、字符串、数组、队列、堆栈等;该变量属性表征该变量类型所属的变量种类,例如,该变量属性包括但不限于:时间戳、频次、进程号、时长、各类对象的标识符号(如页面标识、报警类型标识、报错类型标识等),本申请实施例对变量类型和变量属性不进行具体限定。
在一些实施例中,服务器在通过步骤303过滤得到与过滤词相关联的各个字段数据之后,对每个字段数据,都能够根据该字段数据自身的属性信息,确定出该字段数据的变量类型,比如,假设该字段数据是一个字符串,则该变量类型为字符串,又例如,假设字符数据是一个整型数据,则该变量类型为整型等;接着,基于该字段数据所属字段的属性信息,能够确定该变量属性,比如,假设该字段数据所属字段的字段名为“时间戳”,则该变量属性为时间戳,又例如,假设该字段数据所属字段的字段名为“页面停留时长”,则该变量属性为时长,本申请实施例对变量类型和变量属性的获取方式不进行具体限定。
306、服务器从该多个候选函数中,确定输入参数的参数类型与该数据类型相匹配的分析函数。
在一些实施例中,在确定了变量类型和变量属性的情况下,服务器可以从上述步骤304确定出的该多个候选函数中,先筛选得到输入参数命中该变量属性的至少一个候选函数;接着,再从该至少一个候选函数中,筛选得到该输入参数的参数类型与该变量类型相兼容的分析函数。
在一些实施例中,对每个候选函数,由于都会预先定义该候选函数的输入参数,比如某一候选函数需要输入一个字符串类型的时间戳作为输入参数,此时,相当于对该输入参数也能够确定出来一个参数类型和参数属性,例如,该参数类型为字符串,该参数属性为时间戳;接着,通过判断该输入参数的参数属性是否与上述步骤305确定的字段数据的变量属性相同,如果该参数属性与该变量属性相同,代表该输入参数命中了该变量属性,通常将该候选函数投入下一步判断流程中,如果该参数属性与该变量属性不同,代表该输入参数未命中该变量属性,则跳过该候选函数继续对下一候选函数执行上述判断操作,重复执行上述判断操作直到遍历了上述步骤304确定出的所有候选函数,最终能够确定出来该输入参数命中该变量属性的至少一个候选函数;接着,继续判断该输入参数的参数类型是否与上述步骤305确定的字段数据的变量类型相兼容,这里的“兼容”是指:参数类型与变量类型相同,或者参数类型与变量类型能够相互转换,比如参数类型与变量类型均为字符串,则代表该参数类型与该变量类型相兼容,又比如参数类型为整型、变量类型为浮点型,由于整型数据和浮点型数据能够相互转换,也代表该参数类型与该变量类型相兼容,这时,对该至少一个候选函数中的每个候选函数,如果该参数类型与该变量类型相兼容,则将该候选函数确定为本次日志分析需要用到的分析函数,如果该参数类型与该变量类型不兼容,则跳过该候选函数继续对下一候选函数执行上述判断操作,重复执行上述判断操作直到遍历了参数属性命中了变量属性的所有候选函数。
需要说明的是,经过上述筛选流程筛选得到的分析函数的数量可能为一个或多个,假设仅筛选得到一个分析函数,则将该一个分析函数投入到下述步骤307-308中以获取业务分析结果,假设筛选得到了多个分析函数,可以由服务器向技术人员提供该多个分析函数,由技术人员再次选择本次要使用哪个分析函数,或者由服务器随机选择本次使用的分析函数,或者服务器对筛选得到的每个分析函数都执行下述步骤307-308中以获取到多个业务分析结果,本申请实施例对此不进行具体限定。
在一些实施例中,通过上述步骤304-306能够获取到与该业务分析类型相关联的分析函数,可选地,还可以仅使用变量类型来筛选分析函数,或者仅使用变量属性来筛选分析函数,本申请实施例对分析函数的筛选方式不进行具体限定。
在上述过程中,通过利用变量类型和变量属性共同从候选函数中筛选得到分析函数,能够既保证分析函数的输入参数的参数属性与过滤得到的字段数据的变量属性保持一致,这样能够避免由于参数属性和变量属性不一致导致分析函数运行出错,此外,还能够保证分析函数的输入参数的参数类型与过滤得到的字段数据的变量类型互相兼容,这样能够避免由于参数类型和变量类型不兼容导致分析函数运行出错,整体能够在技术人员未指定分析函数的情况下,提升了分析函数的筛选精准度,且大大降低了筛选得到的分析函数的报错率。
在一些实施例中,在已经确定出本次日志分析所欲使用的分析函数的情况下,服务器还需要获取到该分析函数的函数代码,可选地,在已缓存该分析函数的函数代码的情况下,服务器从缓存中读取该函数代码;在未缓存该函数代码的情况下,服务器获取该分析函数的函数字符串,将该函数字符串转换为该函数代码。
示意性地,每个分析函数以Eval字符串的形式存储在函数库中,假设服务器曾经调用过该分析函数,那么会在缓存中缓存该Eval字符串转换得到的函数代码,此时无需再次执行转换操作,而只需要在缓存中读取该分析函数的函数代码即可;假设服务器从未调用过该分析函数,那么缓存中不会存储有该函数代码,则需要调用Eval()方法将Eval字符串转换成函数代码,并将该函数代码存入到缓存中以备下次调用。
在上述过程中,通过将曾经调用过的分析函数的函数代码存入缓存,能够方便后续复用该分析函数时无需再次将Eval字符串转换为函数代码,提升了函数代码的获取效率。
307、服务器将该字段数据作为该分析函数中分析子函数的输入参数,传入该分析子函数,运行已传入该输入参数的该分析子函数,得到该分析子函数的运行结果。
在一些实施例中,以该分析函数包括分析子函数和图表子函数为例进行说明,该分析子函数用于对该字段数据进行业务分析,以输出分析得到的运行结果,该图表子函数用于对分析子函数输出的运行结果以图表方式进行可视化呈现。
在一些实施例中,在该分析函数包括分析子函数和图表子函数的情况下,上述步骤304-306只需要保证该分析子函数的输入参数的参数属性与该字段数据的变量属性保持一致,以及保证该分析子函数的输入参数的参数类型与该字段数据的变量类型相兼容即可,由于分析子函数的运行结果会输入到图表子函数中,技术人员在预定义该图表子函数的时候,就会保证运行结果作为输入参数输入到图表子函数的时候,不会由于参数属性或参数类型不匹配而导致出错。
在一些实施例中,服务器将该字段输入作为输入参数,传入到分析子函数中,相当于动态传输了输入参数,接着运行该已传入输入参数的分析子函数,能够得到该分析子函数的运行结果,进入下述步骤308。
在上述过程中,通过利用分析子函数对字段数据进行业务分析,这样针对各类情况能够通过函数逻辑来定制化不同的解决方案,比如,假设在业务流程分析的过程中,缺失了某些流程节点的日志时间戳,或者某些流程节点的日志中缺失了日志时间戳,这时通过配置分析子函数的函数代码,能够自动补全(或填充)缺失的日志时间戳,从而能够实现日志时间回溯,从而便于基于回溯得到的日志来逆序分析,结合有果找因等手段,将整个日志展示的业务流程提炼出来。例如,假设业务流程包括A->B->C->D四个关键的流程节点,但流程节点B在运行成功时没有日志输出,仅在运行失败时才有日志输出,这会导致很可能会缺失流程节点B的日志,在这种情况下,如果想要根据已有日志来查看业务流程,能够通过分析子函数自动填充流程节点B的日志为运行成功,这样能够补全出完整的业务流程,便于后续技术人员根据完整的业务流程进行调整或优化。
进一步的,在支持函数计算的情况下,相当于对日志的字段数据增加了可编程函数,能够对字段数据进行更加灵活的业务逻辑处理,从而对字段数据支持业务编程能力,技术人员通过一些脚本函数作为分析函数,能够将日志的字段数据的分析逻辑固化成函数代码来计算,以分析函数为JS(JavaScript,一种脚本语言)脚本为例,通过对字段数据提供JS动态封闭的运行环境,在基于JS脚本执行函数计算时,能够通过下述步骤308中图表子函数的逻辑来控制业务分析结果的输出方式,且除了直接打印数据、以图表方式显示数据之外,还能够形成日志的业务分析报告。
308、服务器将该运行结果传入该分析函数中的图表子函数,通过该图表子函数绘制对该运行结果的分析图表,将该分析图表输出为业务分析结果。
在一些实施例中,服务器将上述步骤307所得的运行结果作为输入参数,传入到图表子函数中,相当于动态传输了输入参数,接着运行该图表子函数,以得到该运行结果的分析图表,从而将该分析图表作为业务分析结果进行可视化输出或展示。
可选地,上述分析图表包括但不限于:数据表格、柱状图、饼状图、扇形图、折线图、散点图等,本申请实施例对分析图表的显示方式不进行具体限定。
在上述过程中,通过图表子函数来对分析子函数的运行结果进行图表化,从而能够以图表的方式对该运行结果进行可视化展示,这样不论何种业务场景类型或何种业务分析类型,都能够以一种通用化、平台化的方式,来对业务分析结果进行可视化展示,从而能够提供一种通用的、可持续迭代的日志分析方案。此外,由于能够对分析日志所得的运行结果转换成更加易于理解的数据展示形式,相当于能够将运行结果清洗成了图表化数据,图表化数据更加简单易懂,且能够直观展示运行结果的变化趋势。
进一步的,由于分析函数可由技术人员按照不同业务分析需求来自定义,因此通过定制化的方案能够有针对性的实现逻辑分析业务流程,便于定义任何业务流程中出现的BUG,也便于排查异常,此外,由于技术人员能够通过函数编程的方式,来控制使用何种分析函数来处理过滤得到的字段数据,从而能够对分析函数的输入参数、运行结果以及运行结果的展示形式具有高度可控性,使得日志分析流程可编程,而无需人工定位BUG或排查异常,并且通过代码固化业务分析逻辑,能够构建日志专家系统,使得分析问题更加专业。
在一些实施例中,假设运行结果是一串随着时间戳变化的业务分析数据,此时,该业务分析结果包括下述至少一项:基于该分析函数对该字段数据分析所得的业务分析数据,此时无需使用图表子函数来将业务分析数据整理成分析图表,可以直接打印分析子函数的运行结果,即,分析函数仅包括分析子函数而不包括图表子函数;或,以图表方式绘制的该业务分析数据随着日志时间戳的变化趋势曲线,此时需要使用图表子函数将业务分析数据整理成在分析图表中随着日志时间戳的变化趋势曲线;或,基于该变化趋势曲线分析所得的业务分析报告,即,在使用图表子函数将业务分析数据整理成在分析图表中随着日志时间戳的变化趋势曲线的基础上,进一步针对该分析图表中的该变化趋势曲线进行分析,得到业务分析报告,并输出该业务分析报告,例如,对该变化趋势曲线进行分析包括:求平均值、中位数、峰值、最小值、方差、标准差、拟合指定曲线等等,本申请实施例不对此进行具体限定。
图4是本申请实施例提供的一种分析图表的示意图,如图4所示,假设业务分析数据为布局解析耗时,布局解析耗时使用参数“inflate”来表示,布局解析耗时的含义是指终端在提供业务服务的过程中对网页页面(或应用界面)解析布局所耗费的时长,布局解析耗时越长代表页面刷新越卡顿、不流畅,布局解析耗时是一种重要的利用日志来进行异常定位的分析手段,在通过分析子函数获取到每个日志时间戳情况下的inflate参数取值之后,通过图表子函数能够将inflate参数随着日志时间戳的变化趋势曲线绘制在分析图表400中,可以看出,分析图表400中横坐标为日志时间戳、纵坐标为inflate参数取值,通过分析图表400能够一目了然的看出哪个日志时间戳的inflate参数取值最大,代表在这一日志时间戳所访问的页面最为卡顿,从而通过排查该页面的布局文件能够定位出来导致该页面卡顿的原因。
在上述步骤307-308中,提供了基于该分析函数,对该字段数据进行业务分析,输出该日志的业务分析结果的一种可能实施方式,在另一实施例中,也可以通过上一实施例中步骤204中的描述来获取并输出业务分析结果,本申请实施例对此不进行具体限定。
图5是本申请实施例提供的一种日志处理方法的原理性流程图,如图5所示,在整体日志分析流程中,涉及到如下步骤:步骤501,对日志进行逐行分析;步骤502,正则过滤关键信息,即通过正则匹配方式过滤得到与过滤词相关联的字段数据;步骤503,检测到有相匹配的分析函数能够参与函数计算;步骤504,判断是否能够在缓存(Cache)中查询到分析函数,如果否,没在缓存中查询到分析函数,进入步骤505,如果是,在缓存中查询到分析函数,进入步骤507;步骤505,从函数库中查询该分析函数的Eval字符串,进入步骤506;步骤506,将Eval字符串转换为函数代码后写入到缓存中,即将Eval字符串转换得到的Function函数写入到Cache中,进入步骤507;步骤507,动态传入数据执行Function函数,即,将字段数据作为输入参数传入到分析函数中,运行分析函数;步骤508,将分析函数的运行结果进行输出,此时包括几种不同的输出方式,比如,直接将运行结果以数据方式输出,或者,将运行结果转换成分析图表后以图表方式输出,或者,针对分析图表进一步得到业务处理结果后以业务分析报告方式输出,上述最终输出的数据、图表或报告即为最终得到的业务分析结果,可选地,还可以缓存本次得到的业务分析结果,以备后续进行异常排查的时候再次访问。
图6是本申请实施例提供的一种业务分析结果的显示示意图,如图6所示,在业务分析结果的显示界面600中,显示有数据形式输出的业务分析数据601,业务分析数据601按照日志时间戳从小到大的顺序依次排序,以业务分析数据601为inflate cost即布局解析耗时为例进行说明。此外,在显示界面600中显示有针对业务分析数据601绘制的分析图表602,能够在分析图表602中看出来业务分析数据601随着日志时间戳的变化趋势曲线,从而能够对inflate cost参数随着日志时间戳如何变化的过程进行可视化展示,通过提供对业务分析数据601的多种展示方式,能够提升业务分析数据601在显示过程的灵活性、智能性。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供的方法,通过对待分析的日志,利用过滤词过滤得到本次日志分析所针对的字段数据,进而通过与业务分析类型相关联的分析函数,自动化地对过滤所得的字段数据以函数计算的方式来进行业务分析,并输出最终的业务分析结果,从而只要在配置好分析函数的情况下,就能够引入分析函数来由机器实现业务分析,而无需人工参与到日志分析流程中来排查业务问题,提高了日志分析过程的处理效率,且能够将日志分析与业务逻辑的异常定位和排查任务进行有机结合。
在上述实施例中,详细介绍了如何利用技术人员预先定义好的分析函数,来获取并输出日志的业务分析结果,下面,将介绍如何配置业务场景类型、业务分析类型、过滤词以及分析函数。
在一些实施例中,服务器向技术人员提供日志分析的场景参数配置界面,可选地,服务器显示该场景参数配置界面,或者,服务器向终端提供该场景参数配置界面的显示资源,本申请实施例对此不进行具体限定。
以服务器显示该场景参数配置界面为例,可选地,该场景参数配置界面用于编辑该业务场景类型、该业务分析类型、该过滤词或该分析函数中的至少一项,例如,在该场景参数配置界面中包括业务场景类型的配置选项、业务分析类型的配置选项、过滤词的编辑框以及分析函数的编辑框,这样技术人员能够编辑在任意业务场景类型、任意业务分析类型下的过滤词以及分析函数,实现对分析函数的个性化配置。
图7是本申请实施例提供的一种场景参数配置界面的示意图,如图7所示,在场景参数配置界面700中,包含业务场景类型的配置选项701-704、业务分析类型的配置选项705、过滤词的编辑框706-707以及分析函数的编辑框708。其中,配置选项701用于配置业务场景类型的应用标签和业务标签,例如,配置选项701目前已选中“应用A基础业务(Android)”,代表应用标签为应用A、业务标签为Android(安卓)基础业务;配置选项702用于配置在业务场景类型下的待分析的流程类型,例如配置选项702目前已选中“时间线”,代表要针对应用A的安卓基础业务进行时间线分析;配置选项703用于配置本次分析的场景名称,例如配置选项703目前已选中“进程号切换”,代表要针对应用A的安卓基础业务在流程类型为时间线的情况下分析进程号切换情况;配置选项704用于配置本次针对配置选项703设置的场景名称所添加的场景描述信息,例如配置选项704目前已选中“Null”,代表尚未添加任何场景描述信息,用户可以在配置选项704提供的文本输入框中输入对应的场景描述信息。其中,配置选项705用于配置本次分析的业务分析类型,可选地,业务分析类型包括:Info、Core、Warn、Error、Fatal、图表等,例如配置选项705目前已选中“Error”代表要针对进程号切换这一场景来分析报错情况,即可由通过检测应用进程ID何时切换,来判断日志表征的应用何时发生闪退后重启了。其中,编辑框706用于编辑本次分析的过滤词,例如,编辑框706中已配置了过滤词“/(?<$1>\d*)27604(?<$2>\S*)/”,编辑框707则用于编辑针对本次分析的过滤词描述信息,例如,编辑框707中已配置了过滤词描述信息“[本地]应用重启,进程号切换:$1”。其中,编辑框708用于编辑本次分析使用的分析函数,例如通过判断当前日志的进程号跟上次日志的进程号是否一致,如果进程号一致,则认为应用是同一个进程管控(并未发生闪退),则不打印这条日志作为输出,如果进程号不一致,则认为应用由不同进程来接管(代表发生闪退后重启了),则默认输出进程切换后的ID内容,即默认打印重启后的进程号,针对上述判断逻辑可以配置如下的分析函数的函数代码:
Figure BDA0003685294970000201
进一步的,在场景参数配置界面700中还可以设置有验证数据的编辑框709,编辑框709用于配置针对本次分析函数的验证数据,这样方便通过给定一部分验证数据作为一条用于测试的日志,来测试本次录入的分析函数的函数代码中是否有BUG,例如编辑框709中输入了验证数据“27491 27604D”,此后技术人员点击“数据测试”则可试运行分析函数来针对验证数据“27491 27604D”测试是否发生了进程号切换,技术人员可根据测试结果来决定是要对分析函数的函数代码进行Debug,还是要保存分析函数的函数代码到函数库中以便后续调用。
在一些实施例中,技术人员在对该场景参数配置界面中任一编辑对象执行编辑操作后,服务器响应于基于该场景参数配置界面触发的编辑操作,将该编辑操作输入的信息赋值给该编辑操作所针对的编辑对象,其中,该编辑对象为该业务场景类型、该业务分析类型、该过滤词或该分析函数中的至少一项。
例如,基于图7的示例,技术人员可以基于业务场景类型的配置选项701-704执行编辑操作,来更新业务场景类型的应用标签、业务标签、流程类型、场景名称或场景描述信息,或者,基于业务分析类型的配置选项705执行编辑操作,来更新业务分析类型,或者,基于过滤词的编辑框706-707执行编辑操作,来更新过滤词或过滤词描述信息,或者,基于分析函数的编辑框708执行编辑操作,来更新分析函数的函数代码,或者,基于验证数据的编辑框709执行编辑操作,来更新对分析函数的验证数据等,本申请实施例对此不进行具体限定。
在一些实施例中,在该场景参数配置界面支持编辑该分析函数的情况下,服务器还可以在该场景参数配置界面中用于编辑该分析函数的区域中,显示该分析函数所支持的应用程序编程接口API以及该API的描述信息,从而能够方便、直观地提示技术人员在配置分析函数的函数代码的过程中,可以使用哪些API,以及这些API分别有什么功能或作用,从而提升对分析函数的配置效率。
图8是本申请实施例提供的一种场景参数配置界面的示意图,如图8所示,该场景参数配置界面800中显示有业务场景类型的配置选项801以及业务分析类型的配置选项802,例如,业务场景类型的配置选项801目前已选中“Inflate耗时分析(基础)”,代表要针对当前应用的基础业务分析Inflate布局耗时,例如,业务分析类型的配置选项802目前已选中“Info”代表要针对过滤所得的布局耗时信息来进行业务分析。此外,该场景参数配置界面800中还显示有过滤词的编辑框803以及过滤词描述信息的编辑框804,例如,在过滤词的编辑框803中已输入了过滤词为“/inflate cost:(?<$1>\d*)/”,例如,在过滤词描述信息的编辑框804中已输入了过滤词描述信息为“inflate cost:$1”,即定义变量$1来表示Inflate布局耗时,例如,针对验证数据“inflate cost:2”来进行过滤,即可得到变量$1等于2。
进一步的,在该场景参数配置界面800中还显示有分析函数的编辑框805,假设技术人员尚未输入任何分析函数的函数代码,此时在该分析函数的编辑框805中显示有API和API的描述信息8051,例如,该API和API的描述信息8051如下所示:
/**
函数计算,系统参数说明。
$1,$2...//是过滤词中声明的正则过滤匹配变量,变量值默认为字符串,如果确定变量是数字类型,可以使用+$1方式,自动转义成数字类型,在进行比较。
$hidden=false,//可以隐藏这行匹配信息。
$color="#ff0000",//设置正则匹配词的颜色。
$global={}//在场景搜索时的全局对象,声明周期为当前文本搜索过程有效。
$line//逐行分析的文本内容。
$comment//添加鼠标悬停时的说明
$type//更改过滤类型,支持值"info""core""warn""error""fatal"
window={}//系统全局对象,永久有效。
lineChart(title,label,value,priority,gradient)//图表显示,title图表标题,label图表里面的label类型,value图表数值,priority(可选):优先级排序、从大到小排序,gradient(可选):是否开启渐变支持(true/false)支持:barChart柱状图,pointChart点状图
*/
示意性地,将过滤所得的各个变量$1都写入到图表函数lineChart("布局解析耗时分析","inflate",$1);中,这样能够输出一张可视化数据图表(例如图4)。
可以看出,在该API和API的描述信息8051的提示下,极大方便了技术人员来编写分析函数的函数代码,支持技术人员使用内置的代码和数据来搭建分析函数,且提供了轻量动态的独立JS运行环境,在JS运行环境中,还能改提供函数计算分析必要的一些系统数据,使得技术人员易于将业务分析的逻辑流程编写成函数代码,并将这些函数代码投入到日志实时分析流程中。
在本申请实施例中,支持在配置日志分析的相关信息时,添加关于分析函数的函数代码,从而能够通过日志分析平台来提供基于分析函数的自动化业务分析能力,并且在录入分析函数的函数代码时,支持输入一些验证数据来测试运行分析函数是否报错,降低了分析函数的调试成本,提高了人机交互效率。
图9是本申请实施例提供的一种日志处理装置的结构示意图,请参考图9,该装置包括:
确定模块901,用于确定日志分析的业务场景类型和业务分析类型,该业务场景类型表征该日志分析所针对的业务场景,该业务分析类型表征该日志分析所针对字段数据所属的分析种类;
获取模块902,用于获取与该业务场景类型相关联的过滤词以及与该业务分析类型相关联的分析函数;
过滤模块903,用于从待分析的日志中,过滤得到与该过滤词关联的字段数据;
分析输出模块904,用于基于该分析函数,对该字段数据进行业务分析,输出该日志的业务分析结果。
本申请实施例提供的装置,通过对待分析的日志,利用过滤词过滤得到本次日志分析所针对的字段数据,进而通过与业务分析类型相关联的分析函数,自动化地对过滤所得的字段数据以函数计算的方式来进行业务分析,并输出最终的业务分析结果,从而只要在配置好分析函数的情况下,就能够引入分析函数来由机器实现业务分析,而无需人工参与到日志分析流程中来排查业务问题,提高了日志分析过程的处理效率,且能够将日志分析与业务逻辑的异常定位和排查任务进行有机结合。
在一种可能实施方式中,基于图9的装置组成,该获取模块902包括:
第一确定单元,用于确定与该业务分析类型相关联的多个候选函数;
第二确定单元,用于确定与该过滤词关联的字段数据的数据类型;
第三确定单元,用于从该多个候选函数中,确定输入参数的参数类型与该数据类型相匹配的分析函数。
在一种可能实施方式中,该数据类型包括变量类型和变量属性,该变量类型表征该字段数据所涉及变量的类型,该变量属性表征该变量类型所属的变量种类;
该第三确定单元用于:
从该多个候选函数中,筛选得到该输入参数命中该变量属性的至少一个候选函数;
从该至少一个候选函数中,筛选得到该参数类型与该变量类型相兼容的分析函数。
在一种可能实施方式中,该分析函数包括分析子函数和图表子函数;
该分析输出模块904用于:
将该字段数据作为该分析子函数的输入参数,传入该分析子函数,运行已传入该输入参数的该分析子函数,得到该分析子函数的运行结果;
将该运行结果传入该图表子函数,通过该图表子函数绘制对该运行结果的分析图表,将该分析图表输出为该业务分析结果。
在一种可能实施方式中,基于图9的装置组成,该装置还包括:
读取模块,用于在已缓存该分析函数的函数代码的情况下,从缓存中读取该函数代码;
转换模块,用于在未缓存该函数代码的情况下,获取该分析函数的函数字符串,将该函数字符串转换为该函数代码。
在一种可能实施方式中,该业务分析结果包括下述至少一项:基于该分析函数对该字段数据分析所得的业务分析数据;或,以图表方式绘制的该业务分析数据随着日志时间戳的变化趋势曲线;或,基于该变化趋势曲线分析所得的业务分析报告。
在一种可能实施方式中,基于图9的装置组成,该装置还包括:
显示模块,用于显示日志分析的场景参数配置界面,该场景参数配置界面用于编辑该业务场景类型、该业务分析类型、该过滤词或该分析函数中的至少一项;
赋值模块,用于响应于基于该场景参数配置界面触发的编辑操作,将该编辑操作输入的信息赋值给该编辑操作所针对的编辑对象,该编辑对象为该业务场景类型、该业务分析类型、该过滤词或该分析函数中的至少一项。
在一种可能实施方式中,在该场景参数配置界面支持编辑该分析函数的情况下,该显示模块还用于:
在该场景参数配置界面中用于编辑该分析函数的区域中,显示该分析函数所支持的应用程序编程接口API以及该API的描述信息。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的日志处理装置在处理日志时,仅以上述各功能模块的划分进行举例说明,实际应用中,能够根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的日志处理装置与日志处理方法实施例属于同一构思,其具体实现过程详见日志处理方法实施例,这里不再赘述。
图10是本申请实施例提供的一种计算机设备的结构示意图,如图10所示,以计算机设备为终端1000为例进行说明。可选地,该终端1000的设备类型包括:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1000还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1000包括有:处理器1001和存储器1002。
可选地,处理器1001包括一个或多个处理核心,比如4核心处理器、8核心处理器等。可选地,处理器1001采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable LogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。在一些实施例中,处理器1001包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
在一些实施例中,存储器1002包括一个或多个计算机可读存储介质,可选地,该计算机可读存储介质是非暂态的。可选地,存储器1002还包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器1001所执行以实现本申请中各个实施例提供的日志处理方法。
在一些实施例中,终端1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间能够通过总线或信号线相连。各个外围设备能够通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:射频电路1004、显示屏1005、摄像头组件1006、音频电路1007和电源1008中的至少一种。
外围设备接口1003可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和外围设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和外围设备接口1003中的任意一个或两个在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。可选地,射频电路1004通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1004还包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1005用于显示UI(User Interface,用户界面)。可选地,该UI包括图形、文本、图标、视频及其它们的任意组合。当显示屏1005是触摸显示屏时,显示屏1005还具有采集在显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号能够作为控制信号输入至处理器1001进行处理。可选地,显示屏1005还用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1005为一个,设置终端1000的前面板;在另一些实施例中,显示屏1005为至少两个,分别设置在终端1000的不同表面或呈折叠设计;在再一些实施例中,显示屏1005是柔性显示屏,设置在终端1000的弯曲表面上或折叠面上。甚至,可选地,显示屏1005设置成非矩形的不规则图形,也即异形屏。可选地,显示屏1005采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1006用于采集图像或视频。可选地,摄像头组件1006包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1006还包括闪光灯。可选地,闪光灯是单色温闪光灯,或者是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,用于不同色温下的光线补偿。
在一些实施例中,音频电路1007包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1001进行处理,或者输入至射频电路1004以实现语音通信。出于立体声采集或降噪的目的,麦克风为多个,分别设置在终端1000的不同部位。可选地,麦克风是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1001或射频电路1004的电信号转换为声波。可选地,扬声器是传统的薄膜扬声器,或者是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅能够将电信号转换为人类可听见的声波,也能够将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1007还包括耳机插孔。
电源1008用于为终端1000中的各个组件进行供电。可选地,电源1008是交流电、直流电、一次性电池或可充电电池。当电源1008包括可充电电池时,该可充电电池支持有线充电或无线充电。该可充电电池还用于支持快充技术。
本领域技术人员能够理解,图10中示出的结构并不构成对终端1000的限定,能够包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图11是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备1100可因配置或性能不同而产生比较大的差异,该计算机设备1100包括一个或一个以上处理器(Central Processing Units,CPU)1101和一个或一个以上的存储器1102,其中,该存储器1102中存储有至少一条计算机程序,该至少一条计算机程序由该一个或一个以上处理器1101加载并执行以实现上述各个实施例提供的日志处理方法。可选地,该计算机设备1100还具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备1100还包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条计算机程序的存储器,上述至少一条计算机程序可由终端中的处理器执行以完成上述各个实施例中的日志处理方法。例如,该计算机可读存储介质包括ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-OnlyMemory,只读光盘)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,包括一条或多条程序代码,该一条或多条程序代码存储在计算机可读存储介质中。计算机设备的一个或多个处理器能够从计算机可读存储介质中读取该一条或多条程序代码,该一个或多个处理器执行该一条或多条程序代码,使得计算机设备能够执行以完成上述实施例中的日志处理方法。
本领域普通技术人员能够理解实现上述实施例的全部或部分步骤能够通过硬件来完成,也能够通过程序来指令相关的硬件完成,可选地,该程序存储于一种计算机可读存储介质中,可选地,上述提到的存储介质是只读存储器、磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种日志处理方法,其特征在于,所述方法包括:
确定日志分析的业务场景类型和业务分析类型,所述业务场景类型表征所述日志分析所针对的业务场景,所述业务分析类型表征所述日志分析所针对字段数据所属的分析种类;
获取与所述业务场景类型相关联的过滤词以及与所述业务分析类型相关联的分析函数;
从待分析的日志中,过滤得到与所述过滤词关联的字段数据;
基于所述分析函数,对所述字段数据进行业务分析,输出所述日志的业务分析结果。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述业务分析类型相关联的分析函数包括:
确定与所述业务分析类型相关联的多个候选函数;
确定与所述过滤词关联的字段数据的数据类型;
从所述多个候选函数中,确定输入参数的参数类型与所述数据类型相匹配的分析函数。
3.根据权利要求2所述的方法,其特征在于,所述数据类型包括变量类型和变量属性,所述变量类型表征所述字段数据所涉及变量的类型,所述变量属性表征所述变量类型所属的变量种类;
所述从所述多个候选函数中,确定输入参数的参数类型与所述数据类型相匹配的分析函数包括:
从所述多个候选函数中,筛选得到所述输入参数命中所述变量属性的至少一个候选函数;
从所述至少一个候选函数中,筛选得到所述参数类型与所述变量类型相兼容的分析函数。
4.根据权利要求1所述的方法,其特征在于,所述分析函数包括分析子函数和图表子函数;
所述基于所述分析函数,对所述字段数据进行业务分析,输出所述日志的业务分析结果包括:
将所述字段数据作为所述分析子函数的输入参数,传入所述分析子函数,运行已传入所述输入参数的所述分析子函数,得到所述分析子函数的运行结果;
将所述运行结果传入所述图表子函数,通过所述图表子函数绘制对所述运行结果的分析图表,将所述分析图表输出为所述业务分析结果。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在已缓存所述分析函数的函数代码的情况下,从缓存中读取所述函数代码;
在未缓存所述函数代码的情况下,获取所述分析函数的函数字符串,将所述函数字符串转换为所述函数代码。
6.根据权利要求1所述的方法,其特征在于,所述业务分析结果包括下述至少一项:基于所述分析函数对所述字段数据分析所得的业务分析数据;或,以图表方式绘制的所述业务分析数据随着日志时间戳的变化趋势曲线;或,基于所述变化趋势曲线分析所得的业务分析报告。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
显示日志分析的场景参数配置界面,所述场景参数配置界面用于编辑所述业务场景类型、所述业务分析类型、所述过滤词或所述分析函数中的至少一项;
响应于基于所述场景参数配置界面触发的编辑操作,将所述编辑操作输入的信息赋值给所述编辑操作所针对的编辑对象,所述编辑对象为所述业务场景类型、所述业务分析类型、所述过滤词或所述分析函数中的至少一项。
8.一种日志处理装置,其特征在于,所述装置包括:
确定模块,用于确定日志分析的业务场景类型和业务分析类型,所述业务场景类型表征所述日志分析所针对的业务场景,所述业务分析类型表征所述日志分析所针对字段数据所属的分析种类;
获取模块,用于获取与所述业务场景类型相关联的过滤词以及与所述业务分析类型相关联的分析函数;
过滤模块,用于从待分析的日志中,过滤得到与所述过滤词关联的字段数据;
分析输出模块,用于基于所述分析函数,对所述字段数据进行业务分析,输出所述日志的业务分析结果。
9.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求7任一项所述的日志处理方法。
10.一种存储介质,其特征在于,所述存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如权利要求1至权利要求7任一项所述的日志处理方法。
CN202210649100.1A 2022-06-09 2022-06-09 日志处理方法、装置、计算机设备及存储介质 Pending CN114968960A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210649100.1A CN114968960A (zh) 2022-06-09 2022-06-09 日志处理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210649100.1A CN114968960A (zh) 2022-06-09 2022-06-09 日志处理方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN114968960A true CN114968960A (zh) 2022-08-30

Family

ID=82962153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210649100.1A Pending CN114968960A (zh) 2022-06-09 2022-06-09 日志处理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN114968960A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118070075A (zh) * 2024-04-22 2024-05-24 之江实验室 一种数据分析方法、装置、电子装置和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118070075A (zh) * 2024-04-22 2024-05-24 之江实验室 一种数据分析方法、装置、电子装置和存储介质
CN118070075B (zh) * 2024-04-22 2024-09-03 之江实验室 一种数据分析方法、装置、电子装置和存储介质

Similar Documents

Publication Publication Date Title
CN109828906B (zh) Ui自动化测试方法、装置、电子设备及存储介质
CN106126592B (zh) 搜索数据的处理方法及装置
CN111831542B (zh) Api应用调测方法及装置、存储介质
US20240045904A1 (en) System and method of providing search and replace functionality for videos
CN112783779A (zh) 测试用例的生成方法、装置、电子设备和存储介质
CN113220366A (zh) 子应用启动方法、装置、终端及服务器
CN110196833A (zh) 应用程序的搜索方法、装置、终端及存储介质
CN116360735A (zh) 一种表单生成方法、装置、设备和介质
CN114968960A (zh) 日志处理方法、装置、计算机设备及存储介质
CN114661811A (zh) 数据展示方法、装置、电子设备及存储介质
CN108984374A (zh) 一种数据库性能的测试方法和系统
CN112671878B (zh) 一种区块链的信息订阅方法、装置、服务器和存储介质
CN114969064A (zh) 故障检测方法、装置、系统及存储介质
CN116339818B (zh) 代码变更类型的筛选方法、电子设备及可读存储介质
CN113138996A (zh) 语句生成方法和装置
WO2023115831A1 (zh) 应用程序的测试方法、装置、电子设备及存储介质
US12050634B2 (en) Method and apparatus for distributing content across platforms, device and storage medium
CN114896165A (zh) 会话机器人系统的测试方法、装置、电子设备和存储介质
CN114461909A (zh) 信息处理方法、信息处理装置、电子设备和存储介质
CN114428737A (zh) 基于微服务体系的通信方法、装置、设备及存储介质
CN113706209B (zh) 运营数据处理方法及相关装置
US20220329922A1 (en) Method and platform of generating a short video, electronic device, and storage medium
CN116027948A (zh) 页面内容标记方法、装置、电子设备及存储介质
CN116303022A (zh) 页面跳转效果测试方法、装置、介质及设备
CN115391187A (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