可观测性理念篇——结构化日志的重要性

日志是软件系统的可观测性数据的最常见的媒介之一。通过日志,我们可以做很多事情:查问题、业务数据统计分析、告警监控等。这类系统,通常被称为日志平台或日志分析系统。它们的流程通常是:日志接入/采集 —> 日志清洗 —> 日志分析聚合(option) —> 日志存储 —> 日志查询。

其中,日志清洗的定义:指通过切分、静态 Join 等操作,将日志数据转化为标准 Key-Value(KV)格式的过程。

笔者看完这个定义后,大脑就浮现一个想法:如果日志一开始就是标准的KV格式,那么,是不是就可以把日志清洗流程省下来了?

事实上,过去2个月,我们的确这么干了。我们把所有的SpringBoot应用的日志都改成了JSON格式。而且对JSON中的Key进行了规范。将来,我们还会制定一个日志规范,以规范其它语言的应用的日志。这样进一步扩大日志结构化所带来的好处。

通过这种方式,我们节约了以下成本:

1. 日志清洗的程序的开发、运行、维护费用。

2. 日志的解析成本:程序员随意打日志,数据工程师只能被动的分析。

3. 查询日志的认知成本:过去是通过grep命令进行查询,现在通过SQL的方式查询。

当然,结构化日志本身也有成本:

1. 对历史日志的改造。这部分笔者认为可以看场景而定。

2. 开发人员的打日志习惯的改变成本,比如培训成本。

3. 日志框架本身的实现成本。我们就基于logback-stash实现了自己的日志框架(只是进行了很轻的封装)。

结构化日志本身的成本,比起日志清洗成本,根本不算什么。

本文只是简单介绍了日志非结构化与结构化之间的成本差异。

下一篇介绍基于SpringBoot的实践经验。请关注的我的公众号:

本文插图:https://pixabay.com/zh/photos/woman-camera-photographer-tool-5584377/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值