日志染色方案

本文介绍了在服务增多和流量增长背景下,如何通过日志染色方案来优化微服务架构的日志定位和成本控制。方案利用Apollo配置规则,针对不同场景动态打印日志,通过网关拦截器和应用级别的拦截,实现高效问题排查。
摘要由CSDN通过智能技术生成

一、概述
    服务增多,流量不断的增长,日志存储所需要的空间和存储成本也对应的增加
    当前系统架构逐步的走向微服务化,服务之间的调用交叉复杂,排查问题难度也是不断地增加,需要跨服务,跨系统来进行排查,日志定位,多系统协调
    对研发来说,生产和线上问题为第一要务。如何减少排查时间,提高定位速度,快速的勘察原因并解决问题,较少日志输出,节约成本。故提出了日志染色方案。
二、日常使用场景
    由于Apollo是热生效,通过Apollo实时修改配置,实现动态控制请求链路/应用日志打印
1、场景:特定URL的请求,会打印debug类型日志,甚至级别更低的日志
2、场景:特殊cookies的请求,会打印debug甚至级别更低的日志
3、场景:特殊请求参数的请求,会打印debug甚至级别更低的日志
4、场景:特殊请求头请求,会打印debug。。。。。。。
5、场景:异常但是属于正常场景,会打印warn甚至级别更低的日志
5、场景:异常需要特殊关注的日志,会打印error甚至级别更高的日志

三、方案总体设计
1、日常将日志设置为debgu级别,默认不会打印
2、在Apollo上配置日志打印规则,满足打印规则的日志请求会打印进dubug日志级别中
3、请求来到网关或者过滤器,检查规则,若满足在Apollo配置的规则,则打印日志
4、规则往下级调用应用传递,继续打印,完成整条链路日志的打印
5、应用日志上传日志云或者ELK,查找整条日志,方便查找问题
四、方案详细设计
网关设计:
    网关增加拦截器,拦截配置有规则的请求,并向下级应用传递日志打印请求头 X-TRACE-LOG-ID
拦截请求头规则 HeardersColorGatewayFilterFactory
拦截参数规则 ParamsColorGatewayFilterFactory
拦截Cookies规则 CookiesColorGatewayFilterFactory
截URL规则 URLColorGatewayFilterFactory
应用设计:
    实现带有 X-TRACE-LOG-ID打印日志:
1、应用启动将服务条件的Log设置成debug模式
2、增加拦截器请求,如果请求头含有X-TRACE-LOG-ID,则将请求头设置到MDC中
3、增加日志拦截器debug日志默认不打印,MDC含有请求头X-TRACE-LOG-ID才打印
五、具体实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值