CN111464373A - 一种微服务全链路监控***及方法 - Google Patents
一种微服务全链路监控***及方法 Download PDFInfo
- Publication number
- CN111464373A CN111464373A CN201910048998.5A CN201910048998A CN111464373A CN 111464373 A CN111464373 A CN 111464373A CN 201910048998 A CN201910048998 A CN 201910048998A CN 111464373 A CN111464373 A CN 111464373A
- Authority
- CN
- China
- Prior art keywords
- service
- link
- module
- monitoring
- node
- 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.)
- Pending
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000003860 storage Methods 0.000 claims abstract description 14
- 230000002776 aggregation Effects 0.000 claims abstract description 10
- 238000004220 aggregation Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 18
- 238000007405 data analysis Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 13
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种微服务全链路监控***及方法,属于微服务技术领域。所述微服务全链路监控***,所述***包括:采集框架模块,用于采集服务调用数据和进行链路串联;消息队列模块,用于实时接收来自所述采集框架模块的服务调用数据;计算中心模块,用于向所述消息队列模块订阅服务调用数据,实时聚合存储;监控中心模块,用于读取所述计算中心模块存储的监控数据,并提供监控功能;其中,所述消息队列模块和所述计算中心模块均采用分布式部署方式。本发明提供的微服务全链路监控***及方法,解决了跨线程调用服务的链路埋点问题,代码无侵入,监控便利性和可用性大大提升;解决了跨线程的链路传递难题,适合大规模场景。
Description
技术领域
本发明涉及微服务技术领域,特别涉及一种微服务全链路监控***及方法。
背景技术
目前微服务设计模式在国内已经普及开来,微服务设计模式鼓励服务拆分,方便了代码解耦,但同时也带来了新的问题,使得服务间依赖增加,一个服务往往依赖多个底层服务,调用链路较深,超过三层的服务嵌套调用越来越常见,因此许多问题亟待解决:问题定位困难、性能瓶颈难以发现。
市面上也有不少全链路监控***,有些网上平台的CAT、Spring cloud自带的zipkin,都存在以下几个问题:1、代码侵入性太强,需要显示进行代码编写,进行监控埋点;2、实时性差、计算存在瓶颈,不适合大规模微服务***监控场景,无论是Cat还是ZipKin都存在一个中心节点,进行计算存储(cat存储到mysql,zipkin一般是ES),架构上存的性能瓶颈,可扩展性差;3、链路容易断开,跨线程调用会造成链路断开。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种微服务全链路监控***及方法,解决了跨线程调用服务的链路埋点问题,代码无侵入,监控便利性和可用性大大提升;解决了跨线程的链路传递难题,无需通过硬编码进行跨线程链路传递;提供了分布式扩展能力,适合大规模场景。所述技术方案如下:
第一方面,提供了一种微服务全链路监控***,所述***包括:
采集框架模块,用于采集服务调用数据和进行链路串联;
消息队列模块,用于实时接收来自所述采集框架模块的服务调用数据;
计算中心模块,用于向所述消息队列模块订阅服务调用数据,实时聚合存储;
监控中心模块,用于读取所述计算中心模块存储的监控数据,并提供监控功能;
其中,所述消息队列模块和所述计算中心模块均采用分布式部署方式。
结合第一方面,在第一种可能的实现方式中,所述采集框架模块用于采集包括链路ID、节点ID、服务名称、请求参数、服务器IP、响应时间在内的服务调用数据。
结合第一方面,在第二种可能的实现方式中,所述采集框架模块用于根据调用方传递过来的链路ID、节点ID为当前服务设置链路ID、节点ID或生成新的链路ID、节点ID。
结合第一方面的第一种或第二种可能实现方式的任意一种,在第三至四种可能的实现方式中,所述链路ID为TraceID,所述节点ID为SpanID。
结合第一方面,在第五种可能的实现方式中,所述消息队列模块采用Kafka架构,和/或,所述计算中心模块采用Druid架构。
结合第一方面,在第六种可能的实现方式中,所述监控中心模块用于读取所述计算中心模块存储的监控数据,并提供包括调用链路展示、搜索、监控、告警在内的监控功能。
第二方面,提供了一种结合第一方面所述的微服务全链路监控***的微服务全链路监控方法,所述方法包括数据采集步骤,所述数据采集步骤具体包括以下子步骤:
请求第一服务;
所述采集框架模块为本次调用生成链路ID,为当前请求生成第一节点ID,所述第一服务调用第二服务;
所述采集框架模块获取当前调用的链路ID、节点ID,为第二服务生成第二节点ID,将链路ID、第二节点ID通过参数传递给第二服务;
第二服务处理请求,所述采集框架模块根据传递过来的链路ID、节点ID设置为当前的链路ID、节点ID;
第二服务启动子线程调用第三服务,父线程将链路ID、节点ID信息自动继承给子线程;
所述采集框架模块获取当前调用的链路ID、节点ID,为第三服务生成第三节点ID,将链路ID、第二节点ID通过参数传递给第三服务;
第二服务启动子线程调用第四服务,父线程将链路ID、节点ID信息自动继承给子线程;
所述采集框架模块获取当前调用的链路ID、节点ID,为第三服务生成第四节点ID,将链路ID、第三节点ID通过参数传递给第三服务。
结合第二方面,在第二方面的第一至三种可能实现方式中,所述数据采集步骤具体包括以下子步骤:
请求第一服务;
所述采集框架模块为本次调用生成TraceID,为当前请求生成第一SpanID,所述第一服务调用第二服务;
所述采集框架模块获取当前调用的TraceID、SpanID,为第二服务生成第二SpanID,将TraceID、第二SpanID通过参数传递给第二服务;
第二服务处理请求,所述采集框架模块根据传递过来的TraceID、SpanID设置为当前的TraceID、SpanID;
第二服务启动子线程调用第三服务,父线程将TraceID、SpanID信息自动继承给子线程;
所述采集框架模块获取当前调用的TraceID、SpanID,为第三服务生成第三SpanID,将TraceID、第二SpanID通过参数传递给第三服务;
第二服务启动子线程调用第四服务,父线程将TraceID、SpanID信息自动继承给子线程;
所述采集框架模块获取当前调用的TraceID、SpanID,为第三服务生成第四SpanID,将TraceID、第三SpanID通过参数传递给第三服务。
结合第二方面,在第四至六种可能的实现方式中,所述方法还包括数据分析处理步骤,所述数据分析处理步骤具体包括以下子步骤:
所述采集框架模块采集服务调用数据,发送至所述消息队列模块;
所述计算中心模块从所述消息队列模块拉取服务调用数据,进行聚合存储;
所述监控中心模块从所述计算中心模块读取监控数据,提供包括调用链路展示、搜索、监控、告警在内的监控功能。
结合第二方面的第四至六种可能实现方式的任一种,在第七至九种可能实现方式中,所述数据分析处理步骤具体包括以下子步骤:
所述采集框架模块采集服务调用数据,发送至Kafka架构的所述消息队列模块;
Druid架构的所述计算中心模块从Kafka架构的所述消息队列模块拉取服务调用数据,进行聚合存储;
所述监控中心模块从Druid架构的所述计算中心模块读取监控数据,提供包括调用链路展示、搜索、监控、告警在内的监控功能。
本发明实施例提供的技术方案带来的有益效果是:
1、通过对Spring Mvc、Thrift、Dubbo、Hessian、Protobuf-RPC、Okttp、Rsf等主流框架提供埋点插件,并针对Java提供注解AOP支持,使用方便,只需简单配置,即可进行全链路监控,解决了跨线程调用服务的链路埋点问题,代码无侵入,监控便利性和可用性大大提升;
2、通过配置方式选择监控内容(链路ID、节点ID、***ID、调用方***ID、服务器IP、服务名称、服务类型、处理开始时间、处理结束时间、请求参数、用户ID、响应时间等),使得监控信息可配置;监控数据实时发送kafka,再到Druid实时聚合存储,监控中心可以实时读取druid数据,进行展示、监控,实时性高,再加上kafka、Druid这些优秀的开源框架,吞吐量高、计算力强,提供了分布式扩展能力,适合大规模场景;
3、代码启动子线程调用服务,可以自动获取到父线程的TraceId(链路id)、spanId(节点id),从而保障整个链路完整,解决了跨线程的链路传递难题,无需通过硬编码进行跨线程链路传递。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的微服务全链路监控***结构示意图;
图2是本发明实施例提供的微服务全链路监控***的整体架构工作演示图,是以基于Spring Mvc框架的Http服务为例;
图3是本发明实施例提供的微服务全链路监控***的微服务全链路监控方法流程示意图;
图4是本发明实施例提供的微服务全链路监控***进行全链路监控的链路页面展示图;
图5是本发明实施例提供的微服务全链路监控***进行全链路监控的链路页面展示图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的微服务全链路监控***及方法,通过对Spring Mvc、Thrift、Dubbo、Hessian、Protobuf-RPC、Okttp、Rsf等主流框架提供埋点插件,并针对Java提供注解AOP支持,使用方便,只需简单配置,即可进行全链路监控,解决了跨线程调用服务的链路埋点问题,代码无侵入,监控便利性和可用性大大提升;通过配置方式选择监控内容,使得监控信息可配置;监控数据实时发送kafka,再到Druid实时聚合存储,监控中心可以实时读取druid数据,进行展示、监控,实时性高,再加上kafka、Druid这些优秀的开源框架,吞吐量高、计算力强,提供了分布式扩展能力,适合大规模场景;代码启动子线程调用服务,可以自动获取到父线程的TraceId(链路id)、spanId(节点id),从而保障整个链路完整,解决了跨线程的链路传递难题,无需通过硬编码进行跨线程链路传递。因此,本发明实施例提供的微服务全链路监控***及方法,可广泛应用各种微服务场景下的全链路监控。
下面结合具体实施例,对本发明实施例提供的微服务全链路监控***及方法作详细说明。
图1是本发明实施例提供的微服务全链路监控***结构示意图。如图1所示,本发明实施例提供的微服务全链路监控***,包括采集框架模块11、消息队列模块12、计算中心模块13和监控中心模块41。
其中,采集框架模块11,用于采集服务调用数据和进行链路串联。具体的,采集服务调用数据包括:采集链路ID、节点ID、服务名称、请求参数、服务器IP、响应时间在内的服务调用数据。示例性地,采集框架模块11采集链路ID、节点ID、***ID、调用方***ID、服务器IP、服务名称、服务类型、处理开始时间、处理结束时间、请求参数、用户ID、响应时间等服务调用数据。需要说明的是,根据实际需要,通过配置方式选择监控内容,从而进行多种服务调用数据的采集,本发明实施例对此不加以特别限制。
另外,链路串联的过程具体可包括:根据调用方传递过来的链路ID、节点ID为当前服务设置链路ID、节点ID或生成新的链路ID、节点ID。这里,链路ID设置为TraceID,节点ID设置为SpanID。
具体地,消息队列模块12用于实时接收来自采集框架模块11的服务调用数据;计算中心模块13,用于向消息队列模块12订阅服务调用数据,实时聚合存储;监控中心模块41,用于读取计算中心模块13存储的监控数据,并提供监控功能。其中,所述消息队列模块12和计算中心模块13均采用分布式部署方式。并且,优选地,消息队列模块12采用Kafka架构,计算中心模块13采用Druid架构。另外,优选地,监控中心模块41用于读取计算中心模块13存储的监控数据,并提供包括调用链路展示、搜索、监控、告警在内的监控功能。
图2是本发明实施例提供的微服务全链路监控***的整体架构工作演示图,是以基于Spring Mvc框架的Http服务为例。图3是本发明实施例提供的微服务全链路监控***的微服务全链路监控方法流程示意图,同样是以基于Spring Mvc框架的Http服务为例。图4和图5是本发明实施例提供的微服务全链路监控***进行全链路监控的链路页面展示图。
本发明实施例提供的微服务全链路监控***的微服务全链路监控方法,包括数据采集步骤和数据分析处理步骤。这里,第一服务以服务A为例,第二服务以服务B为例,第三服务以服务C为例,第四服务以服务D为例;第一节点ID以0为例,第二节点ID以0.1为例,第三节点ID以0.1.1为例,第四节点以0.1.2为例;相应地,第一SpanID以SpanID:0为例,第二SpanID以SpanID:0.1为例,第三SpanID以SpanID:0.1.1为例,第四SpanID以SpanID:0.1.2为例。
其中,数据采集步骤具体包括以下子步骤:
页面请求第一服务(服务A);
采集框架模块为本次调用生成链路ID,为当前请求生成第一节点ID(0),
第一服务(服务A)调用第二服务(服务B);
采集框架模块获取当前调用的链路ID、节点ID,为第二服务(服务B)生成第二节点ID(0.1),将链路ID、第二节点ID通过参数传递给第二服务(服务B);
第二服务(服务B)处理请求,采集框架模块根据传递过来的链路ID、节点ID设置为当前的链路ID、节点ID;
第二服务(服务B)启动子线程调用第三服务(服务C),父线程将链路ID、节点ID信息自动继承给子线程;
采集框架模块获取当前调用的链路ID、节点ID,为第三服务(服务C)生成第三节点ID(0.1.1),将链路ID、第二节点ID(0.1)通过参数传递给第三服务(服务C);
第二服务(服务B)启动子线程调用第四服务(服务D),父线程将链路ID、节点ID信息自动继承给子线程;
采集框架模块获取当前调用的链路ID、节点ID,为第三服务(服务C)生成第四节点ID(0.1.2),将链路ID、第三节点ID(0.1.1)通过参数传递给第三服务(服务C)。
优选地,上述数据采集步骤通过以下方式来实现,具体地包括以下子步骤:
页面请求第一服务(服务A);
采集框架模块为本次调用生成TraceID,为当前请求生成第一SpanID(SpanID:0),
第一服务(服务A)调用第二服务(服务B);
采集框架模块获取当前调用的TraceID、SpanID,为第二服务(服务B)生成第二SpanID(SpanID:0.1),将TraceID、第二SpanID通过参数传递给第二服务(服务B);
第二服务(服务B)处理请求,采集框架模块根据传递过来的TraceID、SpanID设置为当前的TraceID、SpanID;
第二服务(服务B)启动子线程调用第三服务(服务C),父线程将TraceID、SpanID信息自动继承给子线程;
采集框架模块获取当前调用的TraceID、SpanID,为第三服务(服务C)生成第三SpanID(SpanID:0.1.1),将TraceID、第二SpanID通过参数传递给第三服务(服务C);
第二服务(服务B)启动子线程调用第四服务(服务D),父线程将TraceID、SpanID信息自动继承给子线程;
采集框架模块获取当前调用的TraceID、SpanID,为第三服务(服务C)生成第四SpanID(SpanID:0.1.1),将TraceID、第三SpanID通过参数传递给第三服务(服务C)。
数据分析处理步骤具体包括以下子步骤:
采集框架模块采集服务调用数据,发送至消息队列模块;
计算中心模块从消息队列模块拉取服务调用数据,进行聚合存储;
监控中心模块从计算中心模块读取监控数据,提供包括调用链路展示、搜索、监控、告警在内的监控功能。
优选地,上述数据分析处理步骤,通过以下方式来实现,具体包括以下子步骤:
采集框架模块采集服务调用数据,发送至Kafka架构的消息队列模块;
Druid架构的计算中心模块从Kafka架构的消息队列模块拉取服务调用数据,进行聚合存储;
监控中心模块从Druid架构的计算中心模块读取监控数据,提供包括调用链路展示、搜索、监控、告警在内的监控功能。
值得注意的是,上述数据采集步骤和数据分析处理步骤的过程,除了上述步骤所述的方式之外,还可以通过其他方式实现该过程,本发明实施例对具体的方式不加以限定。
需要说明的是:上述实施例提供的微服务全链路监控***在触发微服务全链路监控业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将***的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的微服务全链路监控***与实施例微服务全链路监控方法属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
综上所述,本发明实施例提供的微服务全链路监控***及方法,相比现有技术,具有以下有益效果:
1、通过对Spring Mvc、Thrift、Dubbo、Hessian、Protobuf-RPC、Okttp、Rsf等主流框架提供埋点插件,并针对Java提供注解AOP支持,使用方便,只需简单配置,即可进行全链路监控,解决了跨线程调用服务的链路埋点问题,代码无侵入,监控便利性和可用性大大提升;
2、通过配置方式选择监控内容(链路ID、节点ID、***ID、调用方***ID、服务器IP、服务名称、服务类型、处理开始时间、处理结束时间、请求参数、用户ID、响应时间等),使得监控信息可配置;监控数据实时发送kafka,再到Druid实时聚合存储,监控中心可以实时读取druid数据,进行展示、监控,实时性高,再加上kafka、Druid这些优秀的开源框架,吞吐量高、计算力强,提供了分布式扩展能力,适合大规模场景;
3、代码启动子线程调用服务,可以自动获取到父线程的TraceId(链路id)、spanId(节点id),从而保障整个链路完整,解决了跨线程的链路传递难题,无需通过硬编码进行跨线程链路传递。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本申请实施例中是参照根据本申请实施例中实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种微服务全链路监控***,其特征在于,所述***包括:
采集框架模块,用于采集服务调用数据和进行链路串联;
消息队列模块,用于实时接收来自所述采集框架模块的服务调用数据;
计算中心模块,用于向所述消息队列模块订阅服务调用数据,实时聚合存储;
监控中心模块,用于读取所述计算中心模块存储的监控数据,并提供监控功能;
其中,所述消息队列模块和所述计算中心模块均采用分布式部署方式。
2.根据权利要求1所述的***,其特征在于,所述采集框架模块用于采集包括链路ID、节点ID、服务名称、请求参数、服务器IP、响应时间在内的服务调用数据。
3.根据权利要求1所述的***,其特征在于,所述采集框架模块用于根据调用方传递过来的链路ID、节点ID为当前服务设置链路ID、节点ID或生成新的链路ID、节点ID。
4.根据权利要求2或3所述的***,其特征在于,所述链路ID为TraceID,所述节点ID为SpanID。
5.根据权利要求1所述的***,其特征在于,所述消息队列模块采用Kafka架构,和/或,所述计算中心模块采用Druid架构。
6.根据权利要求1所述的***,其特征在于,所述监控中心模块用于读取所述计算中心模块存储的监控数据,并提供包括调用链路展示、搜索、监控、告警在内的监控功能。
7.一种应用于如权利要求1至3任一项所述的微服务全链路监控***的微服务全链路监控方法,其特征在于,所述方法包括数据采集步骤,所述数据采集步骤具体包括以下子步骤:
请求第一服务;
所述采集框架模块为本次调用生成链路ID,为当前请求生成第一节点ID,
所述第一服务调用第二服务;
所述采集框架模块获取当前调用的链路ID、节点ID,为第二服务生成第二节点ID,将链路ID、第二节点ID通过参数传递给第二服务;
第二服务处理请求,所述采集框架模块根据传递过来的链路ID、节点ID设置为当前的链路ID、节点ID;
第二服务启动子线程调用第三服务,父线程将链路ID、节点ID信息自动继承给子线程;
所述采集框架模块获取当前调用的链路ID、节点ID,为第三服务生成第三节点ID,将链路ID、第二节点ID通过参数传递给第三服务;
第二服务启动子线程调用第四服务,父线程将链路ID、节点ID信息自动继承给子线程;
所述采集框架模块获取当前调用的链路ID、节点ID,为第三服务生成第四节点ID,将链路ID、第三节点ID通过参数传递给第三服务。
8.根据权利要求7所述的微服务全链路监控方法,其特征在于,所述数据采集步骤具体包括以下子步骤:
请求第一服务;
所述采集框架模块为本次调用生成TraceID,为当前请求生成第一SpanID,
所述第一服务调用第二服务;
所述采集框架模块获取当前调用的TraceID、SpanID,为第二服务生成第二SpanID,将TraceID、第二SpanID通过参数传递给第二服务;
第二服务处理请求,所述采集框架模块根据传递过来的TraceID、SpanID设置为当前的TraceID、SpanID;
第二服务启动子线程调用第三服务,父线程将TraceID、SpanID信息自动继承给子线程;
所述采集框架模块获取当前调用的TraceID、SpanID,为第三服务生成第三SpanID,将TraceID、第二SpanID通过参数传递给第三服务;
第二服务启动子线程调用第四服务,父线程将TraceID、SpanID信息自动继承给子线程;
所述采集框架模块获取当前调用的TraceID、SpanID,为第三服务生成第四SpanID,将TraceID、第三SpanID通过参数传递给第三服务。
9.根据权利要求7所述的全链路监控方法,其特征在于,所述方法还包括数据分析处理步骤,所述数据分析处理步骤具体包括以下子步骤:
所述采集框架模块采集服务调用数据,发送至所述消息队列模块;
所述计算中心模块从所述消息队列模块拉取服务调用数据,进行聚合存储;
所述监控中心模块从所述计算中心模块读取监控数据,提供包括调用链路展示、搜索、监控、告警在内的监控功能。
10.根据权利要求9所述的全链路监控方法,其特征在于,所述数据分析处理步骤具体包括以下子步骤:
所述采集框架模块采集服务调用数据,发送至Kafka架构的所述消息队列模块;
Druid架构的所述计算中心模块从Kafka架构的所述消息队列模块拉取服务调用数据,进行聚合存储;
所述监控中心模块从Druid架构的所述计算中心模块读取监控数据,提供包括调用链路展示、搜索、监控、告警在内的监控功能。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910048998.5A CN111464373A (zh) | 2019-01-18 | 2019-01-18 | 一种微服务全链路监控***及方法 |
CA3235906A CA3235906A1 (en) | 2019-01-18 | 2019-09-20 | Microservice full-link monitoring system and method |
CA3168303A CA3168303A1 (en) | 2019-01-18 | 2019-09-20 | Microservice full-link monitoring system and method |
PCT/CN2019/106865 WO2020147336A1 (zh) | 2019-01-18 | 2019-09-20 | 一种微服务全链路监控***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910048998.5A CN111464373A (zh) | 2019-01-18 | 2019-01-18 | 一种微服务全链路监控***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111464373A true CN111464373A (zh) | 2020-07-28 |
Family
ID=71614006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910048998.5A Pending CN111464373A (zh) | 2019-01-18 | 2019-01-18 | 一种微服务全链路监控***及方法 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN111464373A (zh) |
CA (2) | CA3235906A1 (zh) |
WO (1) | WO2020147336A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111934793A (zh) * | 2020-07-31 | 2020-11-13 | 中国工商银行股份有限公司 | 一种互联网架构全链路监控方法及装置 |
CN112311894A (zh) * | 2020-11-12 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 用于生成信息的方法、装置、电子设备和计算机可读介质 |
CN112330147A (zh) * | 2020-11-04 | 2021-02-05 | 北京思特奇信息技术股份有限公司 | 一种业务受理信息监控方法、装置及存储介质 |
CN112527537A (zh) * | 2020-11-30 | 2021-03-19 | 北京百度网讯科技有限公司 | 在线服务***的质量监控方法、装置、设备和介质 |
CN113114533A (zh) * | 2021-04-08 | 2021-07-13 | 中国工商银行股份有限公司 | 分布式服务调用的网络耗时展示方法及装置 |
CN113111374A (zh) * | 2021-05-13 | 2021-07-13 | 上海交通大学 | 一种端边云的工业微服务***、数据交互方法及介质 |
CN114172949A (zh) * | 2021-12-10 | 2022-03-11 | 航天信息股份有限公司 | 一种微服务链路监控追踪方法和*** |
CN114710430A (zh) * | 2022-04-06 | 2022-07-05 | 深圳依时货拉拉科技有限公司 | 双向通信的管控方法、计算机可读存储介质和计算机设备 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486786B (zh) * | 2020-11-12 | 2022-08-09 | 贝壳技术有限公司 | 一种调用链路追踪方法及装置 |
CN114629944B (zh) * | 2020-12-11 | 2024-05-14 | 来未来科技(浙江)有限公司 | 一种静态分析微服务***全链路调用情况的方法 |
CN112770137B (zh) * | 2020-12-31 | 2022-06-17 | 重庆空间视创科技有限公司 | 基于微服务数据采集方法 |
CN113157478B (zh) * | 2021-04-21 | 2024-05-10 | 多点(深圳)数字科技有限公司 | 一种分布式***配置化数据采集和业务报警*** |
CN115314542A (zh) * | 2021-04-21 | 2022-11-08 | 深圳联友科技有限公司 | 基于Socket通信协议的链路追踪方法及*** |
CN115473839B (zh) * | 2021-06-11 | 2024-03-05 | 北京字跳网络技术有限公司 | 基于埋点的数据处理方法、装置、设备及存储介质 |
CN113986955B (zh) * | 2021-11-01 | 2024-03-19 | 华青融天(北京)软件股份有限公司 | 业务链的确定方法、装置、电子设备及介质 |
CN116737514B (zh) * | 2023-08-15 | 2023-12-22 | 南京国睿信维软件有限公司 | 一种基于日志与探针解析自动化运维方法 |
CN117743093A (zh) * | 2023-12-20 | 2024-03-22 | 北京优特捷信息技术有限公司 | 一种调用链的数据质量评估方法、装置、设备及介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608188A (zh) * | 2015-12-23 | 2016-05-25 | 北京奇虎科技有限公司 | 数据处理方法和数据处理装置 |
CN106487596A (zh) * | 2016-10-26 | 2017-03-08 | 宜人恒业科技发展(北京)有限公司 | 分布式服务跟踪实现方法 |
US20170093651A1 (en) * | 2015-09-30 | 2017-03-30 | Bank Of America Corporation | Channel accessible single function micro service data collection process for light analytics |
CN106656604A (zh) * | 2016-12-23 | 2017-05-10 | 郑州云海信息技术有限公司 | 微服务请求管理方法、微服务控制器及高并发微服务架构 |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及*** |
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和*** |
CN107135276A (zh) * | 2017-06-28 | 2017-09-05 | 北京中电普华信息技术有限公司 | 一种微服务架构下的全链路监控方法、装置和*** |
US20180026856A1 (en) * | 2016-07-21 | 2018-01-25 | Cisco Technology, Inc. | Orchestrating micro-service deployment based on network policy health |
CN107766205A (zh) * | 2017-10-10 | 2018-03-06 | 武汉大学 | 一种面向微服务调用过程跟踪的监控***及方法 |
CN107979508A (zh) * | 2017-11-24 | 2018-05-01 | 深圳乐信软件技术有限公司 | 微服务测试方法及装置 |
CN108153850A (zh) * | 2017-06-01 | 2018-06-12 | 广州舜飞信息科技有限公司 | 一种用户行为统计分析方法及*** |
CN108173915A (zh) * | 2017-12-21 | 2018-06-15 | 中国联合网络通信集团有限公司 | 调用链处理方法及装置 |
CN108183927A (zh) * | 2017-11-22 | 2018-06-19 | 链家网(北京)科技有限公司 | 一种分布式***中链路调用的监控方法及*** |
US20180248771A1 (en) * | 2017-02-24 | 2018-08-30 | Ciena Corporation | Monitoring and auto-correction systems and methods for microservices |
CN108696400A (zh) * | 2017-04-12 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 网络监测方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9203765B2 (en) * | 2013-08-30 | 2015-12-01 | Cisco Technology, Inc. | Flow based network service insertion using a service chain identifier |
-
2019
- 2019-01-18 CN CN201910048998.5A patent/CN111464373A/zh active Pending
- 2019-09-20 WO PCT/CN2019/106865 patent/WO2020147336A1/zh active Application Filing
- 2019-09-20 CA CA3235906A patent/CA3235906A1/en active Pending
- 2019-09-20 CA CA3168303A patent/CA3168303A1/en active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170093651A1 (en) * | 2015-09-30 | 2017-03-30 | Bank Of America Corporation | Channel accessible single function micro service data collection process for light analytics |
CN105608188A (zh) * | 2015-12-23 | 2016-05-25 | 北京奇虎科技有限公司 | 数据处理方法和数据处理装置 |
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和*** |
US20180026856A1 (en) * | 2016-07-21 | 2018-01-25 | Cisco Technology, Inc. | Orchestrating micro-service deployment based on network policy health |
CN106487596A (zh) * | 2016-10-26 | 2017-03-08 | 宜人恒业科技发展(北京)有限公司 | 分布式服务跟踪实现方法 |
CN106656604A (zh) * | 2016-12-23 | 2017-05-10 | 郑州云海信息技术有限公司 | 微服务请求管理方法、微服务控制器及高并发微服务架构 |
US20180248771A1 (en) * | 2017-02-24 | 2018-08-30 | Ciena Corporation | Monitoring and auto-correction systems and methods for microservices |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及*** |
CN108696400A (zh) * | 2017-04-12 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 网络监测方法和装置 |
CN108153850A (zh) * | 2017-06-01 | 2018-06-12 | 广州舜飞信息科技有限公司 | 一种用户行为统计分析方法及*** |
CN107135276A (zh) * | 2017-06-28 | 2017-09-05 | 北京中电普华信息技术有限公司 | 一种微服务架构下的全链路监控方法、装置和*** |
CN107766205A (zh) * | 2017-10-10 | 2018-03-06 | 武汉大学 | 一种面向微服务调用过程跟踪的监控***及方法 |
CN108183927A (zh) * | 2017-11-22 | 2018-06-19 | 链家网(北京)科技有限公司 | 一种分布式***中链路调用的监控方法及*** |
CN107979508A (zh) * | 2017-11-24 | 2018-05-01 | 深圳乐信软件技术有限公司 | 微服务测试方法及装置 |
CN108173915A (zh) * | 2017-12-21 | 2018-06-15 | 中国联合网络通信集团有限公司 | 调用链处理方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111934793A (zh) * | 2020-07-31 | 2020-11-13 | 中国工商银行股份有限公司 | 一种互联网架构全链路监控方法及装置 |
CN112330147A (zh) * | 2020-11-04 | 2021-02-05 | 北京思特奇信息技术股份有限公司 | 一种业务受理信息监控方法、装置及存储介质 |
CN112311894A (zh) * | 2020-11-12 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 用于生成信息的方法、装置、电子设备和计算机可读介质 |
CN112527537A (zh) * | 2020-11-30 | 2021-03-19 | 北京百度网讯科技有限公司 | 在线服务***的质量监控方法、装置、设备和介质 |
CN112527537B (zh) * | 2020-11-30 | 2023-10-27 | 北京百度网讯科技有限公司 | 在线服务***的质量监控方法、装置、设备和介质 |
CN113114533A (zh) * | 2021-04-08 | 2021-07-13 | 中国工商银行股份有限公司 | 分布式服务调用的网络耗时展示方法及装置 |
CN113111374A (zh) * | 2021-05-13 | 2021-07-13 | 上海交通大学 | 一种端边云的工业微服务***、数据交互方法及介质 |
CN113111374B (zh) * | 2021-05-13 | 2022-09-23 | 上海交通大学 | 一种端边云的工业微服务***、数据交互方法及介质 |
CN114172949A (zh) * | 2021-12-10 | 2022-03-11 | 航天信息股份有限公司 | 一种微服务链路监控追踪方法和*** |
CN114710430A (zh) * | 2022-04-06 | 2022-07-05 | 深圳依时货拉拉科技有限公司 | 双向通信的管控方法、计算机可读存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CA3168303A1 (en) | 2020-07-23 |
CA3235906A1 (en) | 2020-07-23 |
WO2020147336A1 (zh) | 2020-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111464373A (zh) | 一种微服务全链路监控***及方法 | |
CN107453896B (zh) | 多重区块链网络数据处理方法、装置及服务器 | |
CN111752799A (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
CN111352800A (zh) | 大数据集群监控方法及相关设备 | |
CN110781180B (zh) | 一种数据筛选方法和数据筛选装置 | |
CN111177237B (zh) | 一种数据处理***、方法及装置 | |
CN105389160A (zh) | 一种信息发布方法及装置 | |
CN110716848A (zh) | 数据收集方法、装置、电子设备及存储介质 | |
CN111124830B (zh) | 一种微服务的监控方法及装置 | |
CN114265680A (zh) | 一种海量数据处理方法、装置、电子设备及存储介质 | |
CN114676205A (zh) | 事件信息的处理方法及装置 | |
CN110380902B (zh) | 拓扑关系生成方法、装置、电子设备及存储介质 | |
CN110704099B (zh) | 联盟链的构建方法、装置和电子设备 | |
CN110909072B (zh) | 一种数据表建立方法、装置及设备 | |
CN111376255B (zh) | 机器人数据采集方法、装置及终端设备 | |
CN111679922A (zh) | 基于事件驱动的消息发布方法、装置及*** | |
CN116820874A (zh) | 一种企业级大数据组件及应用监控和告警的方法 | |
CN115098254A (zh) | 子任务序列的触发执行方法、***及电子设备 | |
CN111367592B (zh) | 信息处理方法和装置 | |
CN114566173A (zh) | 一种音频混音方法、装置、设备及存储介质 | |
CN113268304A (zh) | 跨平台应用特效生产方法 | |
CN114860566A (zh) | 源代码测试方法、装置、电子设备及存储介质 | |
CN111897704A (zh) | 会话日志分析方法、电子设备及存储介质 | |
CN113568687A (zh) | 展示Web页面的方法、相关设备和计算机可读存储介质 | |
CN111479140A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200728 |
|
RJ01 | Rejection of invention patent application after publication |