汇总:一文搞懂指标采集利器 Telegraf
优采云 发布时间: 2022-12-24 20:20汇总:一文搞懂指标采集利器 Telegraf
作者|姜有名
来源|尔达公众号
的
导读:为了让大家更好的理解MSP中APM系统的设计与实现,我们决定写一个系列文章《微服务观察详解》,深入APM系统的产品、架构设计和基础技术。 文章是本系列的第三篇文章。 主要介绍Telegraf数据处理链路的实现原理和插件的实现方法。
《浅谈微服务观察》系列文章:
Telegraf 是 InfluxData 开源的一款非常流行的指标采集软件,在 GiHub 上拥有数万个 Star。 借助社区,它拥有200多种采集插件和40多种导出插件,涵盖几乎所有监控项目,机器监控、服务监控甚至硬件监控。
的
架构设计流水线并发编程
的
在 Go 中,Pipeline 并发编程模式是一种常用的并发编程模式。 简单来说,它由一系列的stage组成一个整体,每个stage由一组运行相同功能的goroutine组成,stage之间通过channel相互连接。
在每个阶段,goroutines 负责:
的
通过入口通道,接收上游阶段产生的数据。 数据处理,如格式转换、数据过滤聚合等。将处理后的数据通过导出通道发送给下游阶段。
其中,除第一阶段和最后阶段分别只有退出通道和进入通道外,每一阶段同时有一个或多个出入通道。
的
在 Telegraf 中的实现
的
Telegraf采用这种编程模型,主要有四个阶段,分别是Inputs、Processors、Aggregators和Outputs。
的
而且它们之间也是通过通道相互联系的,它们的架构图如下:
可以看出它整体上采用了流水线并发编程方式。 下面简单介绍一下它的运行机制:
的
Fan-in:多个函数向一个通道输出数据,一个函数读取通道直到关闭。
的
Fan-out:多个函数从同一个通道读取直到关闭。插件式设计
的
Telegraf 有这么多的输入、输出和处理器插件,那么它是如何高效地管理这些插件的呢? 以及如何设计插件系统以应对不断增长的扩展需求? 别担心,请允许我详细说明。
的
其实这里的插件并不是通常意义上的插件(即运行时动态加载绑定动态链接库),而是基于工厂模式的变种。 首先我们看一下Telegraf的插件目录结构:
plugins
├── aggregators
│ ├── all
│ ├── basicstats
│ ├── registry.go
...
<p>
├── inputs
│ ├── all
│ ├── cpu
│ ├── registry.go
...
├── outputs
│ ├── all
│ ├── amqp
│ ├── registry.go
...
├── processors
│ ├── all
│ ├── clone
│ ├── registry.go
...</p>
的
从上面可以看出,目录结构是有规律的(下面以Inputs的Plug-in为例,其他模块的实现类似)。
的
解决方案:青岛条码打印机_青岛条码扫描器批发_青岛数据采集器厂家_青岛德领智能科技
TDK信息页面
标题
36个字符(一般不超过80个字符)
青岛条码打印机_青岛条码扫描*敏*感*词*批发_青岛数据采集器厂家_青岛德灵智能科技
关键词(KeyWords)
35个字符(一般不超过100个字符)
青岛条码打印机,青岛条码打印机厂家,青岛条码扫描器批发,青岛数据采集器
描述
174个字符(一般不超过200个字符)
青岛德灵智能科技*敏*感*词*主要经营:条码打印机、条码扫描器、数据采集器、证卡打印机、视觉扫描模块、条码打印软件、RFID电子标签、不干胶标签纸、吊牌、碳带及其他产品批发,我们拥有专业的销售和技术团队,项目经验丰富,完整的条码产品线,完善的服务体系,创新的系统集成,为新老客户提供全面灵活的技术支持服务,使公司在行业在用户中享有良好的声誉和较高的知名度。