一种基于grpc和spring mvc的链路监控方法及系统技术方案

技术编号:26797468 阅读:37 留言:0更新日期:2020-12-22 17:14
本发明专利技术涉及服务器技术领域,提供一种基于grpc和spring mvc的链路监控方法及系统,方法包括:通过引入到服务中的spring拦截器探针对接收到的请求进行链路日志数据的打印;通过设置在框架服务grpc的服务端过滤器探针和客户端过滤器探针分别打印链路日志数据;利用预先设置在服务器中过滤器插件对所述spring拦截器探针、服务端过滤器探针和客户端过滤器探针分别打印的链路日志数据进行采集,并将采集到的链路日志数据实时推送至对应的数据库中,从而实现迅速定位业务场景中的一次请求响应失败的原因的效果,对业务代码的侵入性小,部署实现简单,数据采集和展示效率高。

【技术实现步骤摘要】
一种基于grpc和springmvc的链路监控方法及系统
本专利技术属于服务器
,尤其涉及一种基于grpc和springmvc的链路监控方法及系统。
技术介绍
微服务架构是一种架构模式,其提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTfulAPI)。随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。但是,目前没有一套成型完善的机制对服务器的全链路进行监控,定位查找到某一条业务数据的问题所在,以及对链路数据的高效查询。
技术实现思路
针对现有技术中的缺陷,本专利技术提供了一种基于grpc和springmvc的链路监控方法,旨在解决现有技术中没有一套成型完善的机制对服务器的全链路进行监控,定位查找到某一条业务数据的问题所在,以及对链路数据的高效查询的问题。本专利技术所提供的技术方案是:一种基于grpc和springmvc的链路监控方法,所述方法包括下述步骤:通过引入到服务中的spring拦截器探针对接收到的请求进行链路日志数据的打印;通过设置在框架服务grpc的服务端过滤器探针和客户端过滤器探针分别打印链路日志数据;利用预先设置在服务器中过滤器插件对所述spring拦截器探针、服务端过滤器探针和客户端过滤器探针分别打印的链路日志数据进行采集,并将采集到的链路日志数据实时推送至对应的数据库中。作为一种改进的方案,所述通过引入到服务中的spring拦截器探针对接收到的请求进行链路日志数据的打印的步骤之前还包括下述步骤:在所述服务中引入所述spring拦截器探针,并将引入的spring拦截器探针设置为第一顺位执行。作为一种改进的方案,所述通过设置在框架服务grpc的服务端和客户端的过滤器探针打印链路日志数据的步骤之前还包括下述步骤:在框架服务grpc客户端发起调用操作之前,在框架服务grpc中引入客户端过滤器探针和服务端过滤器探针。作为一种改进的方案,所述利用预先设置在服务器中过滤器插件对所述spring拦截器探针、服务端过滤器探针和客户端过滤器探针分别打印的链路日志数据进行采集,并将采集到的链路日志数据实时推送至对应的数据库中的步骤之前还包括下述步骤:在所有的服务器中安装所述过滤器插件,所述过滤器插件为logstash插件,所述logstash插件读取日志的格式为”flmc”:”[日志时间]”:”[事件类型]”:”[调用时间]”:”[链路ID]”:”[spanId]”:”[parentSpanId]”:”[spanName]”:”[扩展信息]”;修改服务器的配置文件中的路径path为当前服务器上需采集的日志记录。作为一种改进的方案,所述方法还包括下述步骤:当请求信息为服务中的业务信息时,调用预先设置自定义扩展信息探针对与所述业务信息相关联的链路中的业务数据进行采集。作为一种改进的方案,所述当请求信息为服务中的业务信息时,调用预先设置自定义扩展信息探针对与所述业务信息相关联的链路中的业务数据进行采集的步骤之前还包括下述步骤:预先在服务器中设置自定义扩展信息探针。作为一种改进的方案,所述当请求信息为服务中的业务信息时,调用预先设置自定义扩展信息探针对与所述业务信息相关联的链路中的业务数据进行采集的步骤之后还包括下述步骤:对所述spring拦截器探针、服务端过滤器探针、客户端过滤器探针打印的链路日志数据和所述自定义扩展信息探针采集到的业务数据进行分析,在六链路日志数据和业务数据之间建立关联。本专利技术的另一目的在于提供一种基于grpc和springmvc的链路监控系统,所述系统包括:第一链路日志数据打印模块,用于通过引入到服务中的spring拦截器探针对接收到的请求进行链路日志数据的打印;第二链路日志数据打印模块,用于通过设置在框架服务grpc的服务端过滤器探针和客户端过滤器探针分别打印链路日志数据;链路日志数据采集模块,用于利用预先设置在服务器中过滤器插件对所述spring拦截器探针、服务端过滤器探针和客户端过滤器探针分别打印的链路日志数据进行采集;链路日志数据推送模块,用于将所述链路日志数据采集模块采集到的链路日志数据实时推送至对应的数据库中。作为一种改进的方案,所述系统还包括:spring拦截器探针创建模块,用于在所述服务中引入所述spring拦截器探针,并将引入的spring拦截器探针设置为第一顺位执行;过滤器探针创建模块,用于在框架服务grpc客户端发起调用操作之前,在框架服务grpc中引入客户端过滤器探针和服务端过滤器探针;过滤器插件创建模块,用于在所有的服务器中安装所述过滤器插件,所述过滤器插件为logstash插件,所述logstash插件读取日志的格式为”flmc”:”[日志时间]”:”[事件类型]”:”[调用时间]”:”[链路ID]”:”[spanId]”:”[parentSpanId]”:”[spanName]”:”[扩展信息]”,修改服务器的配置文件中的路径path为当前服务器上需采集的日志记录;自定义扩展信息探针设置模块,用于预先在服务器中设置自定义扩展信息探针。作为一种改进的方案,所述系统还包括:业务数据采集模块,用于当请求信息为服务中的业务信息时,调用预先设置自定义扩展信息探针对与所述业务信息相关联的链路中的业务数据进行采集;关联关系建立模块,用于对所述spring拦截器探针、服务端过滤器探针、客户端过滤器探针打印的链路日志数据和所述自定义扩展信息探针采集到的业务数据进行分析,在六链路日志数据和业务数据之间建立关联。在本专利技术实施例中,通过引入到服务中的spring拦截器探针对接收到的请求进行链路日志数据的打印;通过设置在框架服务grpc的服务端过滤器探针和客户端过滤器探针分别打印链路日志数据;利用预先设置在服务器中过滤器插件对所述spring拦截器探针、服务端过滤器探针和客户端过滤器探针分别打印的链路日志数据进行采集,并将采集到的链路日志数据实时推送至对应的数据库中,从而实现迅速定位业务场景中的一次请求响应失败的原因的效果,对业务代码的侵入性小,部署实现简单,数据采集和展示效率高。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。图本文档来自技高网...

【技术保护点】
1.一种基于grpc和spring mvc的链路监控方法,其特征在于,所述方法包括下述步骤:/n通过引入到服务中的spring拦截器探针对接收到的请求进行链路日志数据的打印;/n通过设置在框架服务grpc的服务端过滤器探针和客户端过滤器探针分别打印链路日志数据;/n利用预先设置在服务器中过滤器插件对所述spring拦截器探针、服务端过滤器探针和客户端过滤器探针分别打印的链路日志数据进行采集,并将采集到的链路日志数据实时推送至对应的数据库中。/n

【技术特征摘要】
1.一种基于grpc和springmvc的链路监控方法,其特征在于,所述方法包括下述步骤:
通过引入到服务中的spring拦截器探针对接收到的请求进行链路日志数据的打印;
通过设置在框架服务grpc的服务端过滤器探针和客户端过滤器探针分别打印链路日志数据;
利用预先设置在服务器中过滤器插件对所述spring拦截器探针、服务端过滤器探针和客户端过滤器探针分别打印的链路日志数据进行采集,并将采集到的链路日志数据实时推送至对应的数据库中。


2.根据权利要求1所述的基于grpc和springmvc的链路监控方法,其特征在于,所述通过引入到服务中的spring拦截器探针对接收到的请求进行链路日志数据的打印的步骤之前还包括下述步骤:
在所述服务中引入所述spring拦截器探针,并将引入的spring拦截器探针设置为第一顺位执行。


3.根据权利要求1所述的基于grpc和springmvc的链路监控方法,其特征在于,所述通过设置在框架服务grpc的服务端和客户端的过滤器探针打印链路日志数据的步骤之前还包括下述步骤:
在框架服务grpc客户端发起调用操作之前,在框架服务grpc中引入客户端过滤器探针和服务端过滤器探针。


4.根据权利要求1所述的基于grpc和springmvc的链路监控方法,其特征在于,所述利用预先设置在服务器中过滤器插件对所述spring拦截器探针、服务端过滤器探针和客户端过滤器探针分别打印的链路日志数据进行采集,并将采集到的链路日志数据实时推送至对应的数据库中的步骤之前还包括下述步骤:
在所有的服务器中安装所述过滤器插件,所述过滤器插件为logstash插件,所述logstash插件读取日志的格式为”flmc”:”[日志时间]”:”[事件类型]”:”[调用时间]”:”[链路ID]”:”[spanId]”:”[parentSpanId]”:”[spanName]”:”[扩展信息]”;
修改服务器的配置文件中的路径path为当前服务器上需采集的日志记录。


5.根据权利要求1所述的基于grpc和springmvc的链路监控方法,其特征在于,所述方法还包括下述步骤:
当请求信息为服务中的业务信息时,调用预先设置自定义扩展信息探针对与所述业务信息相关联的链路中的业务数据进行采集。


6.根据权利要求5所述的基于grpc和springmvc的链路监控方法,其特征在于,所述当请求信息为服务中的业务信息时,调用预先设置自定义扩展信息探针对与所述业务信息相关联的链路中的业务数据进行采集的步骤之前还包括下述步骤:
预先在服务器中设置自定义扩展信息探针。


7...

【专利技术属性】
技术研发人员:张强刘正伟
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1