00:00
好,那么这一节呢,我们带大家把telegraph内部的这些啊通用性的配置呢,快速的给大家过一遍,呃,不过要注意呢,这里说是通用性配置和我们之前说的那个教大家怎么玩呃,Telegraph的插件文档的这个东西不一样,呃,通用配置呢,是框架帮他补上的,就是所有的input的这个插件呢,它都会支持啊这些配置,呃,不过说到这个支持性呢,其实也要严谨一点说呢,也不是说都支持啊,因为这个虽然说是input插件out put插件呢,但是它在这个插件的种类上呢,还是有区别的。我们画一个最简单的这个这个telegraph很抽象啊,这个老师这个画画水平就这样了,呃,那么我们说telegraph呢,它是数据从input的插件进去,然后经过这个聚合啊,经过处理,再经过聚合,再到out put这个组件啊,把这个数据输出去,那么光这个input组件呢,它其实呃,笼统来说呢,可以就可以分为两类,一类呢,我们说是server性质的。
01:02
那么这个插件一起来之后呢,他会去占一个端口号,然后等着外面的组件呢,把它把它的这个数据给推过来。另外一个呢,就是就是非这个服务性质的,它可能就是说啊,比如说我弄一个这个让你去监听ETC这个路径下,对吧,它的这个文件数目,那么你在这里面呢,用代码写了一段逻辑啊,你每隔一段时间呢,就在这个地方设一个interval是吧,然后你每隔三秒钟呢,就去看一下这个ETC所有的这个文件,然后把他这个文件数量呢给抓取来,抓取过来,然后再把这个数据呢,通过这个工作流呢往后传啊,那么就可以看到呢,其实有一些通用性配置呢啊,他对这个server性的这种服务性的这种组件,它是不生效的啊,所以说呢,其实在这个通用配置里面呢,你也要注意一下,那么我们这个这一节整个第九章实际上是对啊,整个第九章的前六节,实际上是对官方文档的一个翻译啊,就是把这个官方文档翻译成中文了啊,所以说这个地方呢,你既可以比着我们这个上硅谷的这个资料来看,你也可以去官方文档看相关的资料。
02:07
那么注意呢,就是如果你想拿到我们这个文档的话,你可以在上硅谷公众号回复大数据三个字,然后拿到我们这个telegraph的全部课程资料。好,那么接下来呢,就是给大家带着快速把这些通用性配置给过一下,那么这一节呢,就不带着大家操作了,那么到后面我们的示例四呢,会尽可能的把这里面的这个配置项给用下来,呃,在这里呢,就给大家先过一遍啊,讲一下它是个什么东西啊,首先呢,就是在agent agent这里面呢,是我们整个telegraph一个工作流里面的全局配置,呃,在这里呢,你可以使用interval来控制所有input组件采集数据的间隔时间,然后还有就是run inter是对这个采集时间进行取整,比如说你在一分钟一分零二秒,比如说现在是15点,15:01:02的时候启动了t gra服务,但是你希望就是那边落库的时间呢,能够踩在这个十秒的整个间隔上,那么你可以采取这个,然后把它设为十秒,那么这样的话呢,这个时间就会被取整到一分十秒,一分20秒。
03:12
好,那么接下来呢,还有这些,比如说呃,Magicric by size就是这个telegraph,它从outp po组件呢向外发送数据的大小,那么如果说你的这个他是说一批次的大小哈,如果说你的这个网络不是很稳定的话,你可以把这个数据呢,啊把这个batch size减小,然后让它分多次小P发送,这样的话,网络不稳定的时候呢,呃,可以减少这个参数,防止你一大批数这个数据呢,啊,发送中突然网络抖动,导致发送失败。好,那么接下来呢,还有一些比较重要的,比如说这个,呃。Buffer limit,这个其实是呃,每一个up组件缓冲区的一个上限,也就最大是多少?呃,那这个参数呢,一般来说应该设为这个BA set最小最小两倍,呃,还有一个就是这个collection je,这个其实是一个采集的抖动时间。
04:04
他是为什么设的呢?它比如说我们,呃,我们有好几个telegraph呢,它都有一个input组件,然后这些input组件呢,它会共同访问啊,比如说是买circle这种服务性的。然后监控买这种服务性的这种。嗯,组件的性能,那么如果说这个呃,在同一个时间点呢,比如说这个三秒钟到了,然后所有的这个input组件呢,都去向他发起一个啊查询请求,那么在同一个时间点呢,就对买S来说呢,可能会造成一个不可忽略的,不可忽略的这个压力。加上一个彩页抖动呢,也就是说啊,可能我的这个组件A呢,它是在3.05秒,3.3.05秒去。照学指标,而我这个组件B呢,在3.12秒,后面呢,这个在3.15秒,这样的话就把一个呃同时发生的事情呢给它打散,防止对这个买色扣呢造成这个压力,呃同样的就是后面的这个flash interval。
05:01
和它的这个对应的flash collection其实都是一样的作用。呃,Flash interval是说这个所有组件,所有输出组件的一个输出间隔,然后同样的这个je呢,就是说呃,把这个多个flash组件呢,它这个输出的时间呢,打上一个加上一个随机的延迟。防止这个同时多个这个@普斯组件呢,啊,同时对一个目标造成太大压力。好,下面这个参数呢,叫precision意意思就是精度啊,它其实是呃对这个输入插件有效的一个参数啊,不过当你的这个输入插件呢,如果说是一个啊服务性质的插件,那么它呢,其实是不生效的,呃在这里面说一下,就是为什么要搞这个精度呢?呃,因为telegraph呢,就是如果说你是一个输入插件,然后呃,你进来的数据的里面,那没有时间戳,其实telegraph会自动帮你补上一个,呃,但是telegraph内部呢,它其实是纳秒级,纳秒级的时间戳,呃,那么纳秒级时间戳呢,就是一个非常精细的时间单位啊,它有些时候呢,就对于下游的这些,呃,比如说实际数据库,它有时候会做一些数据压缩的处理,那么当你这里面精度设的过于细的时候呢,它有些呃,有一些这个实际数据库,它不便于它的压缩,呃,那么所以呢,这里其这里呢,其实你可以对这个实验的精度进行一个把控,呃,比如说这个输入插件,我给你补这个时间戳的时候呢。
06:25
或者说你原来有的纳秒时间戳,对吧,我可以给你去把它改成秒,精度改成秒,这样的话呢,就是说你这个纳秒的时间戳呢,本来很长,那后面的这个位置呢,我直接给你咔截断,然后用零填充一个新的那个时间戳啊,这样呢,就是既能兼顾我telegraph的一个工作,另外呢,就是啊,方便你下游进行这个压缩。好,那么接下来呢,就是还有一些这个配置呢,大多是是跟这个日志相关的,呃,可以看到就是首先呢,呃,Log的时候呢,你要先设这个log目标啊,默认它这里面可以给两个选项,一个就是file,一个就是STT啊,那么这个的话,其实它还是输入到这个控制台上,你到时候可以通过这个重定向符呢,给它定位到某个文件里去啊,如果你选file的话呢,你就需要指定这个log file,但是你看这里,我这里为什么给了两个log file呢啊,因为官网它也是重的。
07:23
对,你可以看就是啊,可以看官网,官网这里面log file呢,它就打了两次啊,这是一次吧,对吧,上面还有一次,但实际上呢,你用的时候呢,如果你在这个啊配置文件里面配了两次log file呢啊,他会直接报错啊,他会说你这个东西配重了,呃,那么继续给大家说,就是如果你这个呃,Log file配完之后呢,那log target配完之后呢,Log file呢,你可以给一个路径啊,给一个路径啊,那路径底下呢,就是必须得是一个呃,不能是目录啊,必须得是一个文件,呃,待会这地方可以给给大家操作一下就是啊,把你这个整个telegraph的这个日志呢,直接给写到一个文件里面去。
08:02
那么以下个人rotation呢啊,是这个日志日志轮转啊,产生新日志文件,就是我这个上一个旧日志文件已经写完了,产生一个新日志文件的这个啊各种规则,比如说这个间隔呀,还有就是这个日志轮段的这个大小,我说到了某多大之后才进行轮转呀,还是我说这个隔一定的时间段进行轮转呀,还有就是我日志的时候呢,要不要带上这个时区啊,就是把这个时区呢,就是比如把这个把这个从这个时间把把这个时间呢,从这个零时区调整到我现在这个啊东八区啊,还有就是要不要带上主机名,然后主机名是什么,还有这个,呃。是否忽略这个主机名?接下来呢,就给大家演示一下怎么样在这个telegraph里面去使用这个配置文件。呃,首先呢,还是回到我们的目录。这里呢,我们还是去复制一份EXCEL01。就这次叫这个吧。
09:04
好,那么现在呢,我们去编辑这个配置文件。首先呢,你需要去配置一下这个日志的目标。他给他,然后设成。这个地方呢,还需要再去配一下这个日志文件的路径。那我们这个当前的目录是OPT module,然后telegraph。啊,但是你要注意哈,你不能这样直接配啊,你这样配完之后呢,实际上telegraph com它是一个目录啊,当你起来之后呢,它会报错,所以说呢,你这里呢,呃,要给他配成一个当前这个用一下不存在的东西,或者是一个文件名啊。这里呢,我们就叫test log。然后退出保存,我们看下这个效果。还是使用telegraph命令呢,把这个日志文件给传进来。
10:05
嗯,可以看到呢,我这个现在这个,呃,他的graph竞争起起来之后呢,整个这个控制台呢,处在一个。呃,死掉的这个什么东西都没有反应的这个阶段,那但是你后面看到这个数据出来了,我CTRLC呢,给他停一下,然后再看呢,你会发现我们在现在这个目录底下呢,多了一个test test_log我们看看里面是什么。哎,其实就是我们telegraph啊,其实提起来之后打印的那些日志加载信息这些呢,其实就是我们的这个呃日志文件,呃日志内容,但你现在可以看到呢,这里面写的是8月14号九点钟啊,我现在的这个时间呢,是8月14号的这个,呃,下午05:3313分,那么这个呢,其实就是时区的问题了,这个是啊,我们现在应该是东八区是吧,但这个是标准时区啊,所以说呢,我们刚才在那个配置文件的这个参数里面呢,看到一个可以配置时区的选项,实际上就是为他来服务的。
11:03
好,那么接下来呢,给大家演示一下telegraph的日志轮转。那么我们首先呢,还是去编辑一下我们的这个配置文件。然后在这里面呢,我们去复制一个配置项,就之前这个rotation interval。然后呢,进入编辑模式,把它粘进来,这里呢,我配置一个两秒钟一轮转,然后保存退出。接下来呢,还是使用啊,我们先看一下这个目录底下的东西啊,现在是刚才把这个配置文件删掉了,现在是什么都没有,然后呢,Telegraph让它跑起来。好,那么现在呢,我们可以看到还是没有任何的输出,接下来呢,我们在另外一个终端里面去看这个,呃,里面的这个配置的日志的输出情况。首先呢,可以看到我们现在有一个test log这个文件,看看里面是什么东西,可以看到里面呢,是我们现在的一个呃,日志的情况,但是我们刚才配了两秒钟一轮转,为什么到现在还没有出现这个新的配置文件呢啊,日志文件呢,主要还是因为没有新的日志产生啊,在这里呢,我们把这个用CTRLC把它给停掉。
12:19
接下来呢,我们再去看这个目录抵达情况,会发现呢,出现了一个新的日志日志文件,那这个日志文件什么情况呢?这个日志文件实际上是我们之前看的那个test log的重命名,而这个新的test log它是放到我们新的日志,我们可以看一下啊,我们看一下这个带日期日期后缀的这个,呃,日志文件里面是什么,你会发现呢,这里面是我们刚才第一次看的text和log里面的内容。而这个新的呢?呃,现在test log里面其实是我们最后啊,Stopping running out po,也就是说这个啊,我们的整个进程要停掉了,是这样的啊,所以说呢,现在你看到的就是我们的啊,日志轮转的演示。
13:06
好,那么现在呢,关于agent的全局配置呢,已经给大家快已经是讲完了,呃,这个地方呢,大家可以在自己的下面啊,这个多操作,呃,接下来呢,给大家介绍input输入组件的通用配置,呃。实际上呢,这个地方呢,就是先给大家强调一下,你比如这个interval,我们看我们之前可以看到,就是agent里面呢,也能去设置interval,但是呢啊大家要记住就是所有插件级别的啊,给engine同名的配置呢,它的优先级都比agent要高,也就是局部的这个配置可以覆盖全局配置,呃,那么首首先呢,就是这些这个input呢,它有一个alli,它其实是给这个input这个插件的啊,去进行一个命名,呃,那么实际上所有的这个插件呢,它都可以去给自己的这个,呃,我们可以看一下,基本上所有插件它都可以去给自己的这个插件实例呢进行一个命名啊,不过这个呢,一般来说没有什么用处啊特Val呢,这个就是用来覆盖全球配置的,是指我当前这个啊,输入组件呢,它特殊的这个啊,采集间隔啊,精度呢,之前也给大家介绍过了,一样的作用。
14:14
这个name override呢,实际上是用来呃覆盖数据的measurement的那个名称的,我们可以看到,就之前我们这个数据里面这个measurement CPU是吧,其实是用来改它的名字的啊,同样的这个名称的前缀和后缀也是作用于数据里面的啊,Measurement那个呃字段的measurement那个测量名称的,那么还有一个就是标签集,是指给当前这个插件输入的数据呢,去添加一个新的标签集啊,比如说我可以添加一个啊user等于啊S硅谷这样的是吧?然比如说这个地方呢,它就是标签集,我们可以给他呢,再去添加一个建筑,对。呃,后面的这个输出组件,其实跟这个输入组件呢,没什么差别。呃,这个之前的这个地方,我们之前在这个agent的模块呢,也讲过,它其实也是可以覆盖全局配置的,呃,这个地方有需要注意啊,官网说是呃,Name override,它默认的是output的名称,也就是这个组件的名称,呃,但这个地方呢,我怀疑他说的是错的啊。呃,其实output这个名称呢,就他出来的这个数据的指标名称呢,其实本就是数据本来的,它的输入数据的本来的这个叫名称,比如说啊,我现在这个art组件的名字叫file,但是它这个进来的数据呢啊,指标名称叫CPU,那么按照这个情况呢,就是我们输出的数据呢,它的指标名称应该也是CPU啊,它不是说是默认为output的名称,我怀疑这个地方呢,是官网说错了。
15:41
好,那么我们接下来呢,介绍这个aggregator这个聚合插件的通用配置,呃,我们目前呢,还没有想这个插件,但是这个插件的参数呢,我们放前面提前给大家说一下。呃,首先呢,Telegraph呢,他会给你的这个所有的这个收集的数据呢,呃,加上一个这个时间戳,那么对telegraph telegraph而言呢,其实他做的就是一些时序上的聚合,呃所谓时序上的聚合呢,就是我统计某一个时间段上的数据,比如说呃,你可以看到有这个参数参期间,它其实是从当前时间到啊,它调用的之前的这个,比如说我假如说啊这里设为30秒,它其实统计的是我现在这个25分整,哎,到24分30秒之间的这个啊数据的一个最大值,最小值,或者是平均值。
16:32
呃,那么这样的话就有一个问题啊,假如说我现在呢,这是一个聚合参数,然后上游呢,它还有一个输入参数input啊input插件啊,这是一个聚合插件,那么聚合插件呢啊,它正在向我发送25分的,25分整的数据,那么25分整的数据呢,我假设它这有五条啊,那么我这里呢,到25分了啊,我现在应该进行计算了,但是呢,我这个插件呢,它其实收到了这个数据,才收到三条,还有两条呢,正在往这边传,那么这个时候呢啊,就会导致我统计的数据里面丢了这两条,那么怎么办呢?啊,我可以给他加一个延迟,这样的话就是二十五二十五分整到了,但是我在25分零二秒进行计算,这个时候呢,上游的这个插件已经把五条数据诶全部给我发过来了,那么这时候我再进行聚合,它是不会啊发生这个数据丢失的问题的啊,那么这是这两个参数的一个作用,还有就是一个就是宽限。
17:32
呃,就是当我们进行这个数据统计的时候呢,因为我们说呃,Telegraph内部的数据格式上游呢,就是数据的产生端,它也可以自己加这个时间戳,那么当这个呃数据呢,他已经过了这个25分之后呢,他再过来一个,比如25分,现在这个真实的时间已经过了25分了,但这个时候呢,突然数据里面啊,来了一条25分之前的数据,我进不进行一个统计呢?那么你可以去设啊,就是迟到多久的数据可以进入下一个聚合周期啊,假如说我现在的时间是25分十秒啊,那么现在呢,已经过了这个25分了,但这时候呢,啊来了一个24分,这个来了一个24分,呃,35秒的数据,他在上一个这个呃聚合中,呃,聚合周期的这个时间段内,呃,那么呢,它会进入下一个,也就是25分到25分30秒,哎,你可以这么设置,它就是把这个迟到数据放到这一个时间段里面进行聚合啊,这也是可以的。
18:30
呃,还有一个就是删除源这个地方呢,其实你是可以给一个逻辑值,呃,如也就是说在这个t graph里面呢,后面会给大家详细演示啊,如果说你设为错,那么他可以把你这个聚合的这些原始数据给它删掉啊,如果你为files,那么聚合后的数据和原始数据呢,会一起发给下游的这个,呃,其他插件。另外这三个插件呢,还有另外这四个这个配置啊,其实这个作用呢,和别的这个插件的配置呢是一样的,不过这个聚合插件呢,一般来说在telegraph工作流里面是用的比较少的啊,那么当用到这个聚合插件的时候呢,一般来说都是为了给呃下游的数据库,那比如说是in Fla DB啊,或者TT或者说是呃什么别的普罗米修斯啊之类的,呃他其实主要是为了缓解下游计算的一个压力,假如说呢,呃,我下游的这个in Fla DB呢,要每半分钟呢去执行一个平均数的操作,那么其实呢,呃你可以你这样的话,你这样的话就是消耗in DB的资那个算力嘛,但你可以把这个呃计算的往上提,提到这个数据的收集阶段,让telegraph呢,来完成这个聚合操作啊,这样的话呢,就能减轻下游的一些,呃,我们说基础设施的一些这个压力。
19:46
啊,所以说这是聚合插件的一个作用。好,那么接下来呢,给大家讲一下这个processor,呃,插件的使用的一些参数啊,这个processor呢,它区别于其他插件的这个参数只有一个,就是这个order order的意思呢,就是顺序在这个telegraph里面呢,要注意一个问题,假如说我有两个input,两个输入组件啊,然后后面呢,跟着一群,跟着三个啊处理组件,那么这三个处理组件呢,必须用order去指明,Order等于一,Order等于二,R等于三去指明这个顺序啊,如果你不指定顺序呢,Telegraph会给他们安排一个随机顺序,但是这个随机顺序呢,你要注意它不一定是你想要的,它不会按照配置文件从上到下来安排顺序,它是随机的啊,所以说这个地方一定要注意,当你有多个处理器插件的时候,一定要去手动的指定顺序,好,那么大家还关注一个点,就是我们这里说呢,这一个是glo模式的字符串数组啊,有些同学呢,可能不大清楚什么是格lo啊,它其实是我们平时在shell里面用的一。
20:50
个简化版的正则表达式,呃,这个东西其实我们平时都在用啊,这里给大家敲好了一个现成的啊,比如说我LL,我可以看到当前这个目录下的所有的文件,然后我通过这个gra呢,然后表写一个这个格global模式的字符串,比如说我是example打头的E是吧,点星,然后呢,就是example打头的所有文件,我通过gra给它过滤出来,可不可以呢?当然是可以的,那么这个呢,其实就是我们说的格洛模式的字符串,它是一个简化版的正能表达式啊,在shell里面是啊,通常是用来匹配文件。那么在这里呢,给大家放了一个更为详细的教程,关于教大家怎么用的,呃,那么这一份的教程它是完全开源的,在github上呢,大家可以自由访问啊,一些同学呢,他访问get have呢,有些困难,那么我们就把这个文这篇文章啊,他这他这个整个教程里面的一篇文章,我们给啊粘到这里来了,呃,那么。
21:50
呃,有兴趣的同学呢,可以去关注一下我们上硅谷的公众号,那微信公众号,然后回复大数据三个字,来获取今天啊telegraph的呃,所有资料啊,那么接下来呢,啊,这一段的这个配置文件的参数就给大家讲完了,我们开始下一个部分。
我来说两句