00:01
那么最后讲解一下我们的这个telegraph与普罗米修斯如何结合使用,那么普罗米修斯呢啊,它其实是一个专门为监控场景设计的服务器软件,它内部呢,也是实现了一个呃持续数据库,那么当下呢,普罗米修斯的热度呢也不低,那么我们就给大家简单介绍一下这个普罗米修斯的工作架构。呃,那么普罗米修斯呢,就是他在架构上设计呢,只能去拉取数据,呃,那么被监控的对象呢,就必须想办法向外暴露一个接口,然后呢,这个普罗米修斯呢,通过访问这个接口就能拿到程序内部的一些指标数据啊,然后而且这些数据呢,他应该符合这个普罗米修斯的格式。啊,比如说我们看这个图里面就是普罗米修斯呢啊,他去写个配置文件,然后普罗米修斯这个配置文件一写好呢,他就按照你给的这个URL,他每隔一段时间呢,比如说每隔三秒或每隔五秒钟啊去访问一下这个URL,然后把这里面的数据呢给抓到普罗米修斯里面来。
01:02
呃,那么比如说我想看一个my circleql的这个matrix,买my circleq的一些指标,但是那么MYSQL它本身呢,并不能暴露这个matrix,那怎么办呢?啊,就必须要实现一个另外的一个独立的组件叫exportter啊exportter,那么这个exportter呢,它每隔一段时间呢,去查询这个呃,可能是什么三零,呃呃303036的端口是吧,然后完了之后查询这个MYSQ的一些这个呃关键性的指标,比如上面现在这个表的数目啊,或者说是他现在啊一些文件的大小,完了之后呢,执行完这个查询之后呢,再把自己这个数据啊导在展示在自己绑定的端口的matrix路径上,然后等着普罗米修斯来抓。这样呢,这个exportter呢啊,他其实相当于一个啊,以普罗米修斯和MYS之间的一个观察者的身份啊,观察者之后呢,他去观察MYS完了之后,并把这个消息呢,哎,暴露出来,等着普罗米修斯来抓。那么普罗米修斯的官网呢和社区啊,它其实提供了大量开源呢,而且是开箱机用的ex expter你拿来之后呢,稍微给点配置啊,一跑就能跑起来,呃,那么这个是很好的啊,这个我们可以去啊它官网上去看一下这个啊nodeporter,也就是导出主机数据,包括它的这个啊,机器的内存啊,网络这些这些数据啊,我们可以看一下啊,这个东西是怎么用的。
02:27
呃,那么我们文档里面呢,有一个,呃,已经写好的这个下载地址啊,就不去官网再找了,拿来之后呢,直接粘贴然后下载。啊,等他下载完毕。
03:01
好,那么我们现在可以看到呢,这个地方有一个我们刚下载完的压缩包,然后现在呢,把它解压解压出来。啊,我就直接解压到当前这个目录吧。然后呢,我们可以看到出来一个新的目录,然后在这里面呢,有一个啊node exportter啊,它这个可执行文件直接这样跑起来。那么接下来呢,他说他这个啊,正在监听啊,正在监听这个9100端口,那么接下来呢,我们去访问一下9100端口看看看一下上面有什么东西啊啊,我们现在呢,打开这个浏览器,然后在这里面找。102。9100。哎,我这个域名写错了。9100。然后底下还有一个路径。Matrix啊,可以看到呢,就是我们现在哈102这个机器的一些这个机器指标啊,机器上的数据啊,比如说这个我们看一些,比如说这个内存,你看这个memory内存是吧?啊那么它的一个这些指标的情况呢,就全部被放在这个URL里面呢,而且是以一个这个纯文本的方式啊,那么外面的这个普罗米修斯呢,他就可以去访问这个matrix,然后呢,把这里面的数据呢给抓走,然后写到普罗米修斯里面去。
04:33
这就是他的一个啊,我们说实现的方式,那么刚好顺道呢,给大家讲一下普罗米修斯的数据格式。呃,就是我们现在在这个网页上看到的呢,它就是普罗米修斯的数据格式,那么原本呢,它其实只有普罗米修斯自己在用,但是现在呢,它已经快成为一种标准了啊,就是任何一个,你比如说你写的spring BOO应用是吧?啊,你写的后端,那么你如果说引入一个啊什么什么软件包,然后直接开启这个啊指标的功能,那么它暴露出来的一般来说都是这种格式,呃,那么现在这个格式呢,它叫做。
05:11
叫做open matrix啊,是一个是一个数据协议了啊,不过这个open matrix呢,它其实完全就是跟着普罗米修斯的这个数据格式来的,在他在这个普罗米修斯的数据格式格式之上呢,它做了一些拓展,那么对普罗米修斯来说呢,就是首先啊,这个画括号前面的这个东西叫指标名称啊,它也是必须存在的,跟我们啊伊拉斯DB行协议里面的measurement,也就是测量名称是一回事啊,后面的这个标签集呢,其实对于普罗米修斯来讲也是用来做索引的啊,我们在那个伊拉斯TB里面呢啊,伊拉斯DB行协议里面,我们叫tag,这这边呢叫label啊,都是一个意思。那么第一个空格呢,把这个啊指标名与标签集和这个值啊分开,那么第二个空格呢,将值与后面的时间戳分开,不过这个时间戳呢啊,它是可选的,如果你是空的话呢,那么就以普罗米修斯抓取到你这个数据的时间为准啊,如这边的这个标签级,那它也可以是空的啊,我们还是说跟那个一发TB行协一样,那么如此一来呢,也可以看到普罗米修斯里面的数据格式和英拉斯TB的行协议数据格式呢?啊,他们两个之间的唯一区别就是一个是单值模型,一个是双值模型,在以弗拉斯DB行斜议里面,这个值它允许你传多个建筑,对啊,F1等于什么什么F2等于等于什么啊,那么一条呢,可以有多个值,但是在普罗米修斯里面呢,啊,我们这一行数据里面只能有这一个值啊,所以说一个是单只模型,一个是多只模型,两种模型呢,可以互相转换啊,两种模型可以互相转换。
06:42
啊,那么我们接下来呢,就说一下这个export模式的一个问题啊,我们刚才呢,啊是通过下载了一个exportter,然后完了之后呢,把它部署上跑起来啊,我们就可以看到我们的主机数据了,但是我要问你一个问题,如果我现在呢,想看买circle的这个,呃,指标数据该怎么办呢?
07:01
啊,你你你应该去去那个get HUB上找一下啊,有没有这个my circle的ex exper,然后把MYSQ的ex exper呢下下来,然后再通过同样的方式解压,然后运行,如果呢,你又你又想看这个mango DB的这个一些这个数据,那么你同样呢,是需要下一个GODB的exper,如此一来呢,一旦有一个监控对象呢,你就要去下一个ex expter啊这样一来的话,就是相当于你有一堆散装的ex expter,那么我在普罗米修斯这边呢,就需要去写这个配置文件,手动的去把你这些啊六个配exportter是吧,全部给你配置上,然后你的端口号是多少,然后你的路径是多少,完了之后呢,再设多长时间一抓,那么这样一来呢,就是it抛很多之后呢,你要监控的对象很多之后呢啊,你整个的这个维护呢,是相对来说比较困难的啊。那么这个时候我们就可以用这个telegraph来替换这个porter。让telegraph呢,把这个里面的每个exper呢,变成这个telegraph的里面的一个插件,然后telegraph呢,这些啊插件里的指标呢,最后汇总到一个auto组件里面啊,只向外暴露一个端口,普罗米修斯呢,只需抓着一个端口就可以了,那么这就是泰elegraph给我们提供的一个呃抓取指标呢,相当于是一个管理性的功能,它通过这样的话,我们就是呃,只管理一个进程,而且呢,每一个组件都是一个呃轻量级线程,通过这种方式呢,我们只管理配置文件,就不用再管理那么多的ex exper了。
我来说两句