接口监控方法、装置、计算设备及存储介质与流程

文档序号:18639155发布日期:2019-09-11 22:45阅读:1093来源:国知局
接口监控方法、装置、计算设备及存储介质与流程

本发明涉及网络技术领域,特别涉及一种接口监控方法、装置、计算设备及存储介质。



背景技术:

随着网络技术的发展,可以通过调用服务器的接口的方式,来从服务器得到所需的资源和服务。为了保证接口的可用性,需要对接口进行监控,当接口异常进行告警,以便及时定位和解决接口存在的问题。

目前,监控接口的过程通常包括:终端调用服务器的接口,服务器会根据终端所调用的接口,向终端提供对应的资源或服务,同时向终端发送返回码,以标识本次调用成功还是失败。终端接收到返回码后,会向监控平台发送返回码,监控平台从终端接收到返回码后,会根据接收到的返回码,来监控接口是否异常。

采用上述方法监控接口时,每当终端调用一次服务器的接口时,监控平台才能得到一次返回码,因此对于流量较低的接口,即很少有终端调用的接口来说,监控平台能收集到的返回码的数据量就会过少,那么根据过少的返回码来监控接口,就会影响监控的及时性,导致无法及时发现接口异常。



技术实现要素:

本发明实施例提供了一种接口监控方法、装置、计算设备及存储介质,能够解决相关技术中无法及时检测出低流量的接口出现异常的问题。所述技术方案如下:

一方面,提供了一种接口监控方法,所述方法包括:

从一个或多个服务器的一个或多个接口中,选择目标服务器的目标接口,所述目标接口的流量低于流量阈值;

每隔预设时长,调用所述目标服务器的所述目标接口;

从所述目标服务器接收返回码,所述返回码表示调用所述目标接口成功或调用所述目标接口失败;

根据每次接收到的返回码,对调用所述目标接口的失败次数进行统计;

当所述失败次数满足预设条件时,输出告警信息,所述告警信息表示所述目标接口异常。

在一种可能的实现中,所述调用所述目标服务器的所述目标接口,包括:

从配置指令中,获取所述目标接口的输入参数;

根据所述目标接口的输入参数,生成调用请求;

向所述目标服务器发送所述调用请求。

在一种可能的实现中,所述每隔预设时长,调用所述目标服务器的所述目标接口之前,所述方法还包括:

向所述目标服务器发送协商消息,所述协商消息用于协商定时调用所述目标服务器的所述目标接口,所述协商消息包括监控平台的签名;

从所述目标服务器接收协商确认消息。

另一方面,提供了一种接口监控装置,所述装置包括:

选择模块,用于从一个或多个服务器的一个或多个接口中,选择目标服务器的目标接口,所述目标接口的流量低于流量阈值;

调用模块,用于每隔预设时长,调用所述目标服务器的所述目标接口;

接收模块,用于从所述目标服务器接收返回码,所述返回码表示调用所述目标接口成功或调用所述目标接口失败;

统计模块,用于根据每次接收到的返回码,对调用所述目标接口的失败次数进行统计;

输出模块,用于当所述失败次数满足预设条件时,输出告警信息,所述告警信息表示所述目标接口异常。

在一种可能的实现中,所述选择模块,包括:

获取子模块,用于对于所述一个或多个服务器的所述一个或多个接口中的每个接口,获取所述接口在目标时间段的调用次数,所述目标时间段的时间结束点为当前时间点且时长为预设时长;

选择子模块,用于根据每个服务器的每个接口在所述目标时间段的调用次数,从所述一个或多个服务器的所述一个或多个接口中,选择在所述目标时间段的调用次数低于预设次数的接口,得到所述目标接口。

在一种可能的实现中,所述调用模块,包括:

读取子模块,用于从所述目标接口的历史调用日志中,读取所述目标接口的历史输入参数;

生成子模块,用于根据所述目标接口的历史输入参数,生成调用请求;

发送子模块,用于向所述目标服务器发送所述调用请求。

在一种可能的实现中,所述读取子模块,用于从所述历史调用日志的每个调用记录中,选择距离当前时间点最近的调用记录;从所述调用记录中,读取所述目标接口的历史输入参数。

在一种可能的实现中,所述调用模块,包括:

获取子模块,用于从配置指令中,获取所述目标接口的输入参数;

生成子模块,用于根据所述目标接口的输入参数,生成调用请求;

发送子模块,用于向所述目标服务器发送所述调用请求。

在一种可能的实现中,所述读取子模块,用于根据所述历史调用日志的每个调用记录中的历史输入参数,统计所述目标接口的每个历史输入参数的出现频率;根据所述目标接口的每个历史输入参数的出现频率,从所述目标接口的多个历史输入参数中,选择出现频率最高的历史输入参数。

在一种可能的实现中,发送模块,用于向所述目标服务器发送协商消息,所述协商消息用于协商定时调用所述目标服务器的所述目标接口,所述协商消息包括监控平台的签名;

所述接收模块,还用于从所述目标服务器接收协商确认消息。

在一种可能的实现中,获取模块,用于获取目标应用的后台服务器所处的一个或多个调用链;

所述接收模块,还用于从所述一个或多个调用链中,选择所述后台服务器的每个子节点,得到所述一个或多个服务器。

在一种可能的实现中,所述装置还包括:检测模块,用于检测所述目标接口的状态;

所述调用模块,具体用于当所述目标接口处于上线状态时,每隔预设时长,调用所述目标接口。

一方面,提供了一种计算设备,所述计算设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述指令由所述一个或多个处理器加载并执行以实现上述接口监控方法。

一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述接口监控方法。

本发明实施例提供的技术方案带来的有益效果至少可以包括:

本实施例提供的方法,通过从待监控的各个接口中,筛选出低流量的接口,每隔预设时长,主动地调用低流量的接口,来收集返回码,能够定时地得到返回码,从而可以扩充返回码的数据量,根据足够的返回码来统计接口调用的失败次数,进而根据失败次数进行告警,能够在低流量的接口异常时及时告警出来,从而提高监控低流量接口的及时性,帮助用户及时发现低流量的接口不可用的情况,从而提高了监控效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种接口监控系统的架构图;

图2是本发明实施例提供的一种接口监控方法的流程图;

图3是本发明实施例提供的一种探针调用接口的流程图;

图4是本发明实施例提供的一种监控接口的流程图;

图5是本发明实施例提供的一种接口监控装置的结构示意图;

图6是本发明实施例提供的一种终端的结构示意图;

图7是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

以下对本申请涉及的术语进行解释:

超文本传输协议(英文全称:hypertexttransferprotocol,英文简称:http):是一种从万维网的服务器传输超文本至本地的浏览器的协议。http基于传输控制协议(英文全称:transmissioncontrolprotocol,英文简称:tcp)/互联网协议地址(英文全称:internetprotocoladdress,英文简称:ip)通信协议。

探针:一种万维网(英文全称:worldwideweb,英文简称:web)脚本程序,是通过网页编程语言实现探测服务器敏感信息的脚本文件,该网页编程语言可以而不限于是asp(即activeserverpages,是microsoft公司开发的服务器端脚本环境)、超文本预处理器(hypertextpreprocessor,php)、asp.net(微软公司推出的新一代脚本语言)等。

elk:三个开源软件的缩写,分别表示:elasticsearch(基于搜索的服务器)、logstash(开源数据搜集引擎,支持实时数据管道功能)、kibana(用于和elasticsearch一起使用的开源的分析与可视化平台),elk可以用于处理日志。

filebeat:是一个轻量级的日志处理工具,filebeat占用的资源少,适合于在各个服务器上搜集日志后传输给logstash。

以下,示例性介绍本申请的系统架构。

图1是本申请实施例提供的一种接口监控系统的架构图。该接口监控系统包括:应用服务器101、监控平台102、第三方服务器103以及终端104。

终端104通过无线网络或有线网络与应用服务器101相连。终端104可以是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)播放器或mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机中的至少一种。终端104可以安装和运行有应用程序,应用服务器101用于为该应用程序提供后台服务。示意性地,终端104可以是用户使用的终端,终端104中运行的应用程序内登录有用户在应用服务器101上注册的账号。其中,该应用程序可以是购物类应用程序、音频程序、视频程序、社交应用程序、即时通讯应用程序、翻译类应用程序、浏览器程序、支付程序、金融程序、交通程序中的任意一种。

应用服务器101通过无线网络或有线网络与监控平台102相连,并且,通过无线网络或有线网络与第三方服务器103相连。应用服务器101以及监控平台102可以用于执行下述实施例提供的方法。具体地,应用服务器101可以用于执行下述步骤201、步骤202、步骤203、步骤205以及步骤206,监控平台102可以用于执行下述步骤207以及步骤208。

应用服务器101可以包括一台服务器、多台服务器、云计算平台或者虚拟化中心中的至少一种。应用服务器101可以是一台或多台。当应用服务器101是多台时,存在至少两台应用服务器101用于提供不同的服务,和/或,存在至少两台应用服务器101用于提供相同的服务,比如以负载均衡方式提供同一种服务,本申请实施例对此不加以限定。在一些可能的实施例中,应用服务器101可以是弹性云服务器(英文全称:elasticcloudserver,英文简称:ecs)、虚拟机、容器、在云环境中运行的应用、服务或微服务。

监控平台102可以包括监控服务器1021以及数据库1022。监控服务器1021可以是一台服务器、多台服务器、云计算平台或者虚拟化中心中的至少一种。监控服务器1021的形态可以和应用服务器101同理,在此不做赘述。监控服务器1021通过无线网络或有线网络与数据库1022相连。数据库1022用于存储调用接口后得到的返回码、调用接口的失败次数或者接口的历史调用日志中的一项或多项。数据库1022可以位于一台存储设备上,也可以分布在多个存储设备上。数据库1022可以通过云存储服务实现,例如,数据库1022可以为对象存储服务(英文全称:objectstorageservice,英文简称:obs)、云硬盘、云数据库1022等。监控平台102可以而不限于运行在云环境、边缘环境或者终端环境中的任意一种,例如可以运行在公有云、私有云或混合云上。监控平台102可以作为接口监控服务向用户提供。

第三方服务器103可以用于为终端104提供第三方服务。具体地,终端104中运行的应用程序可以搭载有第三方应用,第三方服务器可以为第三方应用的后台服务器。其中,第三方应用可以而不限于社保卡服务、公积金查询服务、护照通行证签注预约服务等。具体地,当用户访问第三方应用时,终端104向应用服务器101发送调用指令,调用指令请求调用第三方服务器103的接口,应用服务器101接收到调用指令时,可以生成调用请求,向第三方服务器103发送调用请求,第三方服务器103接收到调用请求时,可以提供第三方应用对应的服务。

本领域技术人员可以知晓,图1仅是以应用服务器101以及监控平台102分置在不同的设备为例进行说明,在其它可能的实施方式中,应用服务器101以及监控平台102也可以集成在一起,应用服务器101以及监控平台102可以位于同一设备上。

本领域技术人员可以知晓,上述应用服务器101、监控平台102、第三方服务器103或者终端104的数量可以更多或更少。比如上述应用服务器101、监控平台102、第三方服务器103或者终端104可以仅为一个,或者上述应用服务器101、监控平台102、第三方服务器103或者终端104为几十个或几百个,或者更多数量,此时上述接口监控系统还包括其他应用服务器101、监控平台102、第三方服务器103或者终端104。本申请实施例对应用服务器101、监控平台102、第三方服务器103或者终端104的数量和设备类型不加以限定。

以下,示例性介绍本申请的方法流程。

图2是本发明实施例提供的一种接口监控方法的流程图,该方法以执行主体包括应用服务器、监控平台以及目标服务器为例,该方法包括:

201、应用服务器从一个或多个服务器的一个或多个接口中,选择目标服务器的目标接口,目标接口的流量低于流量阈值。

应用服务器可以是目标应用的后台服务器,一个或多个服务器中的每个服务器可以是第三方服务器,第三方服务器可以用于为目标应用提供第三方服务,用户在使用目标应用的过程中,可以通过应用服务器访问第三方服务器。例如,第三方应用可以是目标应用上搭载的嵌入式应用,比如可以是小程序,第三方服务器可以是嵌入式应用的后台服务器,示意性地,目标应用可以是即时通信应用,嵌入式应用可以是目标应用搭载的社保卡应用,则应用服务器可以是即时通信应用的后台服务器,服务器可以是社保卡应用的后台服务器。

目标服务器为该一个或多个服务器中具有目标接口的服务器,目标接口为低流量的接口。其中,低流量可以通过流量低于流量阈值来标识。流量阈值可以为预设的阈值,流量阈值可以预存在应用服务器中,流量阈值可以根据需求、实验或经验设置,本实施例对流量阈值的具体数值不做限定。

在一些可能的实施例中,应用服务器可以检测每个服务器的每个接口的流量;对于任一个服务器的任一个接口,应用服务器可以判断该接口的流量是否低于流量阈值;当接口的流量低于阈值时,应用服务器可以将该接口选择为目标接口,将包括该目标接口的服务器选择为目标服务器。

通过上述方式,可以为不同流量的接口采用不同的监控方式,针对低流量接口,采用本实施例提供的方法来监控流量,如此,本实施例的方法可以应用到流量较低又要及时监控接口质量的一些产品,例如社保卡、公积金查询、护照通行证签注预约和居住证登记等城市服务应用。

关于检测接口的流量的具体过程,在一些可能的实施例中,对于一个或多个服务器的一个或多个接口中的每个接口,应用服务器可以获取该接口在目标时间段的调用次数,应用服务器可以根据每个服务器的每个接口在目标时间段的调用次数,从一个或多个服务器的一个或多个接口中,选择在目标时间段的调用次数低于预设次数的接口,得到目标接口。可选地,目标时间段可以是最近的统计周期,例如,目标时间段的时间结束点为当前时间点且时长为预设时长,比如说,如果预设时长为1分钟,则目标时间段为最近的1分钟,如果预设时长为1小时,则目标时间段为最近的1小时。

关于确定一个或多个服务器的方式,在一些可能的实施例中,可以在应用服务器上配置第三方服务器列表,第三方服务器列表用于指示待监控的一个或多个第三方服务器,比如说可以包括一个或多个第三方服务器的标识。应用服务器可以从第三方服务器列表中,获取该一个或多个服务器。在另一些可能的实施例中,应用服务器可以获取目标应用相关的每个第三方应用的后台服务器,得到该一个或多个服务器。示意性地,应用服务器可以获取目标应用的后台服务器(即应用服务器)所处的一个或多个调用链;应用服务器可以从一个或多个调用链中,选择应用服务器的每个子节点,得到一个或多个服务器。示意性地,如果调用链为:服务器a调用服务器b,服务器b调用服务器c以及服务器c,而应用服务器为这条调用链中的服务器b,则服务器c以及服务器d为应用服务器的子节点,因此应用服务器可以选择服务器c以及服务器d为第三方服务器。

通过这种方式,由于第三方服务器是应用服务器会调用的服务器,因此在调用链中,第三方服务器是应用服务器的子节点,因此可通过这种方式,准确自动地筛选出第三方服务器。

在一些可能的实施例中,应用服务器可以预存监控平台的签名,该监控平台的签名用于验证应用服务器的可信性,应用服务器在调用目标服务器的目标接口之前,可以生成协商消息,向目标服务器发送协商消息,协商消息用于协商定时调用目标服务器的目标接口,协商消息包括监控平台的签名。目标服务器可以预存有监控平台的签名,当接收到协商消息后,可以对协商消息中的签名与预存的签名进行比对,当协商消息中的签名与预存的签名一致时,表明应用服务器身份验证通过,则目标服务器向应用服务器发送协商确认消息,应用服务器可以从目标服务器接收协商确认消息,则执行下述定时调用目标接口的过程。

通过基于监控平台的签名进行协商,应用服务器可以预先向目标服务器证明自身的可信度,避免由定时调用目标服务器的目标接口,而被目标服务器判定为恶意服务器,导致目标服务器不响应应用服务器的调用请求的情况。

202、应用服务器检测目标接口的状态。

示意性地,可以预先配置上线接口列表,该上线接口列表包括一个或多个处于上线状态的接口的接口名,可以判断接口的接口名是否属于上线接口列表,如果接口的接口名属于上线接口列表,则确定接口处于上线状态。通过上述方式,可以接口监控的过程更具有时效性,对于已经停止提供服务的第三方接口来说,监控这样的接口的价值不大,而通过上述方式,当接口处于下线状态时,应用服务器可以停止监控调用目标接口,从而可以避免监控已经下线的第三方接口,进而避免监控过程对计算资源的浪费。

203、当目标接口处于上线状态时,应用服务器每隔预设时长,调用目标接口。

本实施例中,应用服务器可以保持一定的心跳,定时调用目标服务器的目标接口,以便及时发现出目标接口的异常情况。具体来说,应用服务器可以启动计时器,每当经过预设时长时,根据目标接口的输入参数,生成调用请求,向目标服务器发送调用请求,从而调用目标接口。

其中,预设时长可以预先在应用服务器上进行配置,预设时长可以根据需求、经验或实验设置,例如,预设时长可以是1分钟,则应用服务器会每分钟调用一次目标服务器的接口。调用请求用于请求调用目标服务器的目标接口,例如,调用请求可以包括目标接口的接口名,接口名可以预先存储在应用服务器中。调用请求可以是http请求。

应用服务器通过定时调用目标服务器的目标接口,可以达到变被动为主动的目的。具体来讲,相关技术中,当终端发起调用请求时,监控平台才会得到本次调用的返回码,也即是,来一次终端的调用请求才能得到一次数据,因此收集到的数据太少,由于根据过少的数据来进行监控预警,导致不能及时有效地起到监控预警的作用。而通过本实施例中,应用服务器可以随着时间的推移,每当经过预设时长,则主动地调用目标服务器的目标接口,因此监控平台可以收集到更多的返回码,因此根据足够的数据来进行监控预警,可以提高预警的及时性。

关于调用接口的具体过程,在一些可能的实施例中,应用服务器可以从目标接口的历史调用日志中,读取目标接口的历史输入参数;应用服务器可以根据目标接口的历史输入参数,生成调用请求;应用服务器可以向目标服务器发送调用请求。

历史调用日志用于记录目标接口的历史调用情况,如历史调用目标接口时目标接口的历史输入参数、历史调用目标接口的时间点、历史调用目标接口的耗时等。具体地,应用服务器可以当接收到终端的调用请求时,从终端的调用请求中,获取目标接口的输入参数,以获取到的该目标接口的输入参数为历史输入参数,生成包括目标接口的历史输入参数的调用记录,向历史调用日志写入调用记录。那么,在监控目标接口的过程中,由于预先在历史调用日志中记录了目标接口的历史输入参数,因此应用服务器可以从历史调用日志中,读取目标接口的历史输入参数。

通过这种方式,应用服务器调用目标服务器的接口的过程,可以类似于进行接口重放。具体地,由于应用服务器发送的调用请求中的接口的输入参数,是历史调用目标接口时使用的输入参数,因此应用服务器发送的调用请求与历史调用目标接口时发送的调用请求类似,那么应用服务器调接口的过程,能够模拟成为客户重新请求目标服务器提供第三方服务的过程,从而保证目标服务器返回的数据更准确。

在一些可能的实施例中,应用服务器可以根据当前时间点,从历史调用日志的每个调用记录中,选择距离当前时间点最近的调用记录;从距离当前时间点最近的调用记录中,读取目标接口的历史输入参数。

通过这种方式,随着时间的推移,目标接口不断被重新调用,每次调用目标接口所使用的输入参数会发生更新,则历史调用日志中最新的调用记录中的历史输入参数也会随之更新,通过每次根据最新的调用记录,来得到接口的最新的历史输入参数,进而调用接口,因此应用服务器每次发送的调用请求可以是动态变化的,能够模拟真实客户最近一次调用接口的过程。

在一些可能的实施例中,应用服务器可以根据历史调用日志的每个调用记录中的历史输入参数,统计目标接口的每个历史输入参数的出现频率;根据目标接口的每个历史输入参数的出现频率,从目标接口的多个历史输入参数中,选择目标接口的输入参数。其中,目标接口的输入参数为多个历史输入参数中出现频率最高的历史输入参数。任一历史输入参数的出现频率可以为该历史输入参数的出现次数与对应目标接口的所有历史输入参数的出现次数之间的比值,该目标接口的所有历史输入参数可以为历史调用日志在最近的统计周期内所记录的目标接口的每个历史输入参数。

通过利用历史调用日志中高频出现的历史输入参数,来生成调用请求,由于高频出现的历史输入参数为近期高频使用的历史输入参数,能够反映第三方应用的实际业务,因此调用请求能够模拟近期真实用户的调用第三方应用的过程,使得目标服务器返回的数据更准确。

在另一些可能的实施例中,应用服务器也可以接收配置指令,该配置指令包括目标接口的输入参数,应用服务器可以从配置指令中,获取目标接口的输入参数。应用服务器可以根据预先配置的输入参数,生成调用请求;应用服务器可以向目标服务器发送调用请求。其中,配置指令可以根据开发人员的输入操作触发。通过这种方式,调用请求中接口的输入参数会是预先设定的,因此应用服务器每次发送的调用请求可以是相同的。

204、目标服务器向应用服务器发送返回码。

205、应用服务器从目标服务器接收返回码。

返回码表示调用接口成功或调用接口失败。具体地,返回码可以包括成功返回码以及失败返回码,成功返回码表示调用接口成功,失败返回码表示调用接口成功,成功返回码以及失败返回码可以通过不同的数字表示。

目标服务器可以从应用服务器接收调用请求,根据调用请求,确定应用服务器所调用的接口,提供该接口对应的第三方服务,根据提供服务的结果,生成响应消息,向应用服务器发送响应消息,应用服务器可以接收响应消息,从响应消息中,获取返回码。其中,如果目标服务器成功提供第三方服务,则目标服务器生成包括成功返回码的响应消息,如果目标服务器未成功提供非三方服务,则目标服务器生成包括失败返回码的响应消息。另外,该响应消息还可以包括反映接口质量的信息,例如调用接口的耗时等。

需要说明的一点是,上述步骤203至步骤205为循环执行的流程,即,每当时间经过预设时长时,应用服务器以及目标服务器就会重新执行一次步骤203至步骤205,从而达到定时检测目标接口的目的。

206、应用服务器将每次接收到的返回码发送至监控平台。

每当应用服务器接收到返回码后,应用服务器可以将返回码上报至监控平台。

需要说明的一点是,应用服务器上报返回码的过程与上述步骤203至步骤205可以是异步执行的,即,应用服务器无需等待本次得到的返回码上报结束,再执行下一次的步骤203至步骤205,而是可以在上报本次的返回码的同时,执行下一次的步骤203至步骤205。

需要说明的另一点是,应用服务器可以将返回码实时上报给监控平台,也可以通过日志处理工具,将返回码记录在历史调用日志中,将历史调用日志发送至监控平台,则监控平台可以从历史调用日志中得到返回码。其中,日志处理工具可以而不限于elk系统、filebeat等,日志处理工具可以提供为应用服务器的日志代理(logagent)模块。

207、监控平台根据每次接收到的返回码,对调用目标接口的失败次数进行统计。

监控平台可以判断返回码是否为成功返回码,如果返回码不是成功返回码,则判定调用目标接口失败,可以记录调用目标接口失败;如果返回码是成功返回码,则判定调用目标接口成功,记录调用目标接口成功。在目标接口被定时调用的过程中,应用服务器可以对调用目标接口的失败次数进行统计。例如,应用服务器可以设置有统计周期,每隔统计周期,从调用目标服务器的接口的记录中,获取统计周期内调用目标接口的失败次数,判断调用目标接口的失败次数是否满足预设条件,当失败次数满足预设条件时,则判定目标接口异常,执行下述步骤208。

208、当失败次数满足预设条件时,监控平台输出告警信息。

失败次数满足预设条件可以而不限于下述情况(1)至情况(2)中的任意一项:

(1)失败次数满足次数阈值。

(1)可以包括失败次数大于失败次数阈值,以及失败次数大于或等于失败次数阈值这两种情况。失败次数阈值可以预先在应用服务器上进行配置。失败次数阈值可以根据经验、实验或需求设置,例如可以为3次,本实施例对失败次数阈值的具体数值不做限定。可选地,(1)可以为连续失败次数满足次数阈值,即,连续多次调用接口失败,且调用接口的连续失败次数满足次数阈值时,确定接口异常。

(2)失败率满足失败率阈值。

(2)可以包括失败率大于失败率阈值,以及失败率大于或等于失败率阈值这两种情况。失败率阈值可以预先在应用服务器上进行配置。失败率阈值可以根据经验、实验或需求设置,本实施例对失败率阈值的具体数值不做限定。

告警信息表示目标接口异常。例如,告警信息可以表示目标接口不可用。应用服务器可以采用任意形式输出告警信息,例如,监控平台可以向开发人员的终端发送短信,该短信包括告警信息;又如,监控平台可以向开发人员的邮件地址发送邮件,邮件包括告警信息,本实施例对输出告警信息的形式不做限定。通过输出告警信息,能够让开发人员第一时间知道目标接口的质量,从而及时应对目标接口不可用的情况,提高用户体检。

在一些可能的实施例中,可以在应用服务器上部署探针,通过探针来执行接口监控的流程。具体来讲,参见图3,探针调用一次接口的流程可以包括下述步骤一至步骤十一。

步骤一、开始定时调用。

步骤二、判断接口是否下线,如果接口没有下线,执行步骤三,如果接口下线,则执行

步骤三、根据接口的输入参数,生成并向第三方服务器发送调用请求。

步骤四、接收第三方服务器的返回码。

步骤五、判断返回码是否为预设的成功返回码,如果返回码不为预设的成功返回码,执行步骤六,如果返回码为预设的成功返回码,执行步骤六。

步骤六、标记第三方接口调用失败。

步骤七、上报监控平台。

步骤八、统计目标接口的调用失败率。

步骤九、判断目标接口的调用失败率是否大于设定的阈值,如果调用失败率大于设定的阈值,执行步骤十,如果调用失败率小于或等于设定的阈值,执行步骤十一。

步骤十、发送预警消息给开发人员。

步骤十一、一次调用过程结束。

示意性地,参见图4,图4的虚线框上方示出了由终端触发的被动的监控接口的流程,包括下述步骤1至步骤4:

步骤1、终端向应用服务器发送调用请求。

步骤2、应用服务器调用第三方服务器的接口。

步骤3、第三方服务器向应用服务器返回数据,该数据包括返回码。

步骤4、应用服务器向监控平台异步上报第三方服务器的接口的质量。

图4的虚线框内示出了由应用服务器主动触发的监控接口的流程,包括下述步骤2至步骤4:

步骤2、探针服务模拟http协议,通过向第三方接口发送预设的访问请求,来调用第三方服务器的接口。

步骤3、第三方服务器向应用服务器返回数据,该数据包括返回码。

步骤4、探针服务从数据中获取返回码,判断返回码是否为预设的成功返回码,如果返回码不是预设的成功返回码,探针服务标识第三方接口调用失败,向监控平台上报接口调用失败,监控平台循环统计调用接口的失败次数,如果判定接口异常,则发送短信或邮件给开发人员。

需要说明的一点是,本实施例仅是以监控接口的流程分散在应用服务器以及监控平台执行为例进行说明,在另一些可能的实施例中,应用服务器以及监控平台也可以集成为同一设备,由该设备执行上述实施例中应用服务器以及监控平台执行的每个步骤,该设备可以为任意计算设备。另外,如果应用服务器以及监控平台集成在一起,则上述步骤206可以无需执行。

本实施例提供的方法,通过从待监控的各个接口中,筛选出低流量的接口,每隔预设时长,主动地调用低流量的接口,来收集返回码,能够定时地得到返回码,从而可以扩充返回码的数据量,根据足够的返回码来统计接口调用的失败次数,进而根据失败次数进行告警,可以在低流量的接口异常时及时告警出来,从而提高监控的及时性,帮助用户及时发现低流量的接口不可用的情况,从而提高了监控效率。

图5是本发明实施例提供的一种接口监控装置的结构示意图,参见图5,该装置包括:

选择模块501,用于从一个或多个服务器的一个或多个接口中,选择目标服务器的目标接口,该目标接口的流量低于流量阈值;

调用模块502,用于每隔预设时长,调用该目标服务器的该目标接口;

接收模块503,用于从该目标服务器接收返回码,该返回码表示调用该目标接口成功或调用该目标接口失败;

统计模块504,用于根据每次接收到的返回码,对调用该目标接口的失败次数进行统计;

输出模块505,用于当该失败次数满足预设条件时,输出告警信息,该告警信息表示该目标接口异常。

在一种可能的实现中,该选择模块501,包括:

获取子模块,用于对于该一个或多个服务器的该一个或多个接口中的每个接口,获取该接口在目标时间段的调用次数,该目标时间段的时间结束点为当前时间点且时长为预设时长;

选择子模块,用于根据每个服务器的每个接口在该目标时间段的调用次数,从该一个或多个服务器的该一个或多个接口中,选择在该目标时间段的调用次数低于预设次数的接口,得到该目标接口。

在一种可能的实现中,该调用模块502,包括:

读取子模块,用于从该目标接口的历史调用日志中,读取该目标接口的历史输入参数;

生成子模块,用于根据该目标接口的历史输入参数,生成调用请求;

发送子模块,用于向该目标服务器发送该调用请求。

在一种可能的实现中,该读取子模块,用于从该历史调用日志的每个调用记录中,选择距离当前时间点最近的调用记录;从该调用记录中,读取该目标接口的历史输入参数。

在一种可能的实现中,该调用模块502,包括:

获取子模块,用于从配置指令中,获取该目标接口的输入参数;

生成子模块,用于根据该目标接口的输入参数,生成调用请求;

发送子模块,用于向该目标服务器发送该调用请求。

在一种可能的实现中,该读取子模块,用于根据该历史调用日志的每个调用记录中的历史输入参数,统计该目标接口的每个历史输入参数的出现频率;根据该目标接口的每个历史输入参数的出现频率,从该目标接口的多个历史输入参数中,选择出现频率最高的历史输入参数。

在一种可能的实现中,该装置还包括:发送模块,用于向该目标服务器发送协商消息,该协商消息用于协商定时调用该目标服务器的该目标接口,该协商消息包括监控平台的签名;

该接收模块503,还用于从该目标服务器接收协商确认消息。

在一种可能的实现中,该装置还包括:获取模块,用于获取目标应用的后台服务器所处的一个或多个调用链;

该接收模块503,还用于从该一个或多个调用链中,选择该后台服务器的每个子节点,得到该一个或多个服务器。

在一种可能的实现中,该装置还包括:检测模块,用于检测该目标接口的状态;

该调用模块502,具体用于当该目标接口处于上线状态时,每隔预设时长,调用该目标接口。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

需要说明的是:上述实施例提供的接口监控装置在监控接口时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的接口监控装置与接口监控方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本发明提供的接口监控方法可以由计算设备执行,该计算设备可以实现为终端,例如,图6是本发明实施例提供的一种终端的结构示意图。图6示出了本发明实施例提供的一种终端的结构框图。该终端600可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端600包括有:处理器601和存储器602。

处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例提供的接口监控方法。

在一些实施例中,终端600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、触摸显示屏605、摄像头606、音频电路607、定位组件608和电源609中的至少一种。

外围设备接口603可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路604用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏605用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置终端600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在终端600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。

定位组件608用于定位终端600的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件608可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。

电源609用于为终端600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。

加速度传感器611可以检测以终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制触摸显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器612可以检测终端600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对终端600的3d动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器613可以设置在终端600的侧边框和/或触摸显示屏605的下层。当压力传感器613设置在终端600的侧边框时,可以检测用户对终端600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在触摸显示屏605的下层时,由处理器601根据用户对触摸显示屏605的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置终端600的正面、背面或侧面。当终端600上设置有物理按键或厂商logo时,指纹传感器614可以与物理按键或厂商logo集成在一起。

光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制触摸显示屏605的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏605的显示亮度;当环境光强度较低时,调低触摸显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。

接近传感器616,也称距离传感器,通常设置在终端600的前面板。接近传感器616用于采集用户与终端600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与终端600的正面之间的距离逐渐变小时,由处理器601控制触摸显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与终端600的正面之间的距离逐渐变大时,由处理器601控制触摸显示屏605从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图6中示出的结构并不构成对终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

本发明提供的接口监控方法可以由计算设备执行,该计算设备可以实现为服务器,例如,图7是本发明实施例提供的一种服务器的结构示意图,该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(centralprocessingunits,cpu)701和一个或多个存储器702,其中,该一个或多个存储器702中存储有至少一条指令,该至少一条指令由该一个或多个处理器701加载并执行以实现上述各个方法实施例提供的接口监控方法。当然,该服务器还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的接口监控方法。例如,该计算机可读存储介质可以是只读存储器(read-onlymemory,简称:rom)、随机存取存储器(randomaccessmemory,简称:ram)、只读光盘(compactdiscread-onlymemory,简称:cd-rom)、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1