掌桥专利:专业的专利平台
掌桥专利
首页

业务监控方法、装置、设备、存储介质和计算机程序产品

文献发布时间:2023-06-19 11:29:13


业务监控方法、装置、设备、存储介质和计算机程序产品

技术领域

本公开涉及计算机技术领域,尤其涉及监控技术领域,特别涉及一种业务监控方法、装置、设备、存储介质和计算机程序产品。

背景技术

监控是业务产品用于发现问题,排查问题的关键因素。由于监控的最终目标是为了保证业务的正常运行,因此,最核心的监控类型是业务相关的监控。

随着产品不但迭代更新,各产品监控繁多,监控点零散,这就导致监控者在排查过程中思路混乱,无从下手。因此,在监控过程中,需要快速发现和处理业务运行过程中的异常情况。

发明内容

本公开提供了一种业务监控方法、装置、设备、存储介质和计算机程序产品。

根据本公开的第一方面,提供了一种业务监控方法,包括:根据获取的业务应用的监控异常信息,得到业务应用的异常监控特征;基于预先从业务应用的程序源码中提取的预设监控函数的监控特征与预设监控函数的函数调用关系信息,生成与异常监控特征对应的源码信息;根据与异常监控特征对应的源码信息进行监控异常处理。

根据本公开的第二方面,提供了一种业务监控装置,包括:特征确定模块,用于根据获取的业务应用的监控异常信息,得到业务应用的异常监控特征;源码定位模块,用于基于预先从业务应用的程序源码中提取的预设监控函数的监控特征与预设监控函数的函数调用关系信息,生成与异常监控特征对应的源码信息;异常处理模块,用于根据与异常监控特征对应的源码信息进行监控异常处理。

根据本公开的第三方面,提供了一种电子设备,其包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述任意一种业务监控方法。

根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行XXX方法中任一项的业务监控方法。

根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述业务监控方法中任一项的方法。

根据本公开的技术可以快速发现和处理业务运行过程中的异常情况。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开实施例的场景示意图;

图2是根据本公开实施例的业务监控方法的流程示意图;

图3是根据本公开实施例的提取的监控特征具体字段示意图;

图4是根据本公开实施例的数据合并得到监控特征与监控函数的函数信息之间的数据关系示意图;

图5为本公开实施例的业务监控系统的架构示意图;

图6是根据本公开实施例的业务监控装置的结构示意图;

图7是用来实现本公开实施例的方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。

本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。

图1是本公开实施例的场景示意图。在图1中所示的场景中,包括:用户设备11、业务应用12和电子设备13。

在图1中,用户设备11可以用于运行业务应用12。

其中,用户设备11可以包括但不限于:个人电脑、智能手机、平板电脑、个人数字助理、服务器等。

业务应用12可以包括业务产品的相关应用(Application,APP)。

在一些实施例中,业务应用12可以用于通过一个或多个业务阶段和每个业务阶段中的一个或多个细分策略实现指定的业务功能。其中,每个业务阶段中的细分策略,可以用于指示该业务阶段中的一个执行方案或处理方案。

电子设备13可以用于对业务应用12进行监控,并执行本公开实施例的业务监控方法。

应该理解,图1中的设备的数目仅仅是示意性的。根据实际应用需要,可以进行灵活调整。例如,电子设备13可以是由一台服务设备构成,也可以是多台服务设备构成的服务器集群。具体可以根据需求灵活配置,此方面内容不做限制。

在一些场景中,业务应用的监控系统可以包括如下类型:黑盒监控、白盒监控和人工监控。

其中,黑盒监控例如可以包括:外部端口探测、超文本传输协议(HypertextTransport Protocol,HTTP)探测、端到端功能监控等。但是,黑盒监控通常无法反应系统内部的问题。

白盒监控例如可以包括:在业务应用运行过程中,针对CPU、内存、磁盘、端口、进程等进行的基础监控,还可以包括基于日志、表述性状态传递(Representational StateTransfer,REST)、埋点等很多业务相关监控。但是,白盒监控通过会涉及多种基础监控和很多业务相关监控,花费时间较多,监控流程较为复杂。

人工监控例如可以包括:人工梳理/运维监控点、人工配置监控指标、人工配置报警策略、半自动的人工排查机制。然而,人工方式容易导致监控指标运维代价大,可传承性差;基础监控能力缺失,且不能及时感知业务模块和监控指标之间的关系。

在实际应用场景中,监控作为线上问题发现、排查定位的重要手段,目前各公司和厂家都有自己独有的监控系统,但是监控多种多样,一旦出现监控异常,例如线上收入减少问题,排查定位往往要从业务层面出发,如果监控和业务无法关联对排查定位带来一定的困难。

图2为本公开实施例的业务监控方法的流程示意图。

第一方面,参照图1,本公开实施例提供一种业务监控方法,该方法可以包括如下步骤。

S210,根据获取的业务应用的监控异常信息,得到业务应用的异常监控特征。

S220,基于预先从业务应用的程序源码中提取的预设监控函数的监控特征与预设监控函数的函数调用关系信息,生成与异常监控特征对应的源码信息。

S230,根据与异常监控特征对应的源码信息进行监控异常处理。

根据本公开实施例的业务监控方法,可以从程序源码中提取出监控特征与监控函数及函数调用关系,从而将业务应用的监控特征和业务应用的源码进行关联,得到业务应用的异常监控特征对应的源码信息,从而对异常监控特征对应的源码信息进行监控异常处理。在该业务监控方法中,可以将监控特征和业务应用的源码进行整合和关联,根据异常监控特征快速定位源码,从而可以更快地定位问题和进行异常监控处理,达到提升问题排查效率和快速止损的效果。

在一些实施例中,该业务监控方法还可以包括如下步骤。

S11,对业务应用的程序源码进行源码特征分析,得到程序源码中的预设监控函数的监控特征。

S12,生成程序源码的函数调用关系信息。

S13,合并所述预设监控函数的监控特征和所述函数调用关系信息,得到每个所述预设监控函数的监控特征与每个所述预设监控函数的函数调用关系信息的关联关系。

在该实施例中,可以基于源码分析,从业务应用的程序源码中提取预设监控函数的监控特征,并生成程序源码的函数调用关系信息,从而将监控特征和函数代码、函数调用关系关联起来,以用于后续针对业务应用的监控异常信息,确定异常应用的异常监控特征后,根据预设监控函数的监控特征与预设监控函数的函数调用关系信息,快速定位到异常监控特征对应的源码信息。

在步骤S11,业务应用的监控异常信息,可以用于表征业务应用运行过程中的异常报警信息和异常运行信息等。示例性地,该监控异常信息例如可以包括业务应用的广告收入降低,引发的收入告警。

在步骤S12,预设监控函数的监控特征包括:监控类型、监控函数的唯一标识以及监控函数中的监控字段信息;并且其中,监控函数的唯一标识是根据监控函数的命名空间、类名和函数名称进行拼接得到的标识信息;每个监控函数中的监控字段信息,例如包括如下信息项中的至少一项:监控标识、监控名称、监控项、业务阶段、业务阶段中的细分策略、策略配置信息和细分策略中的监控指标,监控标识用于标识业务阶段中的细分策略。

其中,监控标识(identity,id)可以用于唯一标识一个业务阶段中的细分策略;并且,一个监控名称可以对应多个监控项,每个监控项可以是一个具体的采集点,监控指标例如可以是通过监控项计算得到的指标信息。作为示例,每个进程的内存使用量是一个监控项,则内存使用率为一个监控指标。

业务阶段,可以用于标识业务应用的程序运行过程中的不同阶段,例如:数据准备阶段、广告队列选择阶段、计费阶段、广告打包阶段等不同阶段。

策略配置信息,可以用于标识对细分策略的配置,例如策略开关,策略开关可以理解为是业务应用运行过程中的一个配置,不同状态代表某个业务阶段中的细分策略是否允许运行;即每个策略开关可以控制一个策略函数(细分策略对应的函数)。

在该实施例中,从监控类型、监控函数、监控函数中的监控字段等不同维度,对监控函数内的监控特征进行规则提取,并可以根据提取的监控特征对该函数进行标记,实现监控特征与监控函数代码的关联。

为了便于理解,下面通过图3,描述本公开实施例中从业务应用的源码信息中提取的监控函数的监控特征。图3示出本公开实施例中提取的监控特征的具体字段示意图。如图3所示,在本公开实施例中,可以通过源码分析对监控特征进行规则性抽取,即源码分析的规则字段例如可以包括:监控类型、每个监控类型中的监控函数和每个监控函数中的监控字段。

在图3中,监控类型可以按照不同的数据采集方式进行划分。例如,监控类型可以包括:基于新鹰眼监控系统的监控类型和基于通用业务(universal business,ub)系统的监控类型。

其中,新鹰眼监控系统是可以实现海量级分布式实时监控的系统,并可以提供大规模分布式调用链数据的采集和处理;通用业务系统例如可以基于预设的同一业务流程进行数据采集和处理。

图3示例性地示出了不同的监控类型中,每个监控函数中的监控字段例如可以包括业务阶段、监控指标和其他监控字段信息。

作为示例,在监控类型为基于新鹰眼监控系统的监控类型时,监控函数例如可以是删除广告的基础函数remove_ad,在该监控函数的函数代码中,可以采集监控特征字段:广告监控标识,用于标识对业务应用中的删除广告的策略进行的监控;监控函数例如还可以是删除样式的基础函数例如delete_nst_by_mt,在该监控函数的函数代码中,可以采集监控特征字段:样式监控id,用于标识对业务应用中的样式更新策略进行的监控。

应理解,图3中的源码分析的规则字段仅仅是示意性的。根据实际应用需要,可以进行灵活设置。例如,监控类型中还可以包括根据数据采集方式进行划分得到的类型;除监控类型外,还可以包括其他需要字段。具体可以根据需求灵活配置,此方面内容不做限制。

在上述步骤S12,可以通过预设的程序生成工具生成函数调用关系。

作为示例,可以通过程序生成器doxygen生成业务应用的源码信息中的函数调用关系。Doxygen是开源跨平台的程序文件产生工具,可以从一套归档源文件开始,生成超文本标记语言(Hypertext Markup Language,HTML)格式的在线类浏览器,或离线的排版系统(LATEX)、标准文件格式(RTF)参考手册,支持多种语言例如完全支持面向过程的计算机程序设计语言C语言、面向对象的计算机程序设计语言C++语言和Java语言、扩充C的面向对象的计算机程序设计语言Objective-C语言和交互式数据语言(Interactive DataLanguage,IDL)。

作为示例,也可以通过javadoc工具,采用javadoc技术生成业务应用的源码信息中的函数调用关系。Javadoc可以从业务应用的源代码中抽取类、方法、成员等注释,从而形成一个和源代码配套的帮助文档。在编写程序是以一套特定的标签作为注释,在程序编写完成后,即可通过javadoc工具生成程序的开发文档,得到源码信息中的函数调用关系。

在该实施例中,在业务应用的源码信息中,通过程序生成工具可以方便的生成某个函数对应的父函数和子函数等一系列上下文信息,从而得到程序源码的函数调用关系信息。

示例性地,该函数调用关系信息可以表示为不同数据类型的数据结构,例如可以表示为函数调用关系信息树或函数调用关系信息表。

在上述步骤S13,从业务应用的程序源码中提取的监控函数内的监控特征和监控函数的函数关系信息进行数据合并,得到每个预设监控函数的监控特征与每个预设监控函数的函数调用关系信息。

图4示出本公开实施例中的数据合并得到监控特征与监控函数的函数信息之间的数据关系示意图。在该实施例中,监控函数的函数信息可以包括:监控函数的代码信息和监控函数的函数调用关系信息。

在图4中,示例性地示出一个监控函数(function1)的属性信息和该监控函数的监控特征。在图4中,监控函数的属性信息可以包括:该监控函数的唯一标识、函数名、函数命名空间和函数名组成的标识、函数定义文件(define file)和函数实现字段field和预设的其他字段。

图4中还示出了监控函数的函数调用关系信息,即监控函数的子函数和父函数。其中,子函数可以理解为是该监控函数调用的函数,父函数可以理解为是调用该监控函数的函数。

继续参考图4,示例性地示出了监控函数内的监控特征例如监控类型、监控标识和监控项。其中,监控标识可以用于标识一个细分策略和该细分策略所属的业务阶段;监控指标可以用于指示监控的含义,例如广告数量(adv_num)、广告竞价(BID)、页面浏览次数(Page View,PV)等。

应理解,图4中示出的监控函数的属性信息和监控函数内的监控特征的数量仅仅是示意性的。根据实际应用需要,可以进行灵活设置,此方面内容不做限制。

在本公开实施例中,通过源码解析,可以从业务应用的源码信息中提取的监控函数的监控特征和监控函数的函数调用关系,并可以对提取的监控函数的监控特征和监控函数的函数调用关系进行二次解析应用,并根据二次解析应用得到的数据进行后续的监控处理,下面通过具体的实施例进行描述。

在一些实施例中,业务应用包括预设的业务阶段和每个业务阶段的细分策略,监控特征包括预设监控函数对应的业务阶段和该业务阶段中的细分策略;在该实施例中,步骤S220可以包括如下步骤。

S21,利用函数调用关系信息,按照预设监控函数对应的业务阶段,确定每个业务阶段中的细分策略的监控函数。

S22,在每个业务阶段中的细分策略的监控函数中,将与异常监控特征对应的监控函数作为指定函数,确定指定函数对应的业务阶段中的细分策略。

S23,从程序源码中获取指定函数的源码信息,作为与异常监控特征对应的源码信息,以用于对指定函数对应的业务阶段中的细分策略进行纠正处理。

在本公开实施例中,由于每个细分策略监控都隶属于业务应用过程中的不同业务阶段(简称大阶段),但是业务应用中的细分策略的监控函数数量众多,也就是说,业务应用中的针对细分策略的监控数量众多,例如可以有成百上千个,在进行问题排查的时候,如果一个细分策略隶属的业务阶段错了,则会干扰问题排查结果的准确性。

通过上述步骤S21-S23,可以利用函数调用关系信息,并按照预设监控函数对应的业务阶段,确定每个业务阶段中的细分策略的监控函数,从而可以利用函数调用关系,按照业务阶段一层层的展开监控函数,一旦调用到某个细分策略的监控函数,就知道这个细分策略的监控函数在代码中实际在哪个业务阶段,以对指定函数对应的业务阶段中的细分策略进行纠正处理,实现策略阶段纠正。

在一些实施例中,业务应用包括预设词表,所述预设词表中包括所述业务应用的业务运行数据;在预设词表中包括与预设监控函数对应的业务运行数据的情况下,该业务监控方法还可以包括如下步骤。

S24,根据预设监控函数对应的业务运行数据,确定每个业务阶段中的细分策略的监控函数对应的业务运行数据。

S25,从每个业务阶段中的细分策略的监控函数对应的业务运行数据中,获得指定函数对应的业务运行数据,以用于对指定函数对应的业务阶段中的细分策略,进行业务运行数据更新的拦截处理。

在一些实施例中,词表中包含业务应用的程序运行时需要用到的数据,简称业务运行数据,业务运行数据可以是搜索词,也可能是广告文案、客户id等客户数据,只要是程序运行使用到的数据都可以包含在词表数据中。

通过步骤S24-S25,若预设词表中包括与预设监控函数对应的业务运行数据,即某个监控函数中包括函数调用数据的情况下,可以确定每个业务阶段中的细分策略的监控函数对应的业务运行数据,从而建立业务阶段中的细分策略的监控函数与词表中的业务运行数据的关联关系,从而实现利用函数层级关系,将该词表和业务阶段监控进行关联。函数层级关系可以用于指示业务应用的源码中按照业务阶段的执行顺序确定的不同层级的监控函数的函数代码和监控特征(即每个业务阶段中的细分策略)的关联关系,实现代码不同层级函数和阶段性监控关联。

在该实施例中,一旦词表中运行数据的更新影响业务阶段的监控,则可以通过监控异常特征对应的业务阶段中的细分策略的监控函数的函数代码,对该运行数据的更新进行拦截,实现业务阶段的监控对词表的拦截。

在一些实施例中,监控特征还包括预设监控函数的开关配置信息,开关配置信息用于指示预设监控函数对应的细分策略的开关状态。

在该实施例中,该业务监控方法还可以包括如下步骤。

S31,根据预设监控函数的开关配置信息,确定每个业务阶段中的细分策略的监控函数的开关配置信息。

S32,从每个业务阶段中的细分策略的监控函数的开关配置信息中,获得指定函数对应的开关配置信息,以用于对指定函数对应的业务阶段中的细分策略进行开关配置信息变更的拦截处理。

在本公开实施例中,指定函数对应的开关配置信息可以理解为是程序运行中的一个配置,开关配置信息的不同状态代表某个细分策略是不是允许运行,每个开关配置信息都可以控制一个策略函数(例如某个提高出价格的广告策略)的允许运行状态。

因此,若一个策略函数包含开关配置信息,且提取到该策略函数的监控特征,则可以通过策略函数,确定开关配置信息和监控特征的对应关系,如果监控出现问题,就可以定位到是哪个对应的策略出现问题,从而定位到是否开关状态引起的变化,从而对指定函数对应的业务阶段中的细分策略进行开关配置信息变更的拦截处理。

在一些实施例中,业务应用包括预设词表,所述预设词表中包括所述业务应用的业务运行数据;该业务监控方法还可以包括如下步骤。

S41,基于预设词表和预先从业务应用的程序源码中提取的预设监控函数的监控特征与预设监控函数的函数调用关系信息,生成与异常监控特征对应的业务运行数据。

S42,根据与异常监控特征对应的业务运行数据,进行监控异常处理。

通过上述步骤S41-S42,可以通过监控函数,将监控特征与业务运行数据(即词表中的函数调用数据)进行关联,从而根据异常监控特征快速定位到词表数据,实现对异常监控特征对应的词表数据的更新进行拦截处理。

在一些实施例中,步骤S41具体可以包括如下步骤。

S51,从预设词表中,获取与预设监控函数对应的业务运行数据。

S52,根据预设监控函数的监控特征和预设监控函数对应的业务运行数据,得到预设监控函数的监控特征与业务运行数据的关联关系。

S53,通过预设监控函数的监控特征与业务运行数据的关联关系,生成与异常监控特征对应的业务运行数据,以用于对异常监控特征对应的业务运行数据进行数据更新的拦截处理。

在本公开实施例中,业务应用需要根据不同的业务运行数据执行不同的逻辑。例如,某一业务阶段中的细分策略的函数是需要根据客户id查询词表,并根据在该词表中查找到的客户id删除该客户投放的广告信息。

由于该细分策略的函数在词表中存在对应的删广告的监控函数和查询的词表数据,因此可以通过细分策略的监控函数,将针对删广告行为的监控特征和词表数据建立关联,一旦这个词表数据更新异常,例如该客户id所标识的客户实际并没有投放该策略,而词表数据更新时,增加了该客户id,从而造成对应的删广告的监控指标(例如广告数量adv_num)出现异常,则可以根据监控异常信息确定异常监控特征,从而拦截该词表的更新,防止损失进一步扩大。

在一些实施例中,该业务监控方法还可以包括如下步骤。

S61,从程序源码中的监控函数中获取失效的监控指标。

S62,删除失效的监控指标。

S63,从预设的护航数据库中,删除失效的监控指标所对应的监控数据和监控异常报警数据。

护航数据库,可以理解为是用于采集存储监控数据、并用于展示监控数据和监控异常报警的数据库系统。护航数据库中,可以存储有各种监控数据、监控图表和监控报警数据。在本公开实施例中,随着程序的不断迭代,有些监控已经失效,但是还存在数据库系统中,造成空间浪费,手动清理的话,耗时耗力且不可持续。

通过上述步骤S61-S63,通过源码分析,可以识别出哪些监控在程序代码中有效,哪些监控在程序代码中已经失效,从而对护航数据库中失效监控函数对应的数据进行可持续的自动清理。

在一些实施例中,监控异常处理,是在对业务应用的程序源码进行上线发布的情况下,依次在上线发布的每个预定阶段进行的监控异常处理;其中,每个预定阶段,是由程序源码的上线机房和上线设备确定的上线阶段。

在一些实施例中,由程序源码的上线机房和上线设备确定的上线阶段,例如可以依次包括如下阶段:单机房单台设备上线阶段、单机房多台设备上线阶段、多机房单台设备上线阶段和多机房多台设备上线阶段。

在该实施例中,业务应用的上线发布为灰度发布,即上线发布过程是分不同阶段,通过不同机房中的预定数量的上线设备进行发布。通过灰度发布过程中的监控异常处理,可以实现灰度发布拦截。

作为示例,开关上线即业务阶段的细分策略的配置上线,也可以是通过灰度发布在不同阶段的上线发布过程中进行发布。

在一些实施例中,通过检测程序上线过程中的单机房多台上线阶段,是否监控数据有异常,如果有异常则进行拦截,避免问题扩大到多级房阶段,多级房阶段例如可以多机房单台设备上线阶段和多机房多台设备上线阶段。

在该实施例中,可以通过不同阶段的机房监控特性进行拦截,实现在业务应用的程序源码进行上线发布的情况下,依次在上线发布的每个预定阶段进行监控异常处理,避免问题扩大到全级房阶段,提高业务应用的程序源码上线发布过程的安全性和稳定性。

图5为本公开实施例的业务监控系统的架构示意图。如图5所示,在一些实施例中,该架构可以包括如下模块。

源码分析模块510,用于对获取的业务应用的源码信息进行源码分析。该模块可以包括:开源库分析模块511,特征规则抽取单元512和特征标记模块513。

其中,开源库分析模块511,用于生成业务源码的函数调用关系信息。

特征规则抽取单元512,用于对业务应用的程序源码进行源码特征分析,得到程序源码中的预设监控函数的监控特征。

特征标记模块513,用于通过程序源码中的预设监控函数的监控特征,对该预设监控函数进行标记。

源码分析产出模块520,用于输出函数调用关系信息和标记的预设监控函数的监控特征。

数据合并模块530,用于合并得到每个预设监控函数的监控特征与每个预设监控函数的函数调用关系信息。

合并数据二次解析模块540,用于对提取的监控函数的监控特征和监控函数的函数调用关系进行二次解析应用。

在一些实施例中,合并数据二次解析模块540例如可以对指定的监控指标进行拼接,从而实现按照业务阶段对监控指标进行划分,得到每个业务阶段的监控指标。

护航数据库管理模块550,用于从预设的护航数据库中获取监控数据和监控异常报警数据,并可以展现监控数据和监控异常报警。

解析应用模块560,例如可以包括无效指标删除单元561、缺失指标添加单元562、问题定位单元563和问题定位单元563。

无效指标删除单元561,用于删除预设监控函数中的无效监控指标,以对业务应用的源码信息进行更新。

缺失指标添加单元562,用于在预设监控函数中添加新的监控指标,以对业务应用的源码信息进行更新。

问题定位单元563,用于基于预先从业务应用的程序源码中提取的预设监控函数的监控特征与预设监控函数的函数调用关系信息,生成与异常监控特征对应的源码信息,从而根据异常监控特征定位源码,,实现对业务应用线上使用过程中出现的监控异常情况进行源码定位。

问题定位单元563,还用于基于预先从业务应用的程序源码中提取的预设监控函数的监控特征与预设监控函数的函数调用关系信息,生成与异常监控特征对应的业务运行数据,从而根据异常监控特征定位业务运行数据,实现对业务应用线上使用过程中出现的监控异常情况进行运行数据定位。

问题排查模块564,用于根据定位到的源码和/或定位到的业务运行数据进行问题排查,实现对业务应用线上使用过程中出现的监控异常情况进行问题排查。

在本公开实施例中,从业务源码出发,产出监控和业务源码的关联关系,把监控和业务源码、产品特性直接关联起来,并通过二次解析得到运行时业务数据、配置和监控的关联关系,从而通过监控异常,快速定位到对应的源码、数据和配置,大大减低排查难度;并且,还可以使用本技术产出的监控对业务数据变更进行灰度拦截,从而降低数据变更对收入带来影响面。

图6为本公开实施例的业务监控装置的结构示意图。

第二方面,参照图6,本公开实施例提供一种业务监控装置600,该装置可以包括如下模块。

特征确定模块610,用于根据获取的业务应用的监控异常信息,得到业务应用的异常监控特征;

源码定位模块620,用于基于预先从业务应用的程序源码中提取的预设监控函数的监控特征与预设监控函数的函数调用关系信息,生成与异常监控特征对应的源码信息;

异常处理模块630,用于根据与异常监控特征对应的源码信息进行监控异常处理。

在一些实施例中,业务监控装置还包括如下模块。

监控特征提取单元,用于对业务应用的程序源码进行源码特征分析,得到程序源码中的预设监控函数的监控特征;调用关系生成单元,用于生成程序源码的函数调用关系信息;数据合并单元,用于合并所述预设监控函数的监控特征和所述函数调用关系信息,得到每个所述预设监控函数的监控特征与每个所述预设监控函数的函数调用关系信息的关联关系。

在一些实施例中,监控特征包括预设监控函数对应的业务阶段和预设监控函数对应的业务阶段中的细分策略;源码定位模块620具体可以包括:函数阶段确定单元,用于利用函数调用关系信息,按照预设监控函数对应的业务阶段,确定每个业务阶段中的细分策略的监控函数;策略定位单元,用于在每个业务阶段中的细分策略的监控函数中,将与异常监控特征对应的监控函数作为指定函数,确定指定函数对应的业务阶段中的细分策略;阶段策略源码确定单元,用于从程序源码中获取指定函数的源码信息,作为与异常监控特征对应的源码信息,以用于对指定函数对应的业务阶段中的细分策略进行纠正处理。

在一些实施例中,业务应用包括预设词表,所述预设词表中包括所述业务应用的业务运行数据;在预设词表中包括与预设监控函数对应的业务运行数据的情况下,业务监控装置还包括如下模块。

数据获取模块,用于根据预设监控函数对应的业务运行数据,确定每个业务阶段中的细分策略的监控函数对应的业务运行数据;阶段数据获取模块,用于从每个业务阶段中的细分策略的监控函数对应的业务运行数据中,获得指定函数对应的业务运行数据,以用于对指定函数对应的业务阶段中的细分策略,进行业务运行数据更新的拦截处理。

在一些实施例中,监控特征还包括预设监控函数的开关配置信息,开关配置信息用于指示预设监控函数对应的细分策略的开关状态;业务监控装置还包括如下模块。

配置获取模块,用于根据预设监控函数的开关配置信息,确定每个业务阶段中的细分策略的监控函数的开关配置信息;配置定位模块,用于从每个业务阶段中的细分策略的监控函数的开关配置信息中,获得指定函数对应的开关配置信息,以用于对指定函数对应的业务阶段中的细分策略进行开关配置信息变更的拦截处理。

在一些实施例中,业务应用包括预设词表,所述预设词表中包括所述业务应用的业务运行数据;业务监控装置还包括如下模块。

业务数据定位模块,用于基于预设词表和预先从业务应用的程序源码中提取的预设监控函数的监控特征与预设监控函数的函数调用关系信息,生成与异常监控特征对应的业务运行数据;异常处理模块630还用于根据与异常监控特征对应的业务运行数据,进行监控异常处理。

在一些实施例中,业务数据定位模块,还用于从预设词表中获取与预设监控函数对应的业务运行数据;根据预设监控函数的监控特征和预设监控函数对应的业务运行数据,得到预设监控函数的监控特征与业务运行数据的关联关系;通过预设监控函数的监控特征与业务运行数据的关联关系,生成与异常监控特征对应的业务运行数据,以用于对异常监控特征对应的业务运行数据进行数据更新的拦截处理。在一些实施例中,业务监控系统还包括:失效指标获取模块,用于从程序源码中的监控函数中获取失效的监控指标;失效指标删除模块,用于删除失效的监控指标;数据删除模块,用于从预设的护航数据库中,删除失效的监控指标所对应的监控数据和监控异常报警数据。

在一些实施例中,监控异常处理,是在对业务应用的程序源码进行上线发布的情况下,依次在上线发布的每个预定阶段进行的监控异常处理;其中,每个预定阶段,是由程序源码的上线机房和上线设备确定的上线阶段。

在一些实施例中,预设监控函数的监控特征包括:监控类型、监控函数的唯一标识以及监控函数中的监控字段信息;并且其中,唯一标识是根据监控函数的命名空间、类名和函数名称进行拼接得到的标识信息;监控字段信息包括如下信息项中的至少一项:监控标识、监控名称、监控项、业务阶段、业务阶段中的细分策略、策略配置信息和细分策略中的监控指标,监控标识用于标识业务阶段中的细分策略。

根据本公开实施例的业务监控装置,可以从程序源码中提取出监控特征与监控函数及函数调用关系,将业务应用的监控特征和业务应用的源码进行关联,得到业务应用的异常监控特征对应的源码信息,从而对异常监控特征对应的源码信息进行监控异常处理,实现将监控特征和业务应用的源码进行整合和关联,从而可以根据异常监控特征快速定位源码,更快地定位问题和进行异常监控处理,达到提升问题排查效率和快速止损的效果。

需要明确的是,本公开并不局限于上文实施例中所描述并在图中示出的特定配置和处理。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。

图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如业务监控方法。例如,在一些实施例中,业务监控方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM703并由计算单元701执行时,可以执行上文描述的业务监控方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行业务监控方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述业务监控方法中任一项方法。

人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、规划、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 业务监控方法、装置、设备、存储介质和计算机程序产品
  • 业务处理方法、设备、存储介质及计算机程序产品
技术分类

06120112942042