CN114020585A - 业务处理方法、装置和计算机可读存储介质 - Google Patents
业务处理方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN114020585A CN114020585A CN202111174289.5A CN202111174289A CN114020585A CN 114020585 A CN114020585 A CN 114020585A CN 202111174289 A CN202111174289 A CN 202111174289A CN 114020585 A CN114020585 A CN 114020585A
- Authority
- CN
- China
- Prior art keywords
- alarm
- service
- information
- hash value
- acquiring
- 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
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/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种业务处理方法、装置和计算机可读存储介质,业务处理方法包括:获取业务的日志信息,根据日志信息提取业务对应的关键字;对关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取拼接字段的哈希值;在知识库中查找与哈希值匹配的目标哈希值,知识库为基于关键字、哈希值以及业务的异常信息生成的存储库;获取目标哈希值对应的业务的异常信息,根据异常信息输出告警信息。本申请通过在知识库中查找与哈希值匹配的目标哈希值,并获取该目标哈希值对应的异常信息,然后基于该异常信息输出告警信息,如此,提高了业务监控的有效性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种业务处理方法、装置和计算机可读存储介质。
背景技术
目前,针对业务数据的监控技术主要有以下几类:第一,针对业务的性能数据与服务器等相关的硬件数据监控,这种监控缺少对实际业务含义的分析,且对硬件指标等有依赖性,适用场景特殊。第二,采用机器算法对业务数据进行学习使用,生成自定义的告警信息,这种方式无法满足精准推送的需求。可见,现有的业务监控告警方面的技术,主要是针对业务的性能数据,或者是与硬件相关的监控,对实际业务生成的数据,如业务日志数据的分析监控的技术较少。因此,现有存在业务监控有效性低的问题。
发明内容
本申请实施例通过提供一种业务处理方法、装置和计算机可读存储介质,旨在解决现有业务监控有效性低的问题。
为实现上述目的,本申请一方面提供一种业务处理方法,所述方法包括:
获取业务的日志信息,根据所述日志信息提取所述业务对应的关键字;
对所述关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取所述拼接字段的哈希值;
在知识库中查找与所述哈希值匹配的目标哈希值,所述知识库为基于所述关键字、所述哈希值以及所述业务的异常信息生成的存储库;
获取所述目标哈希值对应的所述业务的异常信息,根据所述异常信息输出告警信息。
可选地,所述根据所述异常信息输出告警信息的步骤包括:
获取所述异常信息对应的告警内容;
获取所述告警内容对应的告警级别、告警方式以及告警对象;
根据所述告警级别和所述告警方式向所述告警对象输出包括所述告警内容的告警信息。
可选地,所述获取所述告警内容对应的告警级别、告警方式以及告警对象的步骤之前,包括:
获取所述异常信息对应的告警情况;
在所述告警情况为在统计异常信息时触发的告警,将所述告警级别设为常规告警;
在所述告警情况为业务异常发生频率大于或等于第一预设值时,将所述告警级别设为提示告警;
在所述告警情况为业务异常数量大于或等于第二预设值时,将所述告警级别设为故障告警。
可选地,所述获取所述异常信息对应的告警级别、告警方式以及告警对象的步骤之前,包括:
获取所述异常信息对应的调用接口;
获取每个所述调用接口对应的接入方以及所述接入方的标识信息;
根据所述哈希值和所述标识信息确定所述告警对象。
可选地,所述方法还包括:
判断所述知识库是否存储有所述哈希值;
在所述知识库存储有所述哈希值时,将所述异常信息存储至所述知识库;
在所述知识库未存储有所述哈希值时,根据所述关键字创建业务链路得到目标业务链路;
将所述哈希值和所述异常信息存储至所述目标业务链路。
可选地,所述方法还包括:
获取所述业务的对外接口的默认失败率,以及所述对外接口对应的接入方的初始可接受失败率和可接受失败率;
在所述可接受失败率大于等于所述默认失败率时,将所述业务转换为在线处理模式;
在所述可接受失败率小于等于所述初始可接受失败率时,将所述业务转换为离线自学习模式。
可选地,所述方法还包括:
获取所述对外接口的第一性能指标值;
获取各个所述接入方的第二性能指标值,并获取各个所述第二性能指标值的和值;
获取所述和值与所述第一性能指标值的商值;
获取所述商值与所述对外接口的默认失败率的乘积,将所述乘积作为所述初始可接受失败率。
此外,为实现上述目的,本申请另一方面还提供一种业务处理装置,所述业务处理装置包括获取模块、处理模块、查找模块和输出模块,其中:
所述获取模块,用于获取业务的日志信息,根据所述日志信息提取所述业务对应的关键字;
所述处理模块,用于对所述关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取所述拼接字段的哈希值;
所述查找模块,用于在知识库中查找与所述哈希值匹配的目标哈希值,所述知识库为基于所述关键字、所述哈希值以及所述业务的异常信息生成的存储库;
所述输出模块,用于获取所述目标哈希值对应的所述业务的异常信息,根据所述异常信息输出告警信息。
此外,为实现上述目的,本申请另一方面还提供一种业务处理装置,所述装置包括存储器、处理器及存储在存储器上并在所述处理器上运行业务处理程序,所述处理器执行所述业务处理程序时实现如上所述业务处理方法的步骤。
此外,为实现上述目的,本申请另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有业务处理程序,所述业务处理程序被处理器执行时实现如上所述业务处理方法的步骤。
本申请提出一种业务处理方法,通过获取业务的日志信息,根据日志信息提取业务对应的关键字;对关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取拼接字段的哈希值;在知识库中查找与哈希值匹配的目标哈希值,知识库为基于关键字、哈希值以及业务的异常信息生成的存储库;获取目标哈希值对应的业务的异常信息,根据异常信息输出告警信息。本申请通过在知识库中查找与哈希值匹配的目标哈希值,并获取该目标哈希值对应的异常信息,然后基于该异常信息输出告警信息,如此,提高了业务监控的有效性。
附图说明
图1为本申请实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本申请业务处理方法第一实施例的流程示意图;
图3为本申请业务处理方法第二实施例的流程示意图;
图4为本申请业务处理方法第三实施例的流程示意图;
图5为本申请的业务处理系统的架构示意图;
图6为本申请的知识库的结构示意图;
图7为本申请业务日志的自学习流程示意图;
图8为本申请动态切换算法的流程示意图;
图9为本申请业务处理装置的模块示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:获取业务的日志信息,根据所述日志信息提取所述业务对应的关键字;对所述关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取所述拼接字段的哈希值;在知识库中查找与所述哈希值匹配的目标哈希值,所述知识库为基于所述关键字、所述哈希值以及所述业务的异常信息生成的存储库;获取所述目标哈希值对应的所述业务的异常信息,根据所述异常信息输出告警信息。
由于现有的业务监控告警方面的技术,主要是针对业务的性能数据,或者是与硬件相关的监控,对实际业务生成的数据,如业务日志数据的分析监控的技术较少。因此,现有存在业务监控有效性低的问题。
而本申请通过获取业务的日志信息,根据日志信息提取业务对应的关键字;对关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取拼接字段的哈希值;在知识库中查找与哈希值匹配的目标哈希值,知识库为基于关键字、哈希值以及业务的异常信息生成的存储库;获取目标哈希值对应的业务的异常信息,根据异常信息输出告警信息。本申请通过在知识库中查找与哈希值匹配的目标哈希值,并获取该目标哈希值对应的异常信息,然后基于该异常信息输出告警信息,如此,提高了业务监控的有效性。
如图1所示,图1为本申请实施例方案涉及的硬件运行环境的终端设备结构示意图。
如图1所示,该终端设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括业务处理程序。
在图1所示的终端设备中,网络接口1004主要用于与后台服务器进行数据通信;用户接口1003主要用于与客户端(用户端)进行数据通信;处理器1001可以用于调用存储器1005中业务处理程序,并执行以下操作:
获取业务的日志信息,根据所述日志信息提取所述业务对应的关键字;
对所述关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取所述拼接字段的哈希值;
在知识库中查找与所述哈希值匹配的目标哈希值,所述知识库为基于所述关键字、所述哈希值以及所述业务的异常信息生成的存储库;
获取所述目标哈希值对应的所述业务的异常信息,根据所述异常信息输出告警信息。
参考图2,图2为本申请业务处理方法第一实施例的流程示意图。
本申请实施例提供了一种业务处理方法,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例的业务处理方法,包括以下步骤:
步骤S10,获取业务的日志信息,根据所述日志信息提取所述业务对应的关键字;
需要说明的是,参考图5,图5为本申请的业务处理系统的架构示意图。该业务处理系统的架构总共分为三个大部分:离线侧、在线侧、支撑侧。
离线侧:主要包括对业务日志的自学习,并抽象出数据模型,记录到知识库中;
在线侧:包括性能在线监控和业务在线监控,其中业务在线监控主要是对业务平台的实时数据的分析与记录;
支撑侧:主要包括:配置模块、告警模块、可视化模块等,配置模块主要是对系统内关键维度、指标的配置;告警模块是发送告警的模块;可视化模块是通过可视化工具对业务的具体展示。
其中,本系统的配置模块主要功能是:在系统运行时,其逻辑与业务功能等相关正常运行的参数保障。因本申请设计业务相关的监控与告警,且需要满足精准推送的目的,所以业务相关的配置尤为重要。本申请将配置主要分为系统配置、业务配置和关键算法的配置,其中:
系统配置:支撑系统的正常运行,是系统级别的配置,在系统移植到不同业务平台时,该配置可做适配修改,配置的功能与使用等保持不变。关键配置有:日志相关的IO、服务节点信息、存储库信息等。
业务配置:考虑到业务监控的复杂性和为满足本系统的可移植性,业务相关的配置也会更复杂。例如,针对不同的业务接口,需要收集的关键信息也会不同,涉及日志的分析,系统提取出关键信息后再做后续的告警推送时,推送的内容是告警接收者关注的信息。本系统提取的业务关键配置有:
业务日志相关:时间、关键字、服务节点等。提取时间、地点、事件等关键信息。
接口相关:上下游接口关键字段、关键出、入参信息等。提取接口层关键信息。
告警相关:告警方式、告警级别、告警对象、告警阈值、告警频率等。根据不同的业务异常监控结果和系统自定义的告警级别,系统会采用不同的告警方式、告警类型,通知对应的告警对象。
基于上述配置,系统可以从业务日志中提取完整的事件信息,根据日志信息关联告警对象,从而确定告警推送的完整逻辑,从告警内容和告警推送方面实现告警精准推送设计。
关键算法的配置:本系统主要包括两个关键算法:自学习算法和离线自学习与实时监控动态转换算法,其中:
自学习算法:日志读取的初始窗口时间、预置的基础知识、人工校正的配置等。算法配置保证自学习算法的功能正确与自学习过程能不断迭代进行,从而生成丰富的知识库。
离线自学习与实时监控动态转换算法:默认失败率、接口性能指标、时间窗口升级指数等。
在本实施例中,通过自学习模块读取业务的日志信息,由于自学习模块读取的日志信息是非实时的,因此,自学习模块会根据本系统设置的初始时间窗口读取该范围内的业务日志信息,例如,本系统设置初始时间窗口为10分钟,即从10分钟前到当前时间的时间范围窗口。然后,从日志信息中提取业务对应的关键字,该关键字包括业务级关键字和系统级关键字,其中,业务级关键字主要是系统初期预置的基础知识及在自学习中不断丰富的关键字;系统级关键字是指业务平台运行时出的系统级异常,它是与具体平台业务无关或者弱关联的,例如业务经常发生的“NPE”、“Timeout”等。
步骤S20,对所述关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取所述拼接字段的哈希值;
需要说明的是,参考图6,图6为本申请的知识库的结构示意图,本申请通过对业务日志的自学习,构建了知识库,该知识库是一个基于链路与KV信息的树形结构的存储库,其中,链路是由关键字组成的业务逻辑链路,KV信息中的K值为哈希值,V信息为异常信息。在知识库中,树形结构中各个节点,形成的是异常关键字的整个链路关系,可以明确记录异常过程;树形最底层节点,用于存储KV信息,K表示根据链路关键字生成的hash值,用以快速查询节点,而V表示异常信息(因为原始异常信息较大,系统会将关键信息提取后形成一条记录,然后存储),用以存储异常信息或者解析异常信息(解析后可做统计,或者推送)。其中,V信息中存储有具体的异常关键信息,可以理解为是一个List,得到V信息后,可以存储异常信息,获取List里面的信息,解析异常数,然后推送异常信息。
在本实施例中,参考图6,提取的关键字对应上图的各个节点,关键字K1->关键字K11->关键信息KV11的链路表示日志解析出的关键链路,解析的KV信息存储在各个叶子节点中。
KV信息的结构:KV信息是日志的自学习后生成的最终信息,所以需要满足:快速查找、关键信息完整的要求。其中K信息生成参照公式1:
KKVii=Hash(String.bind(sort(Ki,Kii),&)) 公式1)
式中,sort(Ki,Kii)表示将提取的关键字采用字母的自然顺序排序,String.bind(sort(Ki,Kii),&)表示将排序后的关键字使用“&”符号拼接后得到一个有序且固定的字符串,Hash则是将拼接后的字符串通过Hash算法得到一个固定且唯一的hash值,该hash值为是消息K值。
步骤S30,在知识库中查找与所述哈希值匹配的目标哈希值,所述知识库为基于所述关键字、所述哈希值以及所述业务的异常信息生成的存储库;
在本实施例中,在提取关键字后,会根据公式1直接计算对应的KV信息的K值,然后提取日志的关键业务信息生成KV信息的V值,并直接从知识库的KV信息中查找是否存在相同的K值,有则存储到知识库并跳过链路解析环节。由于根据hash值可以直接匹配查找知识库的KV信息,所以时间复杂度是O(1),时间效率最高。
本申请的业务处理系统采用Redis+DB存储知识库的知识内容,该知识库分为两部分,一个部分是知识库结构即以关键字为节点的树形结构,另一部分是日志记录的KV信息。为保证知识库的IO效率,系统通过Redis与知识库直接交互,其中,知识库结构只需初始化时读取一次,日志记录的KV信息是在自学习完成后存储到Redis中,系统后台有异步处理将写入的KV信息写入到DB中,DB是为了数据点持久化。如果Redis异常,系统直接与DB交互。
步骤S40,获取所述目标哈希值对应的所述业务的异常信息,根据所述异常信息输出告警信息。
当在知识库中查找到与计算得到的哈希值匹配的目标哈希值时,获取该目标哈希值对应存储的异常信息(即V信息),然后,基于该异常信息输出告警信息。一实施例中,获取异常信息对应的告警内容,以及该告警内容对应的告警级别、告警方式以及告警对象,然后,根据告警级别和告警方式向告警对象输出包括告警内容的告警信息。其中,本系统的支撑侧设有告警模块,该告警模块直接决定了告警到业务运维人员的响应时间,从而影响业务运维的效率,因此,本申请从告警级别、告警方式、告警队形等维度设计告警模块。
本系统的警告内容是根据KV信息中的V信息生成的,主要包括:警告的日志时间范围,异常数,异常详情(V信息)等。
本系统的告警级别分为:常规告警、提示告警、故障告警,是根据告警的紧急度来划分的三种不同级别,其中,不同告警级别触发方式不同:
常规告警:是定时统计异常信息时触发的告警,其发生在离线侧的业务日志的自学习阶段,自学习会在业务正常时定时读取日志并解析相关信息,然后根据自学习的结果触发常规告警。本系统常规告警配置有两个触发阈值:时间阈值与异常记录数阈值。例如时间阈值为“1h”,表示每一小时推送一次常规告警信息;异常记录数阈值为“10”,表示在累计的异常记录数超过10时,触发常规告警。其中,本申请设计常规告警的思路:在业务平台正常运行时,偶发的异常并不会影响业务,同时保证业务运维人员能关注到异常信息,所以需要推送常规告警,而阈值则是本系统控制人员成本的方式,业务运维人员可控制关注业务信息的时间与效率。
提示告警:是系统在离线侧的业务日志的自学习时,发现有异常发生频率较高,系统会主动触发提示告警。该告警是预警作用,其目的是让业务运维人员能快速响应并定位问题,防止业务异常升级。其中,本申请设计提示告警的思路:为实现快速响应,本告警会群发告知运维人员,防止部分运维人员消息的阅读不及时。
故障告警:是系统在线侧实时监控业务时,异常数超过设置的阈值,系统会主动触发故障告警。该告警需要为运维人员提供详细的异常信息帮助快速定位问题。本系统故障告警配置有两个触发阈值:日志时间窗口范围内的异常数和失败率,异常数是指异常日志的数量,失败率是指异常日志所占日志比率。其中,本申请设计故障告警的思路:在实时触发故障告警时,已达到业务异常较严重的程度,所以会将详细的异常信息精准推送至运维人员。
本系统包括以下告警方式:邮件、短信、微信消息,不同的告警方式有不同的特性:
邮件:非实时,内容详细;
短信:实时,内容简短,有丢失风险;
微信消息:实时,内容详细。
告警方式的设计是根据告警类别及告警的紧急度来关联定义的。本系统双方关联性如表1所示:
表1告警类别与告警方式关联
告警类别 | 支持的告警方式 |
常规告警 | 邮件 |
提示告警 | 短信、微信消息 |
故障告警 | 邮件、微信消息 |
本系统对告警对象的配置是根据知识库的KV信息来设计配置的。考虑到不同业务场景会有不同的异常,而针对这些异常需要区分出对应的告警对象,从而将不同的异常告警推送给对应告警对象,从而达到精准推送的目的。
系统管理员会根据知识库已有的知识,配置各个KV节点对应的告警对象,配置的规则主要有(不限于):K+V中业务信息(如关键入参)->告警对象,例如,获取KV信息中V信息的调用接口(关键字接口),获取调用接口对应的接入方,以及每个接入方对应的id(appid),其中,appid为接入方的标识信息,然后根据K值和appid确定告警对象,如K+appid->告警对象1,其中,告警对象1的信息主要包括:用户名、手机号、邮箱、微信id等信息。
本实施例通过对实际业务数据的业务含义的分析,生成具有实际业务意义的监控数据;同时,结合业务含义,做到精准推送,使业务相关人员能快速响应,缩短运维时间;再者,根据知识库设计精准告警推送的设计,可以根据知识库的内容配置告警的推送类型、推送信息、推送对象等,不仅能精准推送消息,同时可以实时查询异常的详情,达到快速响应与定位、解决问题的目的,从而提高了业务监控的有效性。
进一步地,参考图3,提出本申请业务处理方法第二实施例。
所述方法还包括:
步骤S50,判断所述知识库是否存储有所述哈希值;
步骤S60,在所述知识库存储有所述哈希值时,将所述异常信息存储至所述知识库;
步骤S70,在所述知识库未存储有所述哈希值时,根据所述关键字创建业务链路得到目标业务链路;
步骤S80,将所述哈希值和所述异常信息存储至所述目标业务链路。
需要说明的是,业务日志的自学习是通过不断地学习日志信息,提取系统关注的重要信息,最后构建知识库的过程。其总体大致分为:日志读取、提取关键字、链路解析、抽取KV信息、写入知识库。因为是对业务日志的学习解析,不同平台的业务层日志会存在差异,所以需要在系统的自学习初期对基础知识预置与中期的知识库校正,本系统在不断学习后,最终生成信息全面的知识库。
参考图7,图7为本申请业务日志的自学习流程示意图,在图中7,基础知识预置与人工校验:不同的平台打印业务层日志时有其特异性,例如,平台throw的业务异常类型、代码级别的路径等。对这些具体差异性的关键信息,本系统将其称为基础知识,而预置基础知识是有必要的:一是本系统根据这些知识能更准确且快速完成自学习;二是能提升本系统的扩展性与可移植性。人工校验是指对知识库的校验,避免自学习时出现的误差,系统保留知识库准确性的人工兜底处理入口。
读取日志:在自学习模块中,读取日志是非实时的,会根据本系统设置的初始时间窗口读取该范围内的业务日志,例如,本系统设置初始时间窗口为10分钟,即从10分钟前到当前时间的时间范围窗口。
提取关键字:关键字包括业务级关键字和系统级关键字。业务级关键字主要是系统初期预置的基础知识及在自学习中不断丰富的关键字,而系统级关键字是指业务平台运行时出的系统级异常,它是与具体平台业务无关或者弱关联的,例如,业务经常发生的“NPE”、“Timeout”等。
抽取KV信息:提取关键字后,会根据关键字生成K值,V信息则是根据日志的异常信息抽取关键信息,如:时间、接口地址、异常信息、关键入参等。
链路解析:链路解析是一个根据日志的语义环境将关键字串联得到有意义的业务逻辑链路的过程,解析得到的链路也是知识库结构的根节点到具体KV信息叶子节点的完整链路过程。
写入知识库:知识库是一个基于链路与KV信息的树形结构的存储库,根据抽取的KV信息,判断K信息是否已经存在。如果存在,则直接将KV信息写入到知识库中;如果不存在,创建链路,并将KV信息写入到新链路的叶子节点中。
本实施例提出了基于日志的学习并构建知识库的方法,该方法是一种自适应的迭代优化数据解析方法,可以根据不同的业务日志自选择解析方法,并生成特定的KV异常信息,存储到自定义的知识库中,以使根据KV信息可以在知识库中快速查找异常信息,从而缩短了异常信息的查找时间,提高业务监控的有效性。
进一步地,参考图4,提出本申请业务处理方法第三实施例。
所述业务处理方法还包括:
步骤S90,获取所述业务的对外接口的默认失败率,以及所述对外接口对应的接入方的初始可接受失败率和可接受失败率;
步骤S100,在所述可接受失败率大于等于所述默认失败率时,将所述业务转换为在线处理模式;
步骤S110,在所述可接受失败率小于等于所述初始可接受失败率时,将所述业务转换为离线自学习模式。
需要说明的是,离线侧业务日志的自学习是系统根据初始参数设置定时读取业务日志,并将学习结果记录到知识库的过程。在自学习的过程中,由于每个系统都会有偶发的异常,因此,对日常日志设有一定的可接受性,不需要针对所有的异常实时查看并解决,如此,可以降低运维人员成本。其中,初始参数配置,例如:本系统设置初始离线时间窗口为10分钟(即初始每10分钟读取一次日志,日志范围为上10分钟内的记录),初始在线时间窗口为1分钟(即初始每1分钟统计一次异常失败信息),默认离线时间窗口内最低切换算法记录数50条(即参与切换算法计算的最低记录数),默认接口失败率为5%(即接口默认的最大失败率)。本实施例涉及默认接口失败率、初始可接收失败率、失败率以及可接受失败率,其中:
默认接口失败率(即接口的默认失败率):是指系统设定的接口的默认可接受的失败率。例如:1%,表示该接口系统可以接受在100请求中,有1条请求失败。
初始可接收失败率:是指接口的某个接入方具体的可接收失败率,是根据多个接入方的请求tps(性能要求)综合计算得到的,例如,接口的默认接口失败率为1%,有3个接入方接入,每个接入方的性能要求相同,那么某个接入方的初始可接收失败率为33%*1%=0.33%。
失败率:是指第i次调整时间窗口和失败率的时,计算得到的失败率。
可接受失败率:是指第i次读取日志计算失败率时,将第i-1次的失败率结果作为第i次的可接受失败率。
参考图8,图8为本申请动态切换算法的流程示意图。
1、计算初始可接受失败率:初始可接受失败率是切换算法的关键参照指标之一,也是算法的入口。当某接口的接入方业务失败率大于初始可接受失败率时,则会进入“观察阶段”,不断调整并计算后续失败率,直至转为在线侧实时监控或退回至正常自学习阶段。
业务平台有对外接口A,接口性能指标是ta;接口的默认失败率为fpa;接口接入方:AC1…ACi…ACn,分别有性能指标为:tac1...taci...tacn。某接入方的初始可接受失败率为:
2、离线切换至在线的过程解析
假设接口A性能指标是500tps;接口的默认失败率为5%;接口接入方3方:AC1、AC2、AC3,分别有性能指标为:200tps、150tps、150tps,其中AC1的初始可接受失败率根据公式2计算可得为1.25%。
2.1、第1次读取日志:
读取离线时间窗口(默认离线时间窗口10分钟)内的日志记录,自学习并记录到知识库,统计失败率。以接入方AC1为例,如果失败率>1.25%,则调整可接受失败率为:当次可接受失败率*2;调整时间窗口为:当次离线时间窗口/2;调整最低切换算法记录数/2。其中,失败率的计算方式为:
式中,countaci表示接入方ACi的请求数,org_count表示默认离线时间窗口内最低切换算法记录数。其中,对最低记录数进行比较是为了防止请求量太低而导致计算的失败率没有实际意义,例如,某个时间段有5笔请求,其中失败1笔,失败率为20%,但这种基数小的失败率计算从业务上来看意义不大,因此,无需浪费运维成本去实时监控具体异常。
2.2、第i次读取日志:
读取时间窗口(i-1)内的日志记录,自学习并记录到知识库,统计失败率。以接入方AC1为例,如果失败率>可接受失败率(i-1),则调整可接受失败率为:可接受失败率(i-1)*2;调整时间窗口为:时间窗口(i-1)/2:调整最低切换算法记录数:最低切换算法记录数(i-1)/2。此时系统会将异常信息推送给业务运维人员,告警级别为“提示告警”。其中,失败率的计算方式为:
式中,A为条件1,B为条件2,其中,条件1为:
conntaci>acpt-connt(i-1)and fpaci>acpt-fpaci(i-1);
条件2为:
conntaci≤acpt-connt(i-1)or fpaci≤acpt_fpaci(i-1);
式中,acpt_count(i-1)表示第i-1次的读取日志并计算调整后的最低切换算法记录数;acpt_fpaci(i-1)表示第i-1次的可接受失败率。公式4中,对某个接入方的允许最大可接受失败率为对应接口的默认接口失败率。
2.3、离线侧自学习转换至在线侧实时业务监控
当第i次的可接受失败率大于等于接口的默认接口失败率时,会转换成实时监控的在线处理模式,此时会实时将具体异常信息精准推送给对应运维人员,此时的告警级别为最高级别的“故障告警”,直至运维人员解决异常。
3、在线切换至离线的过程解析
在线侧实时监控的模式下,会不断解析并计算失败率,并根据失败率来进行后续的调整。需要说明的是,在线侧实时监控是直接监控业务平台,而不是读取解析日志。
3.1、第1次统计失败率
统计在线时间窗口(默认在线时间窗口1分钟)内的记录,统计失败率。以接入方AC1为例,如果失败率<5%,则调整可接受失败率为:接口默认失败率/2;调整时间窗口为:当次在线时间窗口*2:调整最低切换算法记录数为:最低切换算法记录数(i)/2。其中最低切换算法记录数(i)为最后一次离线侧自学习时的调整后的最低切换算法记录数,系统记录为:last_off_count。
式中,A为条件1,B为条件2,其中,条件1为:
conntaci>acpt_connt(i-1)and fpaci>acpt_fpaci(i-1);
条件2为:
conntaci≤acpt_connt(i-1)or fpaci≤acpt-fpaci(i-1);
式中,fpaci表示ACi的当次失败率。
3.2、第i次统计失败率
统计在线时间窗口(i-1)内的记录,统计失败率。以接入方AC1为例,如果失败率<可接受失败率(i-1),则调整可接受失败率为:可接受失败率(i-1)/2;调整时间窗口为:时间窗口(i-1)*2:调整最低切换算法记录数为:最低切换算法记录数(i-1)/2。
式中,A为条件1,B为条件2,其中,条件1为:
conntaci>acpt-connt(i-1)and fpaci<acpt-fpaci(i-1);
条件2为:
conntaci≤acpt-connt(i-1)or fpaci≥acpt-fpaci(i-1);
式中,org_fpaci为ACi的初始可接受失败率。
3.3、在线侧实时业务监控转换至离线侧自学习
当第i次的可接受失败率小于等于ACi的初始可接受失败率时,会转换成离线侧自学习模式,此时不再向运维人员推送异常信息。
离线侧与在线侧的动态切换是一个互逆的过程,系统也会根据切换流程的状态,选择推送不同级别的告警信息,给运维人员更明显的提示。
本实施例提出的离线侧学习与在线侧实时监控业务数据的动态切换算法,该算法是根据业务接口性能、上下游接口性能要求等多维度动态调整各项指标阈值,并参照阈值来决定离线侧与在线侧之间的动态切换。同时,该算法可以对监控告警级别自动调整,对业务运维人员的告警方式与告警内容也响应调整,从而提升运维效率。
此外,本申请还提供一种业务处理装置,所述装置包括存储器、处理器及存储在存储器上并在所述处理器上运行业务处理程序,所述装置获取业务的日志信息,根据日志信息提取业务对应的关键字;对关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取拼接字段的哈希值;在知识库中查找与哈希值匹配的目标哈希值,知识库为基于关键字、哈希值以及业务的异常信息生成的存储库;获取目标哈希值对应的业务的异常信息,根据异常信息输出告警信息。本申请通过在知识库中查找与哈希值匹配的目标哈希值,并获取该目标哈希值对应的异常信息,然后基于该异常信息输出告警信息,如此,提高了业务监控的有效性。
进一步地,参考图9,图9为本申请业务处理装置的模块示意图,所述业务处理装置100包括获取模块10、处理模块20、查找模块30和输出模块40,其中:
所述获取模块10,用于获取业务的日志信息,根据所述日志信息提取所述业务对应的关键字;
所述处理模块20,用于对所述关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取所述拼接字段的哈希值;
所述查找模块30,用于在知识库中查找与所述哈希值匹配的目标哈希值,所述知识库为基于所述关键字、所述哈希值以及所述业务的异常信息生成的存储库;
所述输出模块40,用于获取所述目标哈希值对应的所述业务的异常信息,根据所述异常信息输出告警信息。
进一步地,所述输出模块40包括获取单元和输出单元;
所述获取单元,用于获取所述异常信息对应的告警内容;
所述获取单元,还用于获取所述告警内容对应的告警级别、告警方式以及告警对象;
所述输出单元,用于根据所述告警级别和所述告警方式向所述告警对象输出包括所述告警内容的告警信息。
进一步地,所述获取单元包括获取子单元和设置子单元;
所述获取子单元,用于获取所述异常信息对应的告警情况;
所述设置子单元,用于在所述告警情况为在统计异常信息时触发的告警,将所述告警级别设为常规告警;
所述设置子单元,还用于在所述告警情况为业务异常发生频率大于或等于第一预设值时,将所述告警级别设为提示告警;
所述设置子单元,还用于在所述告警情况为业务异常数量大于或等于第二预设值时,将所述告警级别设为故障告警。
进一步地,所述获取单元还包括确定子单元;
所述获取子单元,还用于获取所述异常信息对应的调用接口;
所述获取子单元,好用于获取每个所述调用接口对应的接入方以及所述接入方的标识信息;
所述确定子单元,用于根据所述哈希值和所述标识信息确定所述告警对象。
进一步地,所述业务处理装置100还包括判断模块、存储模块和创建模块;
所述判断模块,用于判断所述知识库是否存储有所述哈希值;
所述存储模块,用于在所述知识库存储有所述哈希值时,将所述异常信息存储至所述知识库;
所述创建模块,用于在所述知识库未存储有所述哈希值时,根据所述关键字创建业务链路得到目标业务链路;
所述存储模块,还用于将所述哈希值和所述异常信息存储至所述目标业务链路。
进一步地,所述业务处理装置100还包括转换模块;
所述获取模块,还用于获取所述业务的对外接口的默认失败率,以及所述对外接口对应的接入方的初始可接受失败率和可接受失败率;
所述转换模块,用于在所述可接受失败率大于等于所述默认失败率时,将所述业务转换为在线处理模式;
所述转换模块,还用于在所述可接受失败率小于等于所述初始可接受失败率时,将所述业务转换为离线自学习模式。
进一步地,所述获取模块,还用于获取所述对外接口的第一性能指标值;
所述获取模块,还用于获取各个所述接入方的第二性能指标值,并获取各个所述第二性能指标值的和值;
所述获取模块,还用于获取所述和值与所述第一性能指标值的商值;
所述获取模块,还用于获取所述商值与所述对外接口的默认失败率的乘积,将所述乘积作为所述初始可接受失败率。
上述的业务处理装置各个模块功能的实现与上述方法实施例中的过程相似,在此不再一一赘述。
此外,本申请还提供一种计算机可读存储介质,该计算机可读存储介质上存储有业务处理方法程序,业务处理方法程序被处理器执行时实现如上业务处理方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,电视,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种业务处理方法,其特征在于,所述方法包括:
获取业务的日志信息,根据所述日志信息提取所述业务对应的关键字;
对所述关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取所述拼接字段的哈希值;
在知识库中查找与所述哈希值匹配的目标哈希值,所述知识库为基于所述关键字、所述哈希值以及所述业务的异常信息生成的存储库;
获取所述目标哈希值对应的所述业务的异常信息,根据所述异常信息输出告警信息。
2.如权利要求1所述的业务处理方法,其特征在于,所述根据所述异常信息输出告警信息的步骤包括:
获取所述异常信息对应的告警内容;
获取所述告警内容对应的告警级别、告警方式以及告警对象;
根据所述告警级别和所述告警方式向所述告警对象输出包括所述告警内容的告警信息。
3.如权利要求2所述的业务处理方法,其特征在于,所述获取所述告警内容对应的告警级别、告警方式以及告警对象的步骤之前,包括:
获取所述异常信息对应的告警情况;
在所述告警情况为在统计异常信息时触发的告警,将所述告警级别设为常规告警;
在所述告警情况为业务异常发生频率大于或等于第一预设值时,将所述告警级别设为提示告警;
在所述告警情况为业务异常数量大于或等于第二预设值时,将所述告警级别设为故障告警。
4.如权利要求2所述的业务处理方法,其特征在于,所述获取所述异常信息对应的告警级别、告警方式以及告警对象的步骤之前,包括:
获取所述异常信息对应的调用接口;
获取每个所述调用接口对应的接入方以及所述接入方的标识信息;
根据所述哈希值和所述标识信息确定所述告警对象。
5.如权利要求1所述的业务处理方法,其特征在于,所述方法还包括:
判断所述知识库是否存储有所述哈希值;
在所述知识库存储有所述哈希值时,将所述异常信息存储至所述知识库;
在所述知识库未存储有所述哈希值时,根据所述关键字创建业务链路得到目标业务链路;
将所述哈希值和所述异常信息存储至所述目标业务链路。
6.如权利要求1所述的业务处理方法,其特征在于,所述方法还包括:
获取所述业务的对外接口的默认失败率,以及所述对外接口对应的接入方的初始可接受失败率和可接受失败率;
在所述可接受失败率大于等于所述默认失败率时,将所述业务转换为在线处理模式;
在所述可接受失败率小于等于所述初始可接受失败率时,将所述业务转换为离线自学习模式。
7.如权利要求6所述的业务处理方法,其特征在于,所述方法还包括:
获取所述对外接口的第一性能指标值;
获取各个所述接入方的第二性能指标值,并获取各个所述第二性能指标值的和值;
获取所述和值与所述第一性能指标值的商值;
获取所述商值与所述对外接口的默认失败率的乘积,将所述乘积作为所述初始可接受失败率。
8.一种业务处理装置,其特征在于,所述业务处理装置包括获取模块、处理模块、查找模块和输出模块,其中:
所述获取模块,用于获取业务的日志信息,根据所述日志信息提取所述业务对应的关键字;
所述处理模块,用于对所述关键字进行排序,将排序后的关键字进行拼接得到拼接字段,并获取所述拼接字段的哈希值;
所述查找模块,用于在知识库中查找与所述哈希值匹配的目标哈希值,所述知识库为基于所述关键字、所述哈希值以及所述业务的异常信息生成的存储库;
所述输出模块,用于获取所述目标哈希值对应的所述业务的异常信息,根据所述异常信息输出告警信息。
9.一种业务处理装置,其特征在于,所述装置包括存储器、处理器及存储在存储器上并在所述处理器上运行业务处理程序,所述处理器执行所述业务处理程序时实现如权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有业务处理程序,所述业务处理程序被处理器执行时实现如权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111174289.5A CN114020585A (zh) | 2021-10-08 | 2021-10-08 | 业务处理方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111174289.5A CN114020585A (zh) | 2021-10-08 | 2021-10-08 | 业务处理方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020585A true CN114020585A (zh) | 2022-02-08 |
Family
ID=80055652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111174289.5A Pending CN114020585A (zh) | 2021-10-08 | 2021-10-08 | 业务处理方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020585A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150252A (zh) * | 2022-06-20 | 2022-10-04 | 浪潮思科网络科技有限公司 | 一种网络故障检测方法、系统及设备 |
-
2021
- 2021-10-08 CN CN202111174289.5A patent/CN114020585A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150252A (zh) * | 2022-06-20 | 2022-10-04 | 浪潮思科网络科技有限公司 | 一种网络故障检测方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11750439B2 (en) | Method and device for determining root cause of fault, server and computer-readable medium | |
US7408441B2 (en) | System and method for analyzing user-generated event information and message information from network devices | |
CN111325463A (zh) | 数据质量检测方法、装置、设备及计算机可读存储介质 | |
CN110263009B (zh) | 日志分类规则的生成方法、装置、设备及可读存储介质 | |
CN111324689A (zh) | 问答系统的索引更新方法、装置、设备及存储介质 | |
CN110222513B (zh) | 一种线上活动的异常监测方法、装置及存储介质 | |
CN110209518A (zh) | 一种多数据源日志数据集中收集存储方法及装置 | |
AU2019275633A1 (en) | System and method of automated fault correction in a network environment | |
US11762879B2 (en) | Information traceability method and system based on blockchain | |
CN110933115A (zh) | 基于动态session的分析对象行为异常检测方法及装置 | |
CN115333966B (zh) | 一种基于拓扑的Nginx日志分析方法、系统及设备 | |
CN111858274B (zh) | 一种大数据评分系统稳定性监控方法 | |
CN112182025A (zh) | 日志分析方法、装置、设备与计算机可读存储介质 | |
CN114020585A (zh) | 业务处理方法、装置和计算机可读存储介质 | |
US20130198147A1 (en) | Detecting statistical variation from unclassified process log | |
CN112559023A (zh) | 一种变更风险的预测方法、装置、设备及可读存储介质 | |
CN112039907A (zh) | 一种基于物联网终端评测平台的自动测试方法及系统 | |
CN115982646A (zh) | 一种基于云平台的多源测试数据的管理方法及系统 | |
US8090750B2 (en) | Prompting of an end user with commands | |
CN115544235A (zh) | 一种基于文本解析的电网规划智能问答系统 | |
CN112346938B (zh) | 操作审计方法、装置及服务器和计算机可读存储介质 | |
CN114157553A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN113347045A (zh) | 一种告警消息处理方法及装置 | |
CN111324579A (zh) | Erp文件的查询方法、系统、终端和存储介质 | |
CN114666145B (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 |