CN110457190A - 一种基于区块链的全链路监控方法、装置及*** - Google Patents
一种基于区块链的全链路监控方法、装置及*** Download PDFInfo
- Publication number
- CN110457190A CN110457190A CN201910615435.XA CN201910615435A CN110457190A CN 110457190 A CN110457190 A CN 110457190A CN 201910615435 A CN201910615435 A CN 201910615435A CN 110457190 A CN110457190 A CN 110457190A
- Authority
- CN
- China
- Prior art keywords
- node
- log
- label
- tracking
- father
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于区块链的全链路监控方法、装置及***,所述监控方法包括:首先基于本节点的父节点的追踪标记及本节点的父节点对本节点的调用请求,生成本节点的追踪标签,并将追踪标签和本节点的父节点的哈希值发送至本节点;其次基于所述本节点的追踪标签,生成本节点的追踪数据;然后基于所述本节点的追踪数据与本节点的父节点的哈希值,生成本节点的区块标识;然后基于所述本节点的追踪标签与区块标识,生成本节点的追踪标记;最后基于异步方式,生成本节点的节点日志,并对任意本节点重复上述步骤,直至调用请求完成。本申请中通过区块链技术实现全链路监控的安全性,对节点日志进行收集,为业务***的故障处理提供了保障。
Description
技术领域
本发明属于计算机技术领域,特别涉及一种基于区块链的全链路监控方法、装置及***。
背景技术
随着公司的发展,各业务线使用的***越来越多,每个***专注于某一方面业务问题的解决、提供相关的服务。有些业务线比较复杂,一条完整的业务流会经历几个***,甚至十几个***。有时某个节点出现问题,后续操作便无法进行,现有的分布式***的链路监控,主要包括以下解决方案:
传统的分布式***的链路追踪主要是依靠程序主动打点上报,需要开发人员书写大量的代码实现功能,且切入点不能保证正确性。目前,公司的项目对经过多个***节点的远程过程调用请求,基本都是这种模式,需要在经历的每个***的相关节点添加日志记录,一旦请求出现问题,需打印经历的每个节点的日志,从而确定故障位置,非常低效。
传统的APM(应用性能管理)技术只支持单个应用的性能监控,无法聚合,也不能实现全链路追踪,而且这种方式只是对***性能进行监控,无法对业务问题进行定位。
现有的新型的全链路追踪方法,通过字节码技术,来实现分布式***的自动全链路监控追踪,实现自动记录***的全链路监控,无需修改任何代码,但该方式也有一些缺陷,如无法保证每个节点追踪标记的唯一性,数据可能有篡改的风险。从而如何对全链路进行加密监控及监控数据的处理、分析称为亟需解决的问题。
发明内容
针对上述问题,本发明提供一种基于区块链的全链路监控方法、装置及***,在一次用户调用请求过程中,保证调用数据的安全性及可快速定位故障的可追溯性。
本发明的目的在于提供一种基于区块链的全链路监控方法,所述方法包括:在调用过程中调用请求经过本节点时,基于本节点的父节点的追踪标记及本节点的父节点对本节点的调用请求,生成本节点的追踪标签,并将追踪标签和本节点的父节点的哈希值发送至本节点;
基于所述本节点的追踪标签,生成本节点的追踪数据;
基于所述本节点的追踪数据与本节点的父节点的哈希值,生成本节点的区块标识;
基于所述本节点的追踪标签与区块标识,生成本节点的追踪标记;
基于异步方式,生成本节点的节点日志,并对任意本节点重复上述步骤,直至调用请求完成。
进一步,所述基于所述本节点的追踪数据与本节点的父节点的哈希值,生成本节点的区块标识包括:
基于本节点的追踪数据,采用梅克尔根算法计算本节点的哈希值;
基于所述本节点的父节点的哈希值和计算出的本节点的哈希值组成本节点的区块标识。
进一步,所述节点日志至少包括本节点的追踪标记与本节点的追踪数据。
进一步,所述追踪标签包括调用链标签、本节点标签、本节点的父节点标签、父子节点关系标签。
进一步,所述追踪数据包括以下一种或多种信息:
调用的开始时间、协议类型、调用方地址、调用方端口、请求的服务名、调用耗时、调用结果、异常信息。
进一步,当所述本节点的追踪标签无父节点标签时,所述父子节点关系标签为根标签。
进一步,所述调用链标签、父子节点关系标签、本节点标签及本节点的父节点标签均采用64位整数表示。
进一步,所述方法还包括对节点日志进行采集和存储:
日志收集与存储模块收集节点日志;
将收集的所述节点日志放置于MQ缓存区;
将所述MQ缓存区中的节点日志进行排队,形成消息队列。
进一步,所述方法还包括日志分布式模块通过数据传输模块读取消息队列并进行存储。
进一步,所述方法还包括对节点日志进行离线分析:
日志计算模块根据预设条件计算、汇聚所述日志分布式模块中目标节点日志的指标结果,并将指标结果中的所述节点日志的原始数据放置于查询数据库;
日志计算模块抽取指标结果中节点日志的调用链标签,并将指标结果与所述调用链标签放置于展示模块;
基于展示模块中的所述调用链标签,在查询数据库中调取具有同一调用链标签的节点日志。
进一步,所述对节点日志进行离线分析还包括:
将调取的所述具有同一调用链标签的节点日志按照时间进行排序;
基于节点日志中的父节点标签及父子节点关系标签,形成节点日志的调用栈。
本发明的第二个目的在于提供一种基于区块链的全链路监控装置,所述装置包括:
追踪标签生成及发送模块,用于在调用过程中调用请求经过本节点时,基于本节点的父节点的追踪标记及本节点的父节点对本节点的调用请求,生成本节点的追踪标签,并将追踪标签和本节点的父节点的哈希值发送至本节点;
追踪数据生成模块,用于基于所述本节点的追踪标签,生成本节点的追踪数据;
区块标识生成模块,用于基于所述本节点的追踪数据与本节点的父节点的哈希值,生成本节点的区块标识;
追踪标记生成模块,用于基于所述本节点的追踪标签与区块标识,生成本节点的追踪标记;
日志生成模块,用于基于异步方式,生成本节点的节点日志。
进一步,所述装置还包括日志分布式模块,所述日志分布式模块包括日志收集与存储模块、数据传输模块及日志分析模块,其中,
所述日志收集与存储模块,用于收集节点日志,将收集的所述节点日志放置于MQ缓存区,并将所述MQ缓存区中的节点日志进行排队,形成消息队列。
所述数据传输模块,用于读取消息队列并进行存储;
所述日志分析模块,用于对节点日志进行离线分析。
进一步,所述日志分析模块包括日志计算模块、查询数据库及展示模块,其中,
所述日志计算模块,用于根据预设条件计算、汇聚日志分布式模块中目标节点日志的指标结果,并将指标结果中的节点日志的原始数据放置于查询数据库;且还用于抽取的指标结果中节点日志的调用链标签,并将指标结果及所述调用链标签发送给展示模块;
所述展示模块,用于放置所述指标结果及指标结果中节点日志的调用链标签;
所述查询数据库,用于存储指标结果中的节点日志的原始数据。
本发明的第三个目的在于提供一种基于区块链的全链路监控***,所述监控***包括:至少一个处理器以及至少一个存储器,其中,
所述存储器存储执行上述所述方法的计算机程序,所述处理器调用所述存储器中的计算机程序以执行上述所述的方法。
本发明所述的监控方法、装置及***具有以下有益效果:
1、采用异步方式在追踪调用过程中,生成节点日志,消减高峰请求时的***压力,保证业务的平稳进行。
2、所述本节点的追踪标记中包括区块标识,且在确定每个追踪标记的追踪数据时,均依赖于父节点的追踪标记,从而保障了数据之间的关联性,同时利用区块链技术,保障了追踪数据的安全性及不可篡改性,从而提升业务***的安全性能。
3、在每个应用中设置日志收集器,实现负载均衡,且在日志收集器中增加MQ缓存区,从而将收集的节点日志形成消息队列,进行排队缓冲,优化***性能。
4、将同一条调用链的日志汇总在一起,对节点日志进行离线分析,加快业务异常查询速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明实施例中的一种基于区块链的全链路监控方法流程示意图;
图2示出了本发明实施例中的采集节点日志的流程示意图;
图3示出了本发明实施例中的离线分析节点日志的流程示意图;
图4示出了本发明实施例中一种基于区块链的全链路监控方法的业务***调用示意图;
图5示出了本发明实施例中一种基于区块链的全链路监控装置的结构示意图;
图6示出了本发明实施例中日志分布式模块的结构示意图;
图7示出了本发明实施例中的一种基于区块链的全链路监控***的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
所述全链路监控是在分布式***中针对一次用户请求过程的一种分布式服务追踪,其中,所述分布式服务追踪包括记录或者确定分布式服务在一次用户请求过程中的调用链及调用链上涉及的全部节点的信息。一个分布式***一般包括多个业务模块,其中,各个业务模块部署在不同的服务器上,且各个业务模块能够通过接口进行数据交互。本发明实施例中,将业务模块称为应用,若某一个应用在一次用户请求过程中被调用时,则该应用为一次用户请求过程中经过的节点,每个节点均有相适用Trace ID(本节点标签)表示。优选的,一般情况下分布式***中的调用为远程过程调用。以图4所示的分布式***为例,包括的门店***前端、交撮***、超级宝***、查客***、CCTV(监控)***、金融***均为应用,则在一次用户请求过程中经过的节点分别为门店***前端节点、交撮***节点、超级宝***节点、查客***节点、CCTV***节点、金融***节点。
当用户发起调用请求时,如图1所示,本发明实施例中介绍了一种基于区块链的全链路监控方法,所述监控方法具体包括以下步骤:
步骤一:在调用过程中调用请求经过本节点时,基于本节点的父节点的追踪标记及本节点的父节点对本节点的调用请求,生成本节点的追踪标签,并将追踪标签和本节点的父节点的哈希值发送至本节点;
所述本节点的追踪标签包括调用链标签、本节点标签Trace ID、本节点的父节点标签parent ID、父子节点关系标签span ID。一个调用链代表一次调用请求,一个调用链包括一个或多个调用请求经过的节点,同一个调用链上的每个节点中均包括相同的调用链标签,从而面对复杂的调用链路,仅通过调用链标签即可将同一调用链上节点日志查找出来,实现***异常的快速查询。进一步,所述一次用户发起的调用请求经过的节点包括客户端节点、服务端节点、客户端与服务端双向型节点。
将一次用户发起的调用请求正在经过的节点称为本节点,从而一个请求形成的调用链中,调用请求经过的本节点的下一节点为本节点的子节点,调用请求经过的本节点的上一节点为本节点的父节点。其中,当调用请求经过本节点的子节点时,此时本节点为子节点的父节点。进而通过所述本节点标签Trace ID区分一次调用请求经过的所有节点,通过本节点的父节点标签parent ID、父子节点关系标签span ID能够组织起来一次完整调用链的父子关系,明确调用链中各个节点在调用链中的位置;当本节点的追踪数据中无本节点的父节点标签parent ID时,则所述父子节点关系标签span ID成为根标签root span,则本节点为其所在调用链的入口。通过各个标签保证节点在调用链中位置的唯一性,表明各个节点之间的相关性,方便对调用结果中的各个节点进行组织、查看。
本实施例中,所述调用链标签、本节点标签Trace ID、本节点的父节点标签parentID、父子节点关系标签span ID均采用64位字符串表示。优选的,为了保证了各个标签数据的唯一性,基于redis的分布式ID生成器生成各个标签,主要是利用redis的lua脚本执行功能,在每个节点上通过lua脚本生成各个标签,其中,所述字符串可以是16进制的,由于分布式***中各个业务***分布在几十台服务器上,从而在业务执行的过程中,涉及生成大量的各个标签,则通过lua脚本能够生成各个标签,且不会重复,从而能够高效、稳定的对分布式***中的节点进行监控、标记。
本实施例中,基于本节点的父节点的追踪标记及本节点的父节点对本节点的调用请求,生成本节点的追踪标签,并将追踪标签和本节点的父节点的哈希值发送至本节点具体包括:基于本节点的父节点的追踪标记,生成调用链标签、本节点的父节点标签parentID及父子节点关系标签span ID;基于所述调用链标签、本节点的父节点标签parent ID及父子节点关系标签span ID,生成本节点标签Trace ID,将所述调用链标签、本节点标签Trace ID、本节点的父节点标签parent ID、父子节点关系标签span ID及本节点的父节点的哈希值封装至本节点的父节点对本节点的远程调用请求中;并将已封装标签及本节点的父节点的哈希值的调用请求发送至本节点。在调用过程中,将本节点的父节点的哈希值封装至所述本节点的父节点对本节点的远程调用请求中;并将已封装标签的调用请求发送至本节点。使得父子节点之前存在不可篡改的依赖关系,实现数据的唯一性及安全性。
步骤二:基于所述本节点的追踪标签,生成本节点的追踪数据。其中,所述追踪数据为调用请求经过本节点时,产生的数据,可以包括:调用的开始时间、协议类型、调用方地址、调用方端口、请求的服务名、调用耗时、调用结果、异常信息。每一个节点的追踪数据均依赖于其父节点的追踪标记生成,可以保证每个节点追踪数据的唯一性,能够完整的记录追踪信息。
步骤三:基于所述本节点的追踪数据与本节点的父节点的哈希值,确定本节点的区块标识;
本节点的区块标识包括本节点的父节点的区块哈希值和本节点区块的哈希值,其中,基于本节点的追踪数据,采用梅克尔根算法计算本节点区块的哈希值。优选的,本节点中也可以包括多个子操作,一个或多个的子操作数据构成所述追踪数据,进一步,由于采用梅克尔根算法,每个子操作均具有相适应的哈希值,最终得出梅克尔根(即本节点区块的哈希值)。采用区块链技术生成的每个节点的追踪标记,保证每个节点的追踪标记的绝对唯一并且不可篡改。且进一步,将本节点的父节点的父节点的哈希值组成本节点区块标识,有助于快速归纳和校验区块数据的存在性和完整性,进一步增加了***数据的安全性。即由于本区块标识中包括其父节点的哈希值,从而本节点的区块标识中包括了本节点的父节点的所有追踪数据,从而在一个调用链中,任意节点的内部任何节点数据的改动,总会引起调用链中所有节点区块的哈希值变化,进而引起节点区块标识发生变化。进而对任意节点的追踪数据进行了篡改,则节点区块标识中的哈希值发生变化,由于其子节点的区块标识中包含前一个节点的哈希值,从而所述前一个节点的哈希值,将会跟篡改后的节点区块标识中的哈希值不匹配。只有依次类推修改所述节点区块标识中哈希值才能修改成功,但由于哈希算法的复杂性,在计算的过程中并不能从结果推算出输入的数据,从而很难对节点数据进行篡改,且篡改也能够及时发现,保证了***数据的完整性与安全性。
步骤四:基于所述本节点的追踪标签与区块标识,生成本节点的追踪标记;本节点的追踪标记中包括追踪标签与区块标识,保证一个调用请求生成调用链的安全性及一旦调用过程中发生问题能够根据标签信息快速对故障进行定位,且子节点生成的追踪标记依赖于父级节点的标记从而保证了链路的完整性,不可篡改性。
示例性的,如图4所示,分布式***涉及多个业务***,其中包括门店***、交撮***、超级宝***、查客***、CCTV(监控)***、金融***,其中,在服务过程中,Rpc为远程过程调用协议,Rpc1-5为不同业务***之间的远程调用的标记,例如:Rpc1代表的是门店***前端与交撮***之间的远程请求与响应。用户一般在门店***前端(也可以是客户端APP)进行操作,当用户向所述门店***前端发送调用请求,则在远程调用请求过程中,首先到达门店***前端节点,生成门店***前端节点追踪标记,门店***节点请求交撮***节点,根据门店***节点的追踪标记和门店***对交撮***节点的远程调用请求,生成交撮节点的追踪数据及追踪标签,并基于所述追踪数据采用区块链技术生成一个唯一的且不可篡改的跟门店***节点关联的交撮节点区块标识,最终基于所述交撮节点追踪标签与区块标识,生成交撮节点的追踪标记。整个请求过程还没有结束,交撮节点返回门店节点的结果依赖于超级宝节点和查客节点,因此,交撮节点同时对超级宝节点和查客节点进行远程过程调用,结合交撮节点的追踪标记和分别对超级宝节点和查客节点的远程调用请求,分别最终生成超级宝节点和查客节点的追踪标记,查客节点继续对CCTV节点(监控节点)进行远程过程调用,结合查客节点的追踪标记和查客节点对CCTV节点的远程调用请求,最终生成CCTV节点的追踪标记,最后,结合CCTV节点的追踪标记和CCTV节点对金融节点的远程调用请求,最终生成金融节点的追踪标记。每个节点均采用了区块链技术,有效的实现了***数据的安全处理。
步骤五:基于异步方式,生成本节点的节点日志,并对任意本节点重复上述步骤,直至调用请求完成。具体的,所述异步方式为异步log(日志)方式,既不影响任意节点在完成调用时生成节点日志,也不影响调用过程中的调用请求继续经过下一节点。现有调用过程中生成本节点的追踪标记后,则需要继续生成追踪日志,且仅在追踪日志生成后,所述调用请求再继续经过下一个调用节点,则当分布式***中出现业务***的每秒查询率QPS(Queries-per-second)较高的情况时,严重影响***性能,从而本申请采用异步方式生成节点的节点日志,有效的保证了分布式***中业务的平稳进行。
所述节点日志至少包括本节点的追踪标记与本节点的追踪数据,即至少包括以下一种或多种信息:调用链标签、本节点标签、本节点的父节点标签、父子节点关系标签、本节点的区块标识、调用的开始时间、协议类型、调用方地址、调用方端口、请求的服务名、调用耗时、调用结果、异常信息。节点日志全面完整的记录节点在接受调用过程中的数据,完善了追踪数据,且本节点的区块标识还能够用于检查日志数据是否被篡改,使得节点日志更具有可靠性。优选的,所述节点日志还预留有可扩展字段,以为后续扩展做准备。
所述基于区块链的全链路监控方法还包括对节点日志进行采集和存储,如图2所示,具体包括以下步骤:
A1:日志收集与存储模块收集节点日志;
A2:将收集的所述节点日志放置于MQ缓存区;
A3:将所述MQ缓存区中的节点日志进行排队,形成消息队列。
本实施例中,基于区块链技术的全链路监控***包括一个或多个日志收集与存储模块,且所述一个或多个日志收集与存储模块中均设置有日志收集器collector,用于存放节点日志,其中,由于一个调用链的中调用节点来自于多个业务***,从而所述日志收集与存储模块中也可以形成多级的collector,进而形成类似于pub/sub架构,进而在采集节点日志时,实现业务***负载均衡。优选的,日志收集与存储模块采用守护进程deamon将收集的节点日志发送至日志收集器collector,使得节点日志的抓取更加快速,优化***运行性能。在日志收集与存储模块中的日志收集器collector中还设置有MQ(Message Queue)缓存区,从而在MQ缓存区实现将收集的节点日志以消息队列的形式进行缓存,减少了由于日志量过多而造成业务***响应过慢的问题,优化业务***性能。
进而,所述基于区块链的全链路监控方法还包括日志分布式模块通过数据传输模块logstash读取所述消息队列、并进行存储。其中,所述logstash是一个开源数据收集引擎,具有实时管道功能。logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地,由于***的日志数据量一般都很大,数据传输模块logstash能够实现快速的日志存储。
如图3所示,所述基于区块链的全链路监控方法还包括对节点日志进行离线分析,具体包括以下步骤:
日志计算模块根据预设条件计算、汇聚日志分布式模块中目标节点日志的指标结果,并将指标结果中的节点日志的原始数据放置于查询数据库;
日志计算模块抽取指标结果中节点日志的调用链标签,并将指标结果与所述调用链标签放置于展示模块;
基于所述展示模块中的所述调用链标签,在查询数据库中调取具有同一调用链标签的节点日志。
具体的,预设条件可以包括时间、标签等,例如:时间范围、调用链标签等。日志计算模块一般采用实时计算框架storm完成对日志分布式模块中符合分析要求(符合预设条件)的节点日志进行计算、汇聚,其中,计算汇聚可以是对节点日志进行初步筛选,计算出节点日志的数量,并将节点日志基于标签信息进行罗列等。通过storm筛选可追溯的性能数据,量化IT运维部门业务价值,提高日志分析效率。所述实时计算框架storm将将指标结果与所述调用链标签放置于展示模块,其中,为了方便节点日志查询,所述展示模块可以是elasticsearch(一个基于Lucene的搜索服务器)。基于展示模块中的所述调用链标签,筛选符合预设条件的调用链标签,在一定程度上,减少了***的运算负担,提升***运行性能。则基于所述筛选出的调用链标签到查询数据库查询具有同一调用链标签的原始数据,其中,所述查询数据库可以是Hbase(分布式的、面向列的开源数据库),由于HBase是三维有序存储的,其中,三维指的是:RowKey(行健)、column key(column Family和qualifier)、TimeStamp(时间戳),通过这三个维度我们可以对HBase中的数据进行快速定位。本发明实施例中所述Hbase的rowkey为traceID。进一步,采用所述数据传输模块logstash将指标结果中的节点日志的原始数据放置于查询数据库。用户不用调用大量无关的节点日志,便能快速的筛选、查询到节点日志,优化了日志分析过程。
进一步具体的,所述对节点日志进行离线分析还包括首先将所述具有同一调用链标签的节点日志,按照时间进行排序;然后基于节点日志中的父节点标签及父子节点关系标签,形成节点日志的调用栈。将同一条调用链的日志汇总在一起,从调用链全流程性能角度识别关键调用链,并进行优化,能够快速定位代码性能问题,协助开发人员持续性的优化代码。
优选的,所述方法还可以包括对所述节点日志进行实时分析,即不做汇总,对单条节点日志直接分析。或者在业务***出现抛异常或者超时的时候,所述方法还包括在日志分布式模块的日志数据库中直接调取显示所有节点日志的调用链标签,利用调用链标签查询调用链情况,定位故障问题。
所述基于区块链的全链路监控方法还包括对节点日志采用报表的形式进行可视化展示。具体的,可采用开源的可视化套件grafana来进行日志数据的可视化展示。grafana是跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知,使得使用者一目了然,提高使用者的使用体验。
以一个中心化的处理集群把所有服务器上的日志增量地收集到集群当中进行处理。只要监控***中报错,然后把调用链标签作为异常日志当中的关键字打出来,可知直观的看到调用过程中调用请求在***里面的调用数据,通过调用链标签可以很方便地显示这次调用请求故障位置,通过这样的方式我们可以很快速的追溯到这次分布式调用链路中的故障原因。
如图5所示,本发明实施例中介绍了一种基于区块链的全链路监控装置,所述装置包括数据连接的追踪标签生成及发送模块、追踪数据生成模块、区块标识生成模块、追踪标记生成模块、日志生成模块及日志分布式模块;其中,所述追踪标签生成及发送模块用于在调用过程中调用请求经过本节点时,基于本节点的父节点的追踪标记及本节点的父节点对本节点的调用请求,生成本节点的追踪标签,并将追踪标签和本节点的父节点的哈希值发送至本节点;所述追踪数据生成模块用于基于所述本节点的追踪标签,生成本节点的追踪数据;所述区块标识生成模块用于基于所述本节点的追踪数据与本节点的父节点的哈希值,生成本节点的区块标识;所述追踪标记生成模块用于基于所述本节点的追踪标签与区块标识,生成本节点的追踪标记;一个节点的区块标识将上一个节点的区块标识中自身节点的哈希值最为区块标识的一部分,从而可以保证整个请求过程的不可篡改,增强***的安全性及可靠性。所述日志生成模块用于基于异步方式,生成本节点的节点日志。采用异步方式消减高峰请求时的***压力,保证业务的平稳进行。
所述日志分布式模块用于手机、存储及分析日志,具体的如图6所示,所述日志分布式模块包括日志收集与存储模块、数据传输模块及日志分析模块,其中,所述日志收集与存储模块用于收集节点日志,将收集的所述节点日志放置于MQ缓存区,并将所述MQ缓存区中的节点日志进行排队,形成消息队列。所述数据传输模块用于读取消息队列并存储。使得***支持分布式日志采集的方案,同时增加MQ作为缓冲,优化日志采集及存储过程的性能,提升用户体验。优选的,所述日志分布式模块中还包括日志数据库,即用于存储数据传输模块读取的消息队列,且所述数据传输模块还能够从所述日志数据库中调取节点日志的任意信息或者一个日志所有的原始数据。所述日志分析模块用于对节点日志进行离线分析。图6中,所述日志分析模块包括日志计算模块、查询数据库及展示模块,其中,所述日志计算模块用于根据预设条件计算、汇聚日志分布式模块的日志数据库的中目标节点日志的指标结果,并将指标结果中的节点日志的原始数据放置于查询数据库;所述日志计算模块还用于抽取的指标结果中节点日志的调用链标签,并将指标结果及所述调用链标签发送给展示模块;所述展示模块用于放置所述指标结果及其节点日志的调用链标签;所述查询数据库用于存储指标结果中的节点日志的原始数据,还供用户调取包括同一调用链标签的节点日志。所述日志分析模块还包括将所述具有同一调用链标签的节点日志按照时间进行排序;基于节点日志中的父节点标签及父子节点关系标签,形成节点日志的调用栈可从请求链路的任何一个位置利用Trace ID查询调用链情况,定位问题,并且可以溯源到请求的起始位置。增加***日志分析能力,节约故障查找时间,优化日志分析***,从而大大提升工作效率,节约公司成本。
如图7所示,本发明实施例中还介绍了一种基于区块链的全链路监控***,所述监控***包括:至少一个处理器以及至少一个存储器,其中,
所述存储器存储执行上述所述方法的计算机程序,所述处理器调用所述存储器中的计算机程序以执行上述所述的方法。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种基于区块链的全链路监控方法,其特征在于,所述方法包括:
在调用过程中调用请求经过本节点时,基于本节点的父节点的追踪标记及本节点的父节点对本节点的调用请求,生成本节点的追踪标签,并将追踪标签和本节点的父节点的哈希值发送至本节点;
基于所述本节点的追踪标签,生成本节点的追踪数据;
基于所述本节点的追踪数据与本节点的父节点的哈希值,生成本节点的区块标识;
基于所述本节点的追踪标签与区块标识,生成本节点的追踪标记;
基于异步方式,生成本节点的节点日志,并对任意本节点重复上述步骤,直至调用请求完成。
2.根据权利要求1所述的监控方法,其特征在于,基于所述本节点的追踪数据与本节点的父节点的哈希值,生成本节点的区块标识包括:
基于本节点的追踪数据,采用梅克尔根算法计算本节点的哈希值;
基于所述本节点的父节点的哈希值和计算出的本节点的哈希值组成本节点的区块标识。
3.根据权利要求1所述的监控方法,其特征在于,所述节点日志至少包括本节点的追踪标记与本节点的追踪数据。
4.根据权利要求1所述的监控方法,其特征在于,所述追踪标签包括调用链标签、本节点标签、本节点的父节点标签、父子节点关系标签。
5.根据权利要求1-3任一所述的监控方法,其特征在于,所述追踪数据包括以下一种或多种信息:
调用的开始时间、协议类型、调用方地址、调用方端口、请求的服务名、调用耗时、调用结果、异常信息。
6.根据权利要求4所述的监控方法,其特征在于,当所述本节点的追踪标签无父节点标签时,所述父子节点关系标签为根标签。
7.根据权利要求4或6所述的监控方法,其特征在于,所述调用链标签、父子节点关系标签、本节点标签及本节点的父节点标签均采用64位整数表示。
8.根据权利要求1-4、6任一所述的监控方法,其特征在于,所述方法还包括对节点日志进行采集和存储:
日志收集与存储模块收集节点日志;
将收集的所述节点日志放置于MQ缓存区;
将所述MQ缓存区中的节点日志进行排队,形成消息队列。
9.根据权利要求8所述的监控方法,其特征在于,所述方法还包括日志分布式模块通过数据传输模块读取消息队列并进行存储。
10.根据权利要求9所述的监控方法,其特征在于,所述方法还包括对节点日志进行离线分析:
日志计算模块根据预设条件计算、汇聚所述日志分布式模块中目标节点日志的指标结果,并将指标结果中的所述节点日志的原始数据放置于查询数据库;
日志计算模块抽取指标结果中节点日志的调用链标签,并将指标结果与所述调用链标签放置于展示模块;
基于展示模块中的所述调用链标签,在查询数据库中调取具有同一调用链标签的节点日志。
11.根据权利要求10所述的监控方法,其特征在于,所述对节点日志进行离线分析还包括:
将调取的所述具有同一调用链标签的节点日志按照时间进行排序;
基于节点日志中的父节点标签及父子节点关系标签,形成节点日志的调用栈。
12.一种基于区块链的全链路监控装置,其特征在于,所述装置包括:
追踪标签生成及发送模块,用于在调用过程中调用请求经过本节点时,基于本节点的父节点的追踪标记及本节点的父节点对本节点的调用请求,生成本节点的追踪标签,并将追踪标签和本节点的父节点的哈希值发送至本节点;
追踪数据生成模块,用于基于所述本节点的追踪标签,生成本节点的追踪数据;
区块标识生成模块,用于基于所述本节点的追踪数据与本节点的父节点的哈希值,生成本节点的区块标识;
追踪标记生成模块,用于基于所述本节点的追踪标签与区块标识,生成本节点的追踪标记;
日志生成模块,用于基于异步方式,生成本节点的节点日志。
13.根据权利要求12所述的监控装置,其特征在于,所述装置还包括日志分布式模块,所述日志分布式模块包括日志收集与存储模块、数据传输模块及日志分析模块,其中,
所述日志收集与存储模块,用于收集节点日志,将收集的所述节点日志放置于MQ缓存区,并将所述MQ缓存区中的节点日志进行排队,形成消息队列;
所述数据传输模块,用于读取消息队列并进行存储;
所述日志分析模块,用于对节点日志进行离线分析。
14.根据权利要求13所述的监控装置,其特征在于,所述日志分析模块包括日志计算模块、查询数据库及展示模块,其中,
所述日志计算模块,用于根据预设条件计算、汇聚日志分布式模块中目标节点日志的指标结果,并将指标结果中的节点日志的原始数据放置于查询数据库;且还用于抽取的指标结果中节点日志的调用链标签,并将指标结果及所述调用链标签发送给展示模块;
所述展示模块,用于放置所述指标结果及指标结果中节点日志的调用链标签;
所述查询数据库,用于存储指标结果中的节点日志的原始数据。
15.一种基于区块链的全链路监控***,其特征在于,所述监控***包括:至少一个处理器以及至少一个存储器,其中,
所述存储器存储执行权利要求1-11任一所述方法的计算机程序,所述处理器调用所述存储器中的计算机程序以执行权利要求1-11任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910615435.XA CN110457190B (zh) | 2019-07-09 | 2019-07-09 | 一种基于区块链的全链路监控方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910615435.XA CN110457190B (zh) | 2019-07-09 | 2019-07-09 | 一种基于区块链的全链路监控方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457190A true CN110457190A (zh) | 2019-11-15 |
CN110457190B CN110457190B (zh) | 2023-06-20 |
Family
ID=68482469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910615435.XA Active CN110457190B (zh) | 2019-07-09 | 2019-07-09 | 一种基于区块链的全链路监控方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457190B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110865927A (zh) * | 2019-11-20 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 区块链调用链路异常检测方法、装置和计算机设备 |
CN112348208A (zh) * | 2020-10-13 | 2021-02-09 | 贵州电网有限责任公司 | 一种计量采集关键业务全链路监测***及方法 |
CN112363697A (zh) * | 2020-11-12 | 2021-02-12 | 北京云宽志业网络技术有限公司 | 数据校验方法、装置、设备及存储介质 |
CN112463561A (zh) * | 2020-11-20 | 2021-03-09 | 中国建设银行股份有限公司 | 一种故障定位方法、装置、设备及存储介质 |
CN112737856A (zh) * | 2020-12-31 | 2021-04-30 | 青岛海尔科技有限公司 | 链路追踪方法和装置、存储介质及电子装置 |
CN112995040A (zh) * | 2021-04-29 | 2021-06-18 | 中国人民解放军国防科技大学 | 一种基于设备标识计算的报文路径溯源方法及装置 |
CN113435786A (zh) * | 2021-07-21 | 2021-09-24 | 杭州云象网络技术有限公司 | 用于节点管理的区块链运维监管方法 |
CN113448745A (zh) * | 2020-10-14 | 2021-09-28 | 北京新氧万维科技咨询有限公司 | 服务请求的追踪方法、装置及电子设备 |
CN113672487A (zh) * | 2021-08-24 | 2021-11-19 | 济南浪潮数据技术有限公司 | 一种消息追踪方法、装置、***及计算机可读存储介质 |
WO2022020073A1 (en) * | 2020-07-19 | 2022-01-27 | Metawork Corporation | Investigative platform for software application development and production |
CN114003472A (zh) * | 2022-01-04 | 2022-02-01 | 连连(杭州)信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN114116396A (zh) * | 2021-11-29 | 2022-03-01 | 重庆富民银行股份有限公司 | 一种全链路追踪方法、***、存储介质及设备 |
CN116962407A (zh) * | 2023-07-31 | 2023-10-27 | 上海中汇亿达金融信息技术有限公司 | 分布式链路标签的处理方法,装置及应用 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017071134A1 (zh) * | 2015-10-28 | 2017-05-04 | 北京汇商融通信息技术有限公司 | 分布式跟踪*** |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及*** |
WO2017181783A1 (zh) * | 2016-04-20 | 2017-10-26 | 中兴通讯股份有限公司 | 虚拟化服务监控方法和装置 |
CN107943649A (zh) * | 2017-11-21 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种分布式集群性能监控***及方法 |
CN109104302A (zh) * | 2018-07-18 | 2018-12-28 | 杭州鑫合汇互联网金融服务有限公司 | 一种全链路追踪监控方法 |
CN109726016A (zh) * | 2017-10-30 | 2019-05-07 | 阿里巴巴集团控股有限公司 | 一种用于分布式***的链路追踪方法、装置和*** |
-
2019
- 2019-07-09 CN CN201910615435.XA patent/CN110457190B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017071134A1 (zh) * | 2015-10-28 | 2017-05-04 | 北京汇商融通信息技术有限公司 | 分布式跟踪*** |
WO2017181783A1 (zh) * | 2016-04-20 | 2017-10-26 | 中兴通讯股份有限公司 | 虚拟化服务监控方法和装置 |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及*** |
CN109726016A (zh) * | 2017-10-30 | 2019-05-07 | 阿里巴巴集团控股有限公司 | 一种用于分布式***的链路追踪方法、装置和*** |
CN107943649A (zh) * | 2017-11-21 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种分布式集群性能监控***及方法 |
CN109104302A (zh) * | 2018-07-18 | 2018-12-28 | 杭州鑫合汇互联网金融服务有限公司 | 一种全链路追踪监控方法 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110865927A (zh) * | 2019-11-20 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 区块链调用链路异常检测方法、装置和计算机设备 |
US11416376B2 (en) | 2020-07-19 | 2022-08-16 | Metawork Corporation | Investigative platform for software application development and production |
WO2022020073A1 (en) * | 2020-07-19 | 2022-01-27 | Metawork Corporation | Investigative platform for software application development and production |
CN112348208A (zh) * | 2020-10-13 | 2021-02-09 | 贵州电网有限责任公司 | 一种计量采集关键业务全链路监测***及方法 |
CN113448745A (zh) * | 2020-10-14 | 2021-09-28 | 北京新氧万维科技咨询有限公司 | 服务请求的追踪方法、装置及电子设备 |
CN112363697A (zh) * | 2020-11-12 | 2021-02-12 | 北京云宽志业网络技术有限公司 | 数据校验方法、装置、设备及存储介质 |
CN112363697B (zh) * | 2020-11-12 | 2021-10-12 | 北京云宽志业网络技术有限公司 | 数据校验方法、装置、设备及存储介质 |
CN112463561A (zh) * | 2020-11-20 | 2021-03-09 | 中国建设银行股份有限公司 | 一种故障定位方法、装置、设备及存储介质 |
CN112737856A (zh) * | 2020-12-31 | 2021-04-30 | 青岛海尔科技有限公司 | 链路追踪方法和装置、存储介质及电子装置 |
CN112995040B (zh) * | 2021-04-29 | 2021-08-03 | 中国人民解放军国防科技大学 | 一种基于设备标识计算的报文路径溯源方法及装置 |
CN112995040A (zh) * | 2021-04-29 | 2021-06-18 | 中国人民解放军国防科技大学 | 一种基于设备标识计算的报文路径溯源方法及装置 |
CN113435786A (zh) * | 2021-07-21 | 2021-09-24 | 杭州云象网络技术有限公司 | 用于节点管理的区块链运维监管方法 |
CN113672487A (zh) * | 2021-08-24 | 2021-11-19 | 济南浪潮数据技术有限公司 | 一种消息追踪方法、装置、***及计算机可读存储介质 |
CN114116396A (zh) * | 2021-11-29 | 2022-03-01 | 重庆富民银行股份有限公司 | 一种全链路追踪方法、***、存储介质及设备 |
CN114003472A (zh) * | 2022-01-04 | 2022-02-01 | 连连(杭州)信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN114003472B (zh) * | 2022-01-04 | 2022-04-12 | 连连(杭州)信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN116962407A (zh) * | 2023-07-31 | 2023-10-27 | 上海中汇亿达金融信息技术有限公司 | 分布式链路标签的处理方法,装置及应用 |
CN116962407B (zh) * | 2023-07-31 | 2024-02-13 | 上海中汇亿达金融信息技术有限公司 | 分布式链路标签的处理方法和装置、分布式链路追踪***及分布式*** |
Also Published As
Publication number | Publication date |
---|---|
CN110457190B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457190A (zh) | 一种基于区块链的全链路监控方法、装置及*** | |
CN109961204B (zh) | 一种微服务架构下业务质量分析方法和*** | |
US9491104B2 (en) | System and method for storing/caching, searching for, and accessing data | |
CN105069703B (zh) | 一种电网海量数据管理方法 | |
TWI662426B (zh) | 分布式流式資料處理的方法和裝置 | |
CN108471366A (zh) | 一种面向云原生应用的立体监控*** | |
CN109460307B (zh) | 基于日志埋点的微服务调用跟踪方法及其*** | |
CN108038207A (zh) | 一种日志数据处理***、方法和服务器 | |
CN111782620B (zh) | 一种信用链路自动跟踪平台及其方法 | |
CN107169094A (zh) | 信息聚合方法及装置 | |
US11755531B1 (en) | System and method for storage of data utilizing a persistent queue | |
CN101188561A (zh) | 基于自定义模板的通用业务数据通讯方法与*** | |
CN110162512A (zh) | 一种日志检索方法、装置及存储介质 | |
CN113067717A (zh) | 网络请求日志链式跟踪方法、全链路调用监控***和介质 | |
CN114780335A (zh) | 监测数据的关联方法、装置、计算机设备和存储介质 | |
CN114189274A (zh) | 一种基于微服务的卫星地面站监控*** | |
CN110362626A (zh) | 一种基于区块链网络便民查询***及使用方法 | |
CN113094166B (zh) | 一种链路追踪方法、装置、介质和计算设备 | |
CN107171873A (zh) | 一种消息处理的方法和装置 | |
CN105320711A (zh) | 巨量数据存取方法以及使用该方法的*** | |
CN117633112A (zh) | 一种***事件的处理方法、设备及存储介质 | |
CN103957119A (zh) | 一种采用mib文件对网络设备进行管理的方法及浏览器 | |
CN104753692A (zh) | 对传输网络进行智能故障定位和派单的方法和*** | |
CN105205168A (zh) | 一种基于Redis数据库的曝光***及其操作方法 | |
KR20030039912A (ko) | 메시지 통계처리 시스템 및 방법 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200519 Address after: Room 323605, building 5, yard 1, Futong East Street, Chaoyang District, Beijing 100020 Applicant after: Youxuan (Beijing) Information Technology Co.,Ltd. Address before: 200131 Shanghai futesz Pudong New Area Free Trade Zone No. 211 North Road, room 368, 302 parts Applicant before: YOUGU (SHANGHAI) INFORMATION TECHNOLOGY CO.,LTD. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |