抱着学习的心态学习一下别家农场的代码,不同厂商的代码习惯肯定是不同的,标准更为的不同,这些都是我们可以学习的目标,毕竟很多东西是可以用来借鉴的,当然,轮子这玩意,能用现在还在维护的,就使用还在维护的,我其实有点不理解为啥要重复造轮子这事。

前言

根据现在在了解的东西,选了一个log-agent模块来看看,初看只看发现有点眼熟,后来看了下确实是filebeat,这里面很多东西是搬的filebeat那一套,当然,我说的就包括有设计框架,那到底B站是怎么魔改的呢,借此我要来学习了。

学习

代码目录:

代码目录

见解:

image-20200218203401147

代码详情:

这里我只写到两个函数就终止:

image-20200218203543898

pipeline.InitPipelineMng:

pipeline.InitPipelineMng

pipeline.InitPipelineMng

hostlogcollector.InitHostLogCollector:

hostlogcollector.InitHostLogCollector

其中context的应用,也是一个可以关注的点,这个玩意在gin,trace等各类上下文的操作中都有着很多应用。

context

疑惑

另外我在这份代码上头有个疑惑,我认为这个地方有点问题:

image-20200218204135654

最后

因为log-agent参考的是filebeat的代码,上面input很多参数信息都是需要参考下filebeat的,否则很多信息都是无法知晓其含义的。

看图应该是看不清的,如果后面有人看到这的,可以自行去搜索看看,在elastic官网上解释的非常详尽。

image-20200218204433538