本发明涉及链路跟踪领域,特别涉及全链路跟踪方法。
背景技术:
目前随着计算机技术、网络技术的创新进步,特别是虚拟化技术的进步,还有新概念、新方案的创新和发展,尤其是微服务架构技术的发展,改变了传统的软件开发与运维模式。
微服务架构解决了传统的分层架构中的一些问题,它的核心特点是高可伸缩性、易于开发、测试和部署独立的服务组件,这些服务组件解耦的、分布式的、相互独立的,可以快速的迭代更新应用平台上的微服务,教育云平台就是这样一种微服务架构。在此基础上,以往对单台服务器的监控模式,需要转变为基于成百上千个实例之间相互调用的监控模式。
技术实现要素:
本发明实施例提供了链路跟踪系统中的报警方法及装置。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
本发明实施例提供了一种全链路跟踪方法,在教育云平台上部署分布式链路调用监控系统,提供所述系统的对外接口;所述方法包括:
通过所述系统的收集器,采集存储各服务传输的数据;
存储所述数据;
通过业务分析调用所述数据,输出跟踪结果。
基于所述方法,作为可选的第一实施例,所述存储各服务传输的数据,包括:
将所述各服务传输的数据存储至mysql中。
基于所述方法,作为可选的第二实施例,所述输出跟踪结果,包括:
输出可视化跟踪图。
基于所述第二实施例,作为可选的第三实施例,所述输出可视化跟踪图,包括:
向所述教育云平台的网页用户界面ui输出可视化跟踪图。
基于所述方法,作为可选的第四实施例,所述在教育云平台上部署分布式链路调用监控系统,包括:
通过docker容器在教育云平台上部署分布式链路调用监控系统。
基于所述第四实施例,作为可选的第五实施例,所述方法还包括:
根据所述docker容器镜像内程序的运行,调整所述docker容器镜像内程序使用的资源。
基于所述方法、所述第二实施例至所述第五实施例中的任意一个,所述数据包括:各服务所对应的至少一个工作单元;
所述工作单元记录时间、跟踪路径标识。
本发明实施例中,通过在教育云平台上部署分布式链路调用监控系统,可以实现全链路跟踪,解决微服务下的故障定位难、资源浪费多、链路梳理难等缺点。进一步,由于分布式链路调用监控系统本身具有透明、低开销、可扩展的特点,提高了教育云平台上的服务稳定性和高可用性,降低了云平台的运营成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是一示例性实施例示出的全链路跟踪方法流程图;
图2是一示例性实施例示出的全链路跟踪方法流程图;
图3是一示例性实施例示出的全链路跟踪方法中的链路调用示意图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
在一示例性实施例中,全链路跟踪方法中,在教育云平台上部署分布式链路调用系统zipkin,并提供该系统的对外接口。
如图1所示,全链路跟踪方法包括如下步骤。
在步骤11中,通过系统的收集器,采集存储各服务传输的数据。
在步骤12中,存储采集的数据。
在步骤13中,通过业务分析调用存储的数据,输出跟踪结果。
可见,本示例性实施例中,通过在教育云平台上部署zipkin,可以实现全链路跟踪,解决微服务下的故障定位难、资源浪费多、链路梳理难等缺点。进一步,由于zipkin本身具有透明、低开销、可扩展的特点,提高了教育云平台上的服务稳定性和高可用性,降低了云平台的运营成本。
在一示例性实施例中,通过docker容器在教育云平台上部署分布式链路调用监控系统zipkin,并提供对外接口。
如图2所示,全链路跟踪方法包括如下步骤。
在步骤21中,通过zipkin的收集器collection采集各服务传输的数据。
本步骤中,各服务传输的数据包括:各服务所对应的至少一个工作单元span。上述span相当于服务器中的一次请求信息,一次链路调用将创建一个span,可以通过一个64位的标识来标识span。span不断的启动和停止,同时记录了时间信息和跟踪路径trace标识。上述trace相当于树结构的span集合,标识一条调用链路。
图3为一示例性实施例所示出的全链路跟踪方法中的链路调用示意图,在该举例中,服务1调用服务2,服务2调用服务3和服务4。
在步骤22中,存储采集的数据。
本步骤中,采集的数据可以存储在mysql中。
在步骤23中,通过业务分析调用存储的数据,输出可视化跟踪结果。
本步骤中,查询存储的数据,通过业务分析调用后,得出跟踪结果。跟踪结果的输出可以采用可视化的方式,例如输出可视化的跟踪图。进一步,可以向教育云平台的网页用户界面(userinterface,英文缩写ui)输出可视化视图。
可见,通过将zipkin部署在教育云平台上,在某一时间段通过某一事件来看,就可以知道各服务之间的调用和依赖关系,实现全链路跟踪,及时发现服务中存在的问题,为后续解决及治理问题提供依据。
在步骤24中,根据所述docker容器镜像内程序的运行,调整所述docker容器镜像内程序使用的资源。
本步骤中,根据docker容器镜像内程序的实际运行情况,可以随时调整docker容器镜像内程序所使用的资源,例如调整中央处理器(cpu)、内存的使用数量。以满足实际的业务需求,同时也可以节省系统资源。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。