CN113157523B - 服务监控方法、装置、计算机设备及存储介质 - Google Patents

服务监控方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN113157523B
CN113157523B CN202110432281.8A CN202110432281A CN113157523B CN 113157523 B CN113157523 B CN 113157523B CN 202110432281 A CN202110432281 A CN 202110432281A CN 113157523 B CN113157523 B CN 113157523B
Authority
CN
China
Prior art keywords
service
parameter
interface
result
information
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.)
Active
Application number
CN202110432281.8A
Other languages
English (en)
Other versions
CN113157523A (zh
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.)
Pingan Payment Technology Service Co Ltd
Original Assignee
Pingan Payment Technology Service 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 Pingan Payment Technology Service Co Ltd filed Critical Pingan Payment Technology Service Co Ltd
Priority to CN202110432281.8A priority Critical patent/CN113157523B/zh
Publication of CN113157523A publication Critical patent/CN113157523A/zh
Application granted granted Critical
Publication of CN113157523B publication Critical patent/CN113157523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及云监控技术领域,揭露一种服务监控方法、装置、计算机设备及存储介质,其中方法包括通过目标监控服务的唯一标志,获取对应的预设配置信息,然后获取预设配置信息中的参数信息以及目标监控服务对应的Dubbo服务,并将参数信息转换为接口参数对象,再基于Dubbo服务,通过泛化调用方式,对接口参数对象对应接口进行接口请求,以获取接口请求对应的返回结果,再对返回结果进行解析,将得到的目标结果与预设配置信息中的预设条件进行匹配,若匹配实现则输出告警信息。本申请还涉及区块链技术,预设配置信息存储于区块链中。本申请通过动态获取服务参数和泛化调用的方式获取返回参数,有利于提高了服务监控的效率。

Description

服务监控方法、装置、计算机设备及存储介质
技术领域
本申请涉及云监控技术领域,尤其涉及一种服务监控方法、装置、计算机设备及存储介质。
背景技术
随着各个企业业务复杂度越来越高,企业的系统架构也在逐步往分布式、微服务的架构进行演进,随着服务越拆越细,一个很简单的服务都会给系统造成非常重大的影响,这些细小服务要保持高稳定性就显得越来越重要,为了能够让服务健康稳定的运行,就需要对每一个服务进行监控,而如果针对每个不同的服务都单独去写独立的代码进行服务监控既繁冗又影响业务需求的开发速度,不利于业务发展。这样,能够提供一种通用的服务稳定性监控解决方案就显得尤为重要。
目前一般的服务监控,都是针对服务的进程是否存在、服务的端口是否存在等进行监控判断,从而实现对服务进行监控。然而这种方法不能够及时准确地判断服务是否处于正常运行状态,导致对服务的监控效率较低。现亟需一种能够提高服务监控效率的方法。
发明内容
本申请实施例的目的在于提出一种服务监控方法、装置、计算机设备及存储介质,以提高服务监控效率。
为了解决上述技术问题,本申请实施例提供一种服务监控方法,包括:
通过目标监控服务的唯一标志,从数据库中获取所述目标监控服务对应的预设配置信息;
基于所述预设配置信息,获取所述预设配置信息中的参数信息以及所述目标监控服务对应的Dubbo服务,并将所述参数信息转换为接口参数对象;
基于所述Dubbo服务,通过泛化调用方式,对所述接口参数对象对应接口进行接口请求,以获取所述接口请求对应的返回结果;
对所述返回结果进行解析,得到目标结果;
通过将所述目标结果与所述预设配置信息中的预设条件进行匹配,得到匹配结果;
若所述匹配结果为所述目标结果与所述预设条件匹配失败,则输出告警信息。
为了解决上述技术问题,本申请实施例提供一种服务监控装置,包括:
预设配置信息获取模块,用于通过目标监控服务的唯一标志,从数据库中获取所述目标监控服务对应的预设配置信息;
接口参数对象转换模块,用于基于所述预设配置信息,获取所述预设配置信息中的参数信息以及所述目标监控服务对应的Dubbo服务,并将所述参数信息转换为接口参数对象;
返回结果获取模块,用于基于所述Dubbo服务,通过泛化调用方式,对所述接口参数对象对应接口进行接口请求,以获取所述接口请求对应的返回结果;
返回结果解析模块,用于对所述返回结果进行解析,得到目标结果;
匹配结果获取模块,用于通过将所述目标结果与所述预设配置信息中的预设条件进行匹配,得到匹配结果;
告警信息输出模块,用于若所述匹配结果为所述目标结果与所述预设条件匹配失败,则输出告警信息。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种计算机设备,包括,一个或多个处理器;存储器,用于存储一个或多个程序,使得一个或多个处理器实现上述任意一项所述的服务监控方法。
为解决上述技术问题,本发明采用的一个技术方案是:一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的服务监控方法。
本发明实施例提供了一种服务监控方法、装置、计算机设备及存储介质。其中,本发明实施例通过目标监控服务的唯一标志,从数据库中获取目标监控服务对应的预设配置信息;基于预设配置信息,获取预设配置信息中的参数信息以及目标监控服务对应的Dubbo服务,并将参数信息转换为接口参数对象;基于Dubbo服务,通过泛化调用方式,对接口参数对象对应接口进行接口请求,以获取接口请求对应的返回结果;对返回结果进行解析,得到目标结果;通过将目标结果与预设配置信息中的预设条件进行匹配,得到匹配结果;若匹配结果为目标结果与预设条件匹配失败,则输出告警信息。通过预设配置信息获取参数信息和Dubbo服务,实现动态获取服务对应参数,并通过泛化调用的方式,实现监控服务无需提供对应的API接口,便可对服务进行监控,并且不会影响服务的运行,有利于提高了服务监控的效率。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的服务监控方法的应用环境示意图;
图2根据本申请实施例提供的服务监控方法的一实现流程图;
图3是本申请实施例提供的服务监控方法中子流程的一实现流程图;
图4是本申请实施例提供的服务监控方法中子流程的又一实现流程图;
图5是本申请实施例提供的服务监控方法中子流程的又一实现流程图;
图6是本申请实施例提供的服务监控方法中子流程的又一实现流程图;
图7是本申请实施例提供的服务监控方法中子流程的又一实现流程图;
图8是本申请实施例提供的服务监控方法中子流程的又一实现流程图;
图9是本申请实施例提供的服务监控装置示意图;
图10是本申请实施例提供的计算机设备的示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
下面结合附图和实施方式对本发明进行详细说明。
请参阅图1,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、搜索类应用、即时通信工具等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的服务监控方法一般由服务器执行,相应地,服务监控装置一般配置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
请参阅图2,图2示出了服务监控方法的一种具体实施方式。
需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限,该方法包括如下步骤:
S1:通过目标监控服务的唯一标志,从数据库中获取目标监控服务对应的预设配置信息。
具体的,当需要对某一业务的服务进行监控时,根据该目标监控服务的唯一标志,从数据库中获取目标监控服务对应的预设配置信息。
其中,目标监控服务的唯一标志是指监控服务对应的标识,可以根据唯一标志从数据库中提取对应的预设配置信息。目标监控服务的唯一标志包括但不限于:监控的主键、监控服务的ID等等。预设配置信息是开发人员根据不同的服务对象事先设置的配置信息,并且将预设配置信息存储于数据库中,通过唯一标志,能够获取到对应的预设配置信息。
请参阅图3,图3示出了步骤S1之前的一种具体实施方式,该实施例包括:
S11:获取来自客户端的对目标监控服务的请求指令。
S12:基于请求指令,获取来自开发端对目标监控服务所配置的预设配置信息,并将预设配置信息存储于数据库中。
S13:获取预设配置信息中的预设监控频率,并根据预设监控频率对目标监控服务进行监控。
具体的,针对不同的监控服务,开发端会配置不同的预设配置信息,并将预设配置信息存储与于数据库中,便于后续提取对应的预设配置信息;并且通过设置监控频率,并根据该监控频率进行监控,也即当时间到达监控频率设置的时间时,服务器执行步骤S1至步骤S6的服务监控方法流程。
进一步的,预设监控频率通过Cron表达式进行设置。预设监控频率根据实际情况进行设定,此处步骤不做限定。在一具体实施例中,预设监控频率设置为10分钟。
其中,Cron表达式是以字符串的形式存在,其用来表达一个为计划任务;该计划任务是指在约定的时间已经计划好的工作,其约定的时间可以根据实际情况进行设定,故而设定Cron表达式不同的时间来执行监控服务,从而达到设置监控频率的目的。在Linux中,通过Cron服务器来执行Cron表达式所对应的任务。故在本申请实施例中,通过设置Cron表达式来设置监控频率。
在本实施中,通过获取来自客户端的对目标监控服务的请求指令,基于请求指令,获取来自开发端对目标监控服务所配置的预设配置信息,并将预设配置信息存储于数据库中,再获取预设配置信息中的预设监控频率,并根据预设监控频率对目标监控服务进行监控,实现事先根据不同服务配置不同预设配置信息,有利于提高服务监控效率,并且根据预设监控频率,对目标监控服务进行监控,有利于根据不同服务设置不同监控频率,提高服务监控的灵活性。
S2:基于预设配置信息,获取预设配置信息中的参数信息以及目标监控服务对应的Dubbo服务,并将参数信息转换为接口参数对象。
具体的,由于预设配置信息中包含各种类别名和参数标志,通过识别这种类别名,以获取下游接口需要查询的服务,也即对应的监控服务;通过参数标志,以获取开发端对该监控服务所配置的参数信息。并且由于参数信息为字符串的形式,为了后续能够进行接口请求,将参数信息转换为接口需要的接口参数对象。
其中,Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。其是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。在本申请实施例中,Dubbo服务是指下游系统需要进行监控服务而提供的分布式服务框架,以进行后续的接口泛化调用,从而进行接口请求。
请参阅图4,图4示出了步骤S2的一种具体实施方式,该实施例包括:
S21:采用遍历的方式,识别出预设配置信息中的参数标志和Facade类。
其中,Facades类为应用的服务容器提供了一个静态接口,也即预设配置信息中对应Dubbo服务的对应接口。Laravel(PHP Web开发框架)自带了很多Facades,可以访问绝大部分功能。通过查找预设配置信息中的Facade类,可以查找到下游系统所提交的Dubbo服务。
S22:根据参数标志获取预设配置信息中的参数信息。
S23:根据Facade类获取监控服务对应的Dubbo服务。
具体的,通过查找预设配置信息中的Facade类,通过class_name的方式去查找下游系统所提交的Dubbo服务,以获取分布式服务框架。
S24:通过预设的转换方式,将参数信息转换为接口参数对象。
其中,预设的转换方式包括但不限于:eval()函数、JSON.parse()函数以及使用第三方库等等。其中,eval()函数的参数是一个字符串,其作用是直接执行其中的JavaScript代码,实现将参数信息转换为接口参数对象。eval()函数能够解析JSON字符串,将字符串转化为接口参数对象。第三方库可以采用JQuery,其jQuery是一个快速、简洁的JavaScript框架,它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。通过jQuery能实现将参数信息转换为接口参数对象。
需要说明的是,本申请实施例对采用的预设的转换方式不做限定。在一具体实施例中,预设的转换方式是采用JSON.parse()函数的方式,将参数信息转换为接口参数对象。
本实施例中,通过采用遍历的方式,识别出预设配置信息中的参数标志和Facade类,根据参数标志获取预设配置信息中的参数信息,根据Facade类获取监控服务对应的Dubbo服务,通过预设的转换方式,将参数信息转换为接口参数对象,实现获取监控服务所需的参数,并将该参数转化为接口参数对象,便于后续与监控服务所返回的参数进行对比,有利于提高服务监控效率。
请参阅图5,图5示出了步骤S22之后的一种具体实施方式,该实施例包括:
S221:判断参数信息中是否包含时间字段信息,得到第一判断结果。
其中,时间字段信息是指参数信息中出现的时间参数,其代表着监控服务会随着时间而进行变化。
S222:若第一判断结果为参数信息中包含时间字段信息,则将时间字段信息转换为预设时间对应的时间序列。
S223:采用正则表达式的方式,将时间序列与参数信息进行匹配,得到包含时间序列的参数信息。
具体的,当参数信息含时间字段信息,则将参数信息中对应的时间字段信息设置为对应的时间序列,并通过正则匹配表达式进行匹配,以使得包含时间的参数信息都转换为具有时间序列的参数信息。
进一步的,若第一判断结果为参数信息中不包含时间字段信息,则说明该监控服务的参数信息不随时间的推移而变化,则无需对参数信息进行时间序列转换。例如,对高铁系统上订单详情查询接口进行监控服务,由于高铁的票价一般是不随着时间的变化而发生改变的,则无需对其参数信息进行转换。所以在对高铁系统上订单详情查询接口进行监控服务时,如果接口的参数信息稳定,则监控服务情况正常。
在一具体实施例中,监控场景中出现了需要根据酒店的入住日期和离店日期查询酒店的房态信息以及房价信息的功能,所以时间需要一直变化。通过将对应的时间字段转化为:format(${date}+1,'yyyy-MM-dd'),再通过正则表达式将其与参数信息进行匹配,将参数信息中的时间字段都转化为时间序列,其中${date}代表当天,后面需要加的num值代表需要推移的天数,实现了将参数信息包含时间序列,有利于实现服务监控其随着时间的动态推移。
本实施例中,通过判断参数信息中是否包含时间字段信息,得到第一判断结果,若第一判断结果为参数信息中包含时间字段信息,则将时间字段信息转换为预设时间对应的时间序列,采用正则表达式的方式,将时间序列与参数信息进行匹配,得到包含时间序列的参数信息,实现对存在时间查询累的服务进行监控,有利于提高服务监控的效率。
S3:基于Dubbo服务,通过泛化调用方式,对接口参数对象对应接口进行接口请求,以获取接口请求对应的返回结果。
具体的,本申请通过下游系统提供的Dubbo服务,通过泛化调用的方式,对目标监控服务对应的接口进行接口请求,以获取返回结果。这不需要监控服务提供对应的API接口,便可以做到任何查询请求类的服务都可以被监控,并且不会影响产线服务的运行,有利于提高了服务监控的效率。
其中,泛化接口调用方式主要用于下游系统没有提供API接口(泛化调用是指不需要依赖服务的二方包)及模型类元的情况,参数及返回值中的所有POJO均用Map表示,从而进行接口请求。比如:本申请实施例实现一个通用的服务测试框架,可通过GenericService函数调用所有服务实现。通过泛化调用的方式可以有效减少平台型产品的二方包依赖,实现系统的轻量级运行。对于服务提供方新增的接口不需要修改二方包的版本,即可调用。通过泛化调用的方式,不需要下游系统提供的有二方、三方的接口的类信息、class字节码,能够直接通过基本的类型参数表示复杂的对象,实现接口请求,获取接口请求返回值。
请参阅图6,图6示出了步骤S3的一种具体实施方式,该实施例包括:
S31:判断数据库中是否存在泛化引用类别,得到第二判断结果。
进一步的,判断数据库中是否存在泛化引用类别是通过判断GenericService函数是否引用了泛化的类别,若该GenericService函数引用为null,也即引用为空,则第二判断结果为数据库中不存在泛化引用类别。
S32:若第二判断结果为数据库中不存在泛化引用类别,则根据Dubbo服务,以获取泛化接口。
进一步的,若第二判断结果为数据库中存在泛化引用类别,则通过Dubbo服务直接引用该泛化引用类别,从而对接口参数对象对应接口进行接口请求,以获取接口请求对应的返回结果。
S33:根据泛化接口调用泛化参数,对接口参数对象对应接口进行接口请求,以获取接口请求对应的返回结果。
具体的,泛化参数包括:服务的名称、版本、分组唯一限定符、方法名称、方法泛型参数类型、传递的PojoUtils.generalize(data)序列化后的基本参数等等参数。通过泛化接口调用泛化参数,查询到具体的接口的提供者、接口的具体方法以及调用传递的参数,则可以进行正常的调用逻辑,实现接口请求。通过Dubbo服务的分布式服务框架提供的泛化接口,也即Provider接口,通过该泛化接口调用泛化参数,对接口参数对象对应接口进行接口请求,以获取所述接口请求对应的所述返回结果。
本实施例中,通过判断数据库中是否存在泛化引用类别,得到第二判断结果,若第二判断结果为数据库中不存在泛化引用类别,则根据Dubbo服务,以获取泛化接口,最后根据泛化接口调用泛化参数,对接口参数对象对应接口进行接口请求,以获取接口请求对应的返回结果,实现对监控服务对应接口进行接口请求,并获取接口请求所返回的结果,有利于将返回结果与后续的预设条件进行比较,进而有利于提高服务监控的效率。
S4:对返回结果进行解析,得到目标结果。
具体的,通过上述步骤的泛化调用后,获取到接口请求所返回的返回结果,再将该返回结果转化为JSONObject对象,采用JSONPath提取所述JSONObject对象中的字段返回信息,便于后续进行匹配,从而判断接口请求的返回接口是否与预设条件的是否匹配,进而判断目标监控服务是否异常。
请参阅图7,图7示出了步骤S4的一种具体实施方式,该实施例包括:
S41:将返回结果转化为JSONObject对象。
S42:通过JSONPath提取JSONObject对象中的字段返回信息,并将字段返回信息作为目标结果。
具体的,由于返回结果为对目标监控服务对应的接口进行接口请求后,所返回的参数,其无法与后续步骤中的预设条件直接进行匹配,需要将其进行解析转化,变成对应的字符信息。
其中,JSONPath用来提取给定的JSON文档的对应部分内容。其JSONPath有许多编程语言,如Javascript,Python和PHP,Java。该JSONPath提供的json解析非常强大,它提供了类似正则表达式的语法,可以进行本实施例中取JSONObject对象中的字段返回信息。字段返回信息是指返回结果被解析后所形成的字符形式的信息,其可以用来与后续预设条件进行匹配。
本实施例中,通过将返回结果转化为JSONObject对象,通过JSONPath提取JSONObject对象中的字段返回信息,并将字段返回信息作为目标结果,时间对返回结果进行动态解析,便于将其与预设条件进行匹配,从而提高服务监控的效率。
S5:通过将目标结果与预设配置信息中的预设条件进行匹配,得到匹配结果。
具体的,在配置预设配置信息时,开发端根据不同的服务,根据其正常工作状态所返回的参数,设定了对应的预设条件。当目标结果与预设条件不符合时,则判断其服务异常。
请参阅图8,图8示出了步骤S5的一种具体实施方式,该实施例包括:
S51:识别目标结果中对应的数据类型。
S52:若数据类型为String型或Int型,则将目标结果与预设条件中的预设值进行字符串匹配,得到匹配结果。
S53:若数据类型为List型,则将目标结果中Size值与预设条件中的预设范围值进行数值匹配,得到匹配结果。
具体的,在预设配置信息中根据目标监控服务对象设置对应的预设条件。该预设条件可以根据返回结果的数据类型进行区分,若数据类型为String型或Int型时,设定对应的成功值与之进行匹配,若是匹配,则目标监控服务无异常,反之,则目标监控服务出现异常。若数据类型为List型,则将所述目标结果中Size值与预设条件中的预设范围值,若是Size值落在预设范围值内,则目标监控服务无异常,反之,则目标监控服务出现异常,进一步的预设范围根据实际情况进行设定,此处步骤不做限定。在一具体实施例中,预设范围值为Size值大于零。
本实施例中,通过判断目标结果中对应的数据类型,根据不同数据类型与预设条件进行匹配,实现对服务进行监控,有利于提高服务监控的效率。
S6:若匹配结果为目标结果与预设条件匹配失败,则输出告警信息。
具体的,告警信息的输出方式包括但不限于:短信、邮件、短信和邮件结合等。
本实施例中,通过目标监控服务的唯一标志,从数据库中获取目标监控服务对应的预设配置信息;基于预设配置信息,获取预设配置信息中的参数信息以及目标监控服务对应的Dubbo服务,并将参数信息转换为接口参数对象;基于Dubbo服务,通过泛化调用方式,对接口参数对象对应接口进行接口请求,以获取接口请求对应的返回结果;对返回结果进行解析,得到目标结果;通过将目标结果与预设配置信息中的预设条件进行匹配,得到匹配结果;若匹配结果为目标结果与预设条件匹配失败,则输出告警信息。通过预设配置信息获取参数信息和Dubbo服务,实现动态获取服务对应参数,并通过泛化调用的方式,实现监控服务无需提供对应的API接口,便可对服务进行监控,并且不会影响服务的运行,有利于提高了服务监控的效率。
需要强调的是,为进一步保证上述预设配置信息的私密和安全性,上述预设配置信息还可以存储于一区块链的节点中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
请参考图9,作为对上述图2所示方法的实现,本申请提供了一种服务监控装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图9所示,本实施例的服务监控装置包括:项目标识获取模块71、配置文件选取模块72、目标版本分支模块73、仓库源码拉取模块74、判断结果获取模块75及构建成功项目模块76,其中:
预设配置信息获取模块71,用于通过目标监控服务的唯一标志,从数据库中获取目标监控服务对应的预设配置信息;
接口参数对象转换模块72,用于基于预设配置信息,获取预设配置信息中的参数信息以及目标监控服务对应的Dubbo服务,并将参数信息转换为接口参数对象;
返回结果获取模块73,用于基于Dubbo服务,通过泛化调用方式,对接口参数对象对应接口进行接口请求,以获取接口请求对应的返回结果;
返回结果解析模块74,用于对返回结果进行解析,得到目标结果;
匹配结果获取模块75,用于通过将目标结果与预设配置信息中的预设条件进行匹配,得到匹配结果;
告警信息输出模块76,用于若匹配结果为目标结果与预设条件匹配失败,则输出告警信息。
进一步的,在预设配置信息获取模块71之前,该服务监控装置还包括:
目标监控服务获取模块,用于获取来自客户端的对目标监控服务的请求指令;
预设配置信息存储模块,用于基于请求指令,获取来自开发端对目标监控服务所配置的预设配置信息,并将预设配置信息存储于数据库中;
预设监控频率获取模块,用于获取预设配置信息中的预设监控频率,并根据预设监控频率对目标监控服务进行监控。
进一步的,接口参数对象转换模块72包括:
标注识别单元,用于采用遍历的方式,识别出预设配置信息中的参数标志和Facade类;
参数信息获取单元,用于根据参数标志获取预设配置信息中的参数信息;
Dubbo服务确定单元,用于根据Facade类获取监控服务对应的Dubbo服务;
参数信息转换单元,用于通过预设的转换方式,将参数信息转换为接口参数对象。
进一步的,在参数信息获取单元之后,该服务监控装置还包括:
第一判断结果确定单元,用于判断参数信息中是否包含时间字段信息,得到第一判断结果;
时间字段信息转换单元,用于若第一判断结果为参数信息中包含时间字段信息,则将时间字段信息转换为预设时间对应的时间序列;
参数信息匹配单元,用于采用正则表达式的方式,将时间序列与参数信息进行匹配,得到包含时间序列的参数信息。
进一步的,返回结果获取模块73包括:
第二判断结果确定单元,用于判断数据库中是否存在泛化引用类别,得到第二判断结果;
泛化数据获取单元,用于若第二判断结果为数据库中不存在泛化引用类别,则根据Dubbo服务,以获取泛化接口;
接口请求单元,用于根据泛化接口调用泛化参数,对接口参数对象对应接口进行接口请求,以获取接口请求对应的返回结果。
进一步的,返回结果解析模块74包括:
返回结果转化单元,用于将返回结果转化为JSONObject对象;
字段返回信息提取单元,用于通过JSONPath提取JSONObject对象中的字段返回信息,并将字段返回信息作为目标结果。
进一步的,匹配结果获取模块75包括:
数据类型判断单元,用于识别目标结果中对应的数据类型;
第一匹配结果获取单元,用于若数据类型为String型或Int型,则将目标结果与预设条件中的预设值进行字符串匹配,得到匹配结果;
第二匹配结果获取单元,用于若数据类型为List型,则将目标结果中的Size值与预设条件中的预设范围值进行数值匹配,得到匹配结果。
需要强调的是,为进一步保证上述预设配置信息的私密和安全性,上述预设配置信息还可以存储于一区块链的节点中。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图10,图10为本实施例计算机设备基本结构框图。
计算机设备8包括通过系统总线相互通信连接存储器81、处理器82、网络接口83。需要指出的是,图中仅示出了具有三种组件存储器81、处理器82、网络接口83的计算机设备8,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field -Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器81至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器81可以是计算机设备8的内部存储单元,例如该计算机设备8的硬盘或内存。在另一些实施例中,存储器81也可以是计算机设备8的外部存储设备,例如该计算机设备8上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器81还可以既包括计算机设备8的内部存储单元也包括其外部存储设备。本实施例中,存储器81通常用于存储安装于计算机设备8的操作系统和各类应用软件,例如服务监控方法的程序代码等。此外,存储器81还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器82在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器82通常用于控制计算机设备8的总体操作。本实施例中,处理器82用于运行存储器81中存储的程序代码或者处理数据,例如运行上述服务监控方法的程序代码,以实现服务监控方法的各种实施例。
网络接口83可包括无线网络接口或有线网络接口,该网络接口83通常用于在计算机设备8与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序可被至少一个处理器执行,以使至少一个处理器执行如上述的一种服务监控方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (9)

1.一种服务监控方法,其特征在于,包括:
通过目标监控服务的唯一标志,从数据库中获取所述目标监控服务对应的预设配置信息;
基于所述预设配置信息,获取所述预设配置信息中的参数信息以及所述目标监控服务对应的Dubbo服务,并将所述参数信息转换为接口参数对象;
判断所述数据库中是否存在泛化引用类别,得到第二判断结果;
若所述第二判断结果为所述数据库中不存在泛化引用类别,则根据所述Dubbo服务,获取泛化接口;
根据所述泛化接口调用泛化参数,查询到接口的提供者、接口的具体方法以及调用传递的参数,对所述接口参数对象对应接口进行接口请求,以获取所述接口请求对应的返回结果,其中,泛化参数包括:服务的名称、版本、分组唯一限定符、方法名称、方法泛型参数类型、传递的PojoUtils.generalize(data)序列化后的基本参数;
对所述返回结果进行解析,得到目标结果;
通过将所述目标结果与所述预设配置信息中的预设条件进行匹配,得到匹配结果;
若所述匹配结果为所述目标结果与所述预设条件匹配失败,则输出告警信息。
2.根据权利要求1所述的服务监控方法,其特征在于,在所述通过目标监控服务的唯一标志,从数据库中获取所述目标监控服务对应的预设配置信息之前,所述方法还包括:
获取来自客户端对所述目标监控服务的请求指令;
基于所述请求指令,获取来自开发端对所述目标监控服务所配置的所述预设配置信息,并将所述预设配置信息存储于所述数据库中;
获取所述预设配置信息中的预设监控频率,并根据所述预设监控频率对所述目标监控服务进行监控。
3.根据权利要求1所述的服务监控方法,其特征在于,所述基于所述预设配置信息,获取所述预设配置信息中的参数信息以及所述目标监控服务对应的Dubbo服务,并将所述参数信息转换为接口参数对象包括:
采用遍历的方式,识别出所述预设配置信息中的参数标志和Facade类;
根据所述参数标志获取所述预设配置信息中的所述参数信息;
根据所述Facade类获取所述监控服务对应的Dubbo服务;
通过预设的转换方式,将所述参数信息转换为所述接口参数对象。
4.根据权利要求3所述的服务监控方法,其特征在于,在所述根据所述参数标志获取所述预设配置信息中的所述参数信息之后,所述方法还包括:
判断所述参数信息中是否包含时间字段信息,得到第一判断结果;
若所述第一判断结果为所述参数信息中包含时间字段信息,则将所述时间字段信息转换为预设时间对应的时间序列;
采用正则表达式的方式,将所述时间序列与所述参数信息进行匹配,得到包含时间序列的参数信息。
5.根据权利要求1所述的服务监控方法,其特征在于,所述对所述返回结果进行解析,得到目标结果包括:
将所述返回结果转化为JSONObject对象;
通过JSONPath提取所述JSONObject对象中的字段返回信息,并将所述字段返回信息作为所述目标结果。
6.根据权利要求1至5任一项所述的服务监控方法,其特征在于,所述通过将所述目标结果与所述预设配置信息中的预设条件进行匹配,得到匹配结果包括:
识别所述目标结果中对应的数据类型;
若所述数据类型为String型或Int型,则将所述目标结果与所述预设条件中的预设值进行字符串匹配,得到所述匹配结果;
若所述数据类型为List型,则将所述目标结果中的Size值与所述预设条件中的预设范围值进行数值匹配,得到所述匹配结果。
7.一种服务监控装置,其特征在于,包括:
预设配置信息获取模块,用于通过目标监控服务的唯一标志,从数据库中获取所述目标监控服务对应的预设配置信息;
接口参数对象转换模块,用于基于所述预设配置信息,获取所述预设配置信息中的参数信息以及所述目标监控服务对应的Dubbo服务,并将所述参数信息转换为接口参数对象;
第二判断结果确定单元,用于判断所述数据库中是否存在泛化引用类别,得到第二判断结果;
泛化数据获取单元,用于若所述第二判断结果为所述数据库中不存在泛化引用类别,则根据所述Dubbo服务,获取泛化接口;
接口请求单元,用于根据所述泛化接口调用泛化参数,查询到接口的提供者、接口的具体方法以及调用传递的参数,对所述接口参数对象对应接口进行接口请求,以获取所述接口请求对应的返回结果,其中,泛化参数包括:服务的名称、版本、分组唯一限定符、方法名称、方法泛型参数类型、传递的PojoUtils.generalize(data)序列化后的基本参数;
返回结果解析模块,用于对所述返回结果进行解析,得到目标结果;
匹配结果获取模块,用于通过将所述目标结果与所述预设配置信息中的预设条件进行匹配,得到匹配结果;
告警信息输出模块,用于若所述匹配结果为所述目标结果与所述预设条件匹配失败,则输出告警信息。
8.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的服务监控方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的服务监控方法。
CN202110432281.8A 2021-04-21 2021-04-21 服务监控方法、装置、计算机设备及存储介质 Active CN113157523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110432281.8A CN113157523B (zh) 2021-04-21 2021-04-21 服务监控方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110432281.8A CN113157523B (zh) 2021-04-21 2021-04-21 服务监控方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN113157523A CN113157523A (zh) 2021-07-23
CN113157523B true CN113157523B (zh) 2022-11-11

Family

ID=76867900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110432281.8A Active CN113157523B (zh) 2021-04-21 2021-04-21 服务监控方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113157523B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114024901B (zh) * 2022-01-05 2022-04-19 中邮消费金融有限公司 一种消息隔离转发方法及系统
CN114710542B (zh) * 2022-03-23 2023-12-26 中国工商银行股份有限公司 一种基于rpc的泛化路由mock方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107179951A (zh) * 2016-03-09 2017-09-19 北京京东尚科信息技术有限公司 远程过程调用方法和装置
CN107819607A (zh) * 2017-10-13 2018-03-20 丹露成都网络技术有限公司 基于dubbo的微服务监控系统
CN111666211A (zh) * 2020-05-26 2020-09-15 平安壹钱包电子商务有限公司 服务动态测试方法、装置、计算机设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297738A (zh) * 2019-05-21 2019-10-01 深圳壹账通智能科技有限公司 系统服务的监控方法、装置、设备及存储介质
CN112543127A (zh) * 2019-09-23 2021-03-23 北京轻享科技有限公司 一种微服务架构的监控方法及装置
CN112383641B (zh) * 2021-01-13 2021-04-06 国网汇通金财(北京)信息科技有限公司 一种服务保活监控方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107179951A (zh) * 2016-03-09 2017-09-19 北京京东尚科信息技术有限公司 远程过程调用方法和装置
CN107819607A (zh) * 2017-10-13 2018-03-20 丹露成都网络技术有限公司 基于dubbo的微服务监控系统
CN111666211A (zh) * 2020-05-26 2020-09-15 平安壹钱包电子商务有限公司 服务动态测试方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Dubbo微服务技术的应用与实现;周洪岩;《信息与电脑(理论版)》;20181015(第19期);全文 *

Also Published As

Publication number Publication date
CN113157523A (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
CN109902105B (zh) 用于微服务架构的数据查询系统、方法、设备及存储介质
CN113157523B (zh) 服务监控方法、装置、计算机设备及存储介质
CN112015430A (zh) JavaScript代码翻译方法、装置、计算机设备及存储介质
CN112671734B (zh) 面向多数据源的报文处理方法及其相关设备
CN113536185B (zh) 应用页面的加载方法、存储介质、及其相关设备
CN110895472A (zh) 一种识别业务变更的方法和装置
CN111651318A (zh) 基于prometheus的接口监控方法、装置、计算机设备及存储介质
CN113626223A (zh) 一种接口调用方法和装置
CN112860662A (zh) 数据血缘关系建立方法、装置、计算机设备及存储介质
CN111552463A (zh) 一种页面跳转方法、装置、计算机设备及存储介质
CN113515271B (zh) 服务代码生成方法、装置、电子设备及可读存储介质
CN110765610B (zh) Pdm集成方法、装置、计算机设备及存储介质
CN112685115A (zh) 国际提示语生成方法、系统、计算机设备及存储介质
CN116450723A (zh) 数据提取方法、装置、计算机设备及存储介质
CN111797297B (zh) 页面数据处理方法、装置、计算机设备及存储介质
CN115604343A (zh) 一种数据传输方法、系统、电子设备和存储介质
CN114637672A (zh) 自动化数据测试方法、装置、计算机设备及存储介质
CN116301869B (zh) 前端页面配置管控系统、方法、设备、介质
CN111178025A (zh) 核电站运行导则的编辑方法、装置、计算机设备及存储介质
CN115577867B (zh) 一种抽检任务创建方法、系统、计算机设备及存储介质
CN112965721B (zh) 基于Android的项目编译方法、装置、计算机设备及存储介质
CN113949438B (zh) 一种无人机通讯方法、装置、设备及存储介质
CN115686475A (zh) 标准化服务sdk自动化生成方法及其相关设备
CN117331804A (zh) 一种前端页面监控方法、装置、计算机设备及存储介质
CN115423582A (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
GR01 Patent grant
GR01 Patent grant