CN112181778A - 一种日志戳跨系统传递的方法 - Google Patents
一种日志戳跨系统传递的方法 Download PDFInfo
- Publication number
- CN112181778A CN112181778A CN202011065308.6A CN202011065308A CN112181778A CN 112181778 A CN112181778 A CN 112181778A CN 202011065308 A CN202011065308 A CN 202011065308A CN 112181778 A CN112181778 A CN 112181778A
- Authority
- CN
- China
- Prior art keywords
- log
- stamp
- log stamp
- service
- generated
- 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
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/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种日志戳跨系统传递的方法,包括以下步骤:步骤一、利用过滤器扩展服务和典型转换器扩展服务实现日志戳的跨系统传递;步骤二、判断服务消费者的线程局部变量中是否存在已经设置的日志戳;步骤三、从服务提供者的远程调用上下文中获取日志戳,如果不为空,则设置全局日志戳;如果为空,则利用唯一字符串生成技术生成日志戳。此种日志戳跨系统传递的方法通过请求的所有日志具有相同的日志戳,可以清晰追踪请求,提升问题定位效率,节省了开发人员日志搜索和整理分析的时间,对问题的准确定位起到了非常重要的帮助。
Description
技术领域
本发明涉及日志搜索领域,特别涉及一种日志戳跨系统传递的方法。
背景技术
目前生产问题排查,在日志系统搜索日志时只能根据关键字进行搜索,例如订单号。如果日志打印时缺乏关键字,则搜不出来,影响生产问题的排查效率。
发明内容
为了克服现有技术的不足,本发明提供一种日志戳跨系统传递的方法。
本发明解决其技术问题所采用的技术方案是:
一种日志戳跨系统传递的方法,包括以下步骤:
步骤一、利用过滤器扩展服务和典型转换器扩展服务实现日志戳的跨系统传递;
步骤二、判断服务消费者的线程局部变量中是否存在已经设置的日志戳;
步骤三、从服务提供者的远程调用上下文中获取日志戳,如果不为空,则设置全局日志戳;如果为空,则利用唯一字符串生成技术生成日志戳。
进一步地,所述步骤一中典型转换器扩展服务为日志框架提供的典型转换器扩展服务。
进一步地,所述步骤二中的日志戳如果存在,则直接返回;如果不存在,则生成日志戳并保存到所述线程局部变量中。
进一步地,还包括:执行日志打印时,获取当前系统日志戳,如果不为空,则直接打印;如果为空,则生成日志戳并保存到线程局部变量中。
进一步地,还包括:生成日志戳时,根据传入的信息匹配搜索关键字。
进一步地,如果存在所述关键字,则获取关键字对应的值来作为日志戳。
进一步地,如果不存在所述关键字,则利用唯一字符串生成技术生成日志戳。
进一步地,所述关键字包括orderid、tradesn以及batchid。
本发明的有益效果是:本发明一种日志戳跨系统传递的方法通过请求的所有日志具有相同的日志戳,可以清晰追踪请求,提升问题定位效率。对于中大型分布式系统,服务调用链路复杂,排查问题困难。通过dubbo远程调用过滤器扩展接口实现日志戳跨系统传递,结合ELK日志分析系统,可以快速搜索到整个调用链路,看到请求经过每个节点时的状态,节省了开发人员日志搜索和整理分析的时间,对问题的准确定位起到了非常重要的帮助。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明一种日志戳跨系统传递的方法的步骤流程图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。另外,专利中涉及到的所有联接/连接关系,并非单指构件直接相接,而是指可根据具体实施情况,通过添加或减少联接辅件,来组成更优的联接结构。本发明创造中的各个技术特征,在不互相矛盾冲突的前提下可以交互组合。
参考图1,本发明解决其技术问题所采用的技术方案是:
一种日志戳跨系统传递的方法,包括以下步骤:
步骤一、利用过滤器扩展服务和日志框架提供的典型转换器扩展服务实现日志戳的跨系统传递;
步骤二、判断服务消费者的线程局部变量中是否存在已经设置的日志戳,所述步骤二中的日志戳如果存在,则直接返回;如果不存在,则生成日志戳并保存到所述线程局部变量中;
步骤三、从服务提供者的远程调用上下文中获取日志戳,如果不为空,则设置全局日志戳;如果为空,则利用唯一字符串生成技术生成日志戳。
步骤四、执行日志打印时,获取当前系统日志戳,如果不为空,则直接打印;如果为空,则生成日志戳并保存到线程局部变量中。
生成日志戳时,根据传入的信息匹配搜索关键字,所述关键字包括orderid、tradesn以及batchid。如果存在所述关键字,则获取关键字对应的值来作为日志戳;如果不存在所述关键字,则利用唯一字符串生成技术生成日志戳。
可以具体细分为如下步骤:
1.服务器1接收到用户请求;
2.服务器1开始日志打印处理;
3.进入日志戳转换器(LogPreFixConverter)处理;
4.服务器1读取线程局部变量中的日志戳,发现日志戳不存在,根据要打印的信息进行关键字匹配,如果匹配到信息中存在订单号/流程号/批次号,则取出关键信息拼接线程id和随机数(用“-”符号隔开)作为日志戳,然后保存到线程局部变量中。如果关键信息为空,则利用唯一字符串生成技术生成随机字符串,然后拼接线程id和随机数(用“-”符号隔开)作为日志戳,并保存到线程局部变量;
5.输出带日志戳格式的日志1;
6.服务器1的服务1调用服务器1的服务2。当服务2进入日志打印处理时,进入日志戳转换器(LogPreFixConverter)处理;
7.服务器1读取线程局部变量中的日志戳,发现了第4步已经保存到线程局部变量的日志戳,于是输出带日志戳格式的日志2;
8.服务器1内部的各个服务调用继续按照第6、7两个步骤执行日志打印;
9.当服务器1需要通过远程调用技术(dubbo)调用服务器2的服务时,远程请求被自定义日志服务扩展过滤器AccessLogExtFilter拦截处理;
10.判断服务器身份是服务消费者还是服务提供者,此时请求还在服务器1上,请求发现目前服务器是服务消费者,于是获取到当前线程日志戳并保存到远程调用上下文(RpcContext)中;
11.请求传递到服务器2;
12.判断服务器身份,发现自己是服务提供者,于是从远程调用上下文(RpcContext)中获取到日志戳并保存到线程局部变量中;
13.服务器2开始日志打印处理;
14.服务器2读取线程局部变量中的日志戳,并输出带日志戳格式的日志2;
15.服务器2内部的各个服务调用继续按照第6、7两个步骤执行日志打印;
16.其他服务器间的各个服务调用继续按照第9~15步执行日志打印。
本发明的有益效果是:本发明一种日志戳跨系统传递的方法通过请求的所有日志具有相同的日志戳,可以清晰追踪请求,提升问题定位效率。对于中大型分布式系统,服务调用链路复杂,排查问题困难。通过dubbo远程调用过滤器扩展接口实现日志戳跨系统传递,结合ELK日志分析系统,可以快速搜索到整个调用链路,看到请求经过每个节点时的状态,节省了开发人员日志搜索和整理分析的时间,对问题的准确定位起到了非常重要的帮助。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (8)
1.一种日志戳跨系统传递的方法,其特征在于,包括以下步骤:
步骤一、利用过滤器扩展服务和典型转换器扩展服务实现日志戳的跨系统传递;
步骤二、判断服务消费者的线程局部变量中是否存在已经设置的日志戳;
步骤三、从服务提供者的远程调用上下文中获取日志戳,如果不为空,则设置全局日志戳;如果为空,则利用唯一字符串生成技术生成日志戳。
2.根据权利要求1所述的一种日志戳跨系统传递的方法,其特征在于:所述步骤一中典型转换器扩展服务为日志框架提供的典型转换器扩展服务。
3.根据权利要求1所述的一种日志戳跨系统传递的方法,其特征在于:所述步骤二中的日志戳如果存在,则直接返回;如果不存在,则生成日志戳并保存到所述线程局部变量中。
4.根据权利要求1所述的一种日志戳跨系统传递的方法,其特征在于,还包括:执行日志打印时,获取当前系统日志戳,如果不为空,则直接打印;如果为空,则生成日志戳并保存到线程局部变量中。
5.根据权利要求1所述的一种日志戳跨系统传递的方法,其特征在于,还包括:生成日志戳时,根据传入的信息匹配搜索关键字。
6.根据权利要求5所述的一种日志戳跨系统传递的方法,其特征在于:如果存在所述关键字,则获取关键字对应的值来作为日志戳。
7.根据权利要求5所述的一种日志戳跨系统传递的方法,其特征在于:如果不存在所述关键字,则利用唯一字符串生成技术生成日志戳。
8.根据权利要求5所述的一种日志戳跨系统传递的方法,其特征在于:所述关键字包括orderid、tradesn以及batchid。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011065308.6A CN112181778A (zh) | 2020-09-30 | 2020-09-30 | 一种日志戳跨系统传递的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011065308.6A CN112181778A (zh) | 2020-09-30 | 2020-09-30 | 一种日志戳跨系统传递的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112181778A true CN112181778A (zh) | 2021-01-05 |
Family
ID=73947951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011065308.6A Pending CN112181778A (zh) | 2020-09-30 | 2020-09-30 | 一种日志戳跨系统传递的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181778A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503020A (zh) * | 2015-09-08 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 日志数据处理方法及装置 |
US10027534B1 (en) * | 2015-05-27 | 2018-07-17 | VCE IP Holding Company LLC | Log management system and method for distributed computing systems |
US20180359317A1 (en) * | 2017-06-13 | 2018-12-13 | Oracle International Corporation | System and method for non-intrusive context correlation across cloud services |
-
2020
- 2020-09-30 CN CN202011065308.6A patent/CN112181778A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10027534B1 (en) * | 2015-05-27 | 2018-07-17 | VCE IP Holding Company LLC | Log management system and method for distributed computing systems |
CN106503020A (zh) * | 2015-09-08 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 日志数据处理方法及装置 |
US20180359317A1 (en) * | 2017-06-13 | 2018-12-13 | Oracle International Corporation | System and method for non-intrusive context correlation across cloud services |
Non-Patent Citations (1)
Title |
---|
JAVA个体户: "一种基于dubbo的分布式服务全链路追踪的解决方案", 《HTTPS://BLOG.CSDN.NET/QINGXIANGJAVA/ARTICLE/DETAILS/108820255》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254982B (zh) | 一种流数据处理方法、系统、装置及计算机可读存储介质 | |
CN106982150B (zh) | 一种基于Hadoop的移动互联网用户行为分析方法 | |
CN103488796B (zh) | 根据上下文输入的方法及移动终端 | |
CN110489475B (zh) | 一种多源异构数据处理方法、系统及相关装置 | |
CN111858569B (zh) | 基于流式计算的海量数据清洗的方法 | |
CN109408594B (zh) | 一种基于区块链的跨链数据检索系统 | |
CN101339560B (zh) | 一种搜索系列性数据的方法、装置及一种搜索引擎系统 | |
CN114089956A (zh) | 一种基于需求模型的微服务拆分方法 | |
CN111753070A (zh) | 一种服务器监控日志处理的系统和方法 | |
CN114741400A (zh) | 一种数据同步及解析方法、装置及终端设备 | |
CN109241498A (zh) | Xml文件处理方法、设备和存储介质 | |
CN113220710B (zh) | 数据查询方法、装置、电子设备以及存储介质 | |
CN116974948B (zh) | 业务系统测试方法、系统、设备和介质 | |
CN111104122B (zh) | 一种xml业务逻辑映射到java业务逻辑的方法 | |
CN106648722A (zh) | 基于大数据的Flume接收端数据处理方法和装置 | |
CN112181778A (zh) | 一种日志戳跨系统传递的方法 | |
CN113157904A (zh) | 基于dfa算法的敏感词过滤方法及系统 | |
CN115048913B (zh) | 一种命令处理方法、装置和电子设备 | |
CN115292065B (zh) | 一种基于流架构的事件确认方法、系统及装置 | |
CN113297274B (zh) | 一种签收数据查询方法和系统 | |
WO2020006930A1 (zh) | 数据伪造方法、装置及计算机存储介质 | |
CN108737522B (zh) | 一种消息的处理方法、装置和系统 | |
CN107888445B (zh) | 性能状态分析的方法、装置、计算机设备及存储介质 | |
CN112035427B (zh) | 基于Redis和HBase的数据查询方法及相关设备 | |
CN117688025B (zh) | 基于jdbc协议的sql动态组装方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210105 |