telegraf 学习二 几个概念
telegraf 自身包好了自己处理metrics 的数据模型,以及出炉方法
metrics
Telegraf指标是用于在处理期间对数据建模的内部表示。这些指标完全基于InfluxDB的数据模型,包含四个主要组件:
- 度量名称:度量标准的描述和命名空间。
- 标签:键/值字符串对,通常用于标识度量标准。
- 字段:键入的键/值对,通常包含度量标准数据。
- 时间戳:与字段关联的日期和时间。
此度量标准类型仅存在于内存中,必须转换为具体表示才能传输或查看。Telegraf 为这些转换提供输出数据格式(也称为序列化器)。
Telegraf的默认串行器转换为nfluxDB Line Protocol,,该协议提供Telegraf指标的高性能和一对一直接映射。
聚合以及处理插件
除输入插件和输出插件外,Telegraf还包括聚合器和处理器插件,用于在通过Telegraf时聚合和处理指标。
- 参考图

- 说明
处理器插件在通过时处理指标,并根据它们处理的值立即发出结果。例如,这可能是打印所有指标或向所有通过的指标添加标记。
另一方面,聚合器插件有点复杂。聚合器通常用于发出新的聚合度量,例如运行平均值,最小值,最大值,分位数或标准偏差。因此,
所有聚合器 插件都配置了一个period。这period是每个聚合表示的度量窗口的大小。换句话说,发出的 聚合度量将是过去period秒的聚合值。
由于许多用户只关心他们的聚合而不是每个收集的度量标准,因此还有一个drop_original参数,它告诉Telegraf只发出聚合而不是原始指标。
注意由于聚合器插件仅在其句点内聚合度量标准,因此不支持历史数据。换句话说,如果您的指标时间戳比now() - period过去多,则不会聚合
术语表
- agent
agent是Telegraf的核心部分,它从声明的输入插件收集指标,并根据给定配置启用的插件将指标发送到声明的输出插件
关联内容: input plugin, output plugin - aggregator plugin
Aggregator插件从输入插件接收原始指标并从中创建聚合指标。然后将聚合度量传递给配置的输出插件。
关联内容: input plugin, output plugin, processor plugin - batch size
代理会批量发送指标到输出插件,而不是单独发送。批处理大小控制Telegraf发送到输出插件的每个写批处理的大小
关联内容: output plugin - collection interval
从每个输入插件收集数据的默认全局间隔。每个输入插件的配置都可以覆盖收集间隔。
关联内容: input plugin - collection jitter
用于防止每个输入插件同时收集指标,这可能对系统产生可测量的影响。每个收集间隔,每个输入插件将在收集指标之前在零和收集抖动
之间休眠一段随机时间
关联内容: collection interval, input plugin - flush interval
将数据从每个输出插件刷新到其目标的全局间隔。不应将此值设置为低于收集间隔。
关联内容: collection interval, flush jitter, output plugin - flush jitter
刷新抖动用于防止每个输出插件同时发送写入,这可能会淹没某些数据接收器。每个刷新间隔,每个输出插件将在发出指标之前在零和刷新抖动之间休眠一段随机时间。这有助于在运行大量Telegraf实例时平滑写入峰值。
关联内容: flush interval, output plugin - input plugin
输入插件主动收集指标并将其交付给核心代理,其中聚合器,处理器和输出插件可以对指标进行操作。要激活输入插件,需要在Telegraf的配置文件中启用和配置
关联内容: aggregator plugin, collection interval, output plugin, processor plugin - metric buffer
当写入输出插件失败时,指标缓冲区会缓存各个指标标准。Telegraf将在成功写入输出后尝试刷新缓冲区。当此缓冲区填满时,将首先删除最旧的指标标准
关联内容: output plugin - output plugin
输出插件将指标传递到其配置的目标。要激活输出插件,需要在Telegraf的配置文件中启用和配置。
关联内容: aggregator plugin, flush interval, input plugin, processor plugin - precision
精度配置设置确定从输入插件接收的点中保留多少时间戳精度。所有传入的时间戳都被截断为给定的精度。然后,Telegraf用零填充截断的时间戳以创建纳秒时间戳; 输出插件将以纳秒为单位发出时间戳。有效精度为ns,us或者µs,ms和s。
例如,如果精度设置为ms,则纳秒时间戳1480000000123456789将被截断为1480000000123毫秒精度,然后用零填充以生成新的,不太精确的纳秒时间戳1480000000123000000。输出插件不会进一步改变时间戳。服务输入插件忽略精度设置。
关联内容: aggregator plugin, input plugin, output plugin, processor plugin, service input plugin - processor plugin
处理器插件转换,修饰和/或过滤由输入插件收集的指标,将转换后的指标传递给输出插件。
关联内容: aggregator plugin, input plugin, output plugin - service input plugin
service input plugin是在Telegraf代理运行时以被动收集模式运行的输入插件。他们在套接字上侦听已知的协议输入,或者在将它们提供给Telegraf代理之前将其自己的逻辑应用于摄取的度量标准
关联内容: aggregator plugin, input plugin, output plugin, processor plugin
说明
benthos 基于golang 的pipeline 数据处理与telegraf 是很类似的,而且也是一个不错的数据收集处理工具
参考资料
https://docs.influxdata.com/telegraf/v1.11/concepts/
telegraf 学习二 几个概念的更多相关文章
- JavaScript高级程序设计学习(二)之基本概念
任何语言的核心都必然会描述这门语言基本的工作原理.而描述的内容通常都要涉及这门语 言的语法.操作符.数据类型.内置功能等用于构建复杂解决方案的基本概念.如前所述, ECMA-262通过叫做 ECMAS ...
- ElasticSearch7.3学习(二十七)----聚合概念(bucket和metric)及其示例
一.两个核心概念:bucket和metric 1.1 bucket 有如下数据 city name 北京 张三 北京 李四 天津 王五 天津 赵六 天津 王麻子 划分出来两个bucket,一个是北 ...
- JavaScript基础学习(二)—JavaScript基本概念
一.语法 1.区分大小写 JavaScript是一种弱类型的脚本语言.它区分大小写,变量名test与Test表示两个完全不同的变量. 2.标识符 所谓标识符就是变量.函数.属性的 ...
- cadence学习二----->Allegro基本概念
Class与Subclass 同一根线在不同的Subclass里的含义不一样,下面介绍常用Class和Subclass的含义 1.Etch 包括TOP和BOTTOM,用于走线和覆铜 2.Package ...
- 学习MQ(二)基本概念
学习MQ(二)基本概念 这次简单罗列一下MQ的基本概念,还有我对它们的理解 1.queue manager 队列管理器,这是MQ系统中最上层的一个概念.每一个queue manager都有一个侦听器, ...
- Java开发学习(二十七)----SpringMVC之Rest风格解析及快速开发
一.REST简介 REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格 当我们想表示一个网络资源的时候,可以使用两种方式: 传统风格资源描 ...
- Java开发学习(二十八)----拦截器(Interceptor)详细解析
一.拦截器概念 讲解拦截器的概念之前,我们先看一张图: (1)浏览器发送一个请求会先到Tomcat的web服务器 (2)Tomcat服务器接收到请求以后,会去判断请求的是静态资源还是动态资源 (3)如 ...
- emberjs学习二(ember-data和localstorage_adapter)
emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...
- ReactJS入门学习二
ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...
随机推荐
- Spark之RDD弹性特性
RDD作为弹性分布式数据集,它的弹性具体体现在以下七个方面. 1.自动进行内存和磁盘数据存储的切换 Spark会优先把数据放到内存中,如果内存实在放不下,会放到磁盘里面,不但能计算内存放下的数据,也能 ...
- [cf 1239 B] The World Is Just a Programming Task (Hard Version)
题意: 给你一个长度为n的括号序列,你可以交换其中的两个元素,需要使该序列的n个循环移位中合法的括号序列个数尽量多. 输出最大的答案以及交换哪两个元素能够取到这个答案. $n\leq 3\times ...
- stone2 [期望]
也许更好的阅读体验 \(\mathcal{Description}\) 有 \(n\) 堆石子,依次编号为 \(1, 2,\ldots , n\),其中第 \(i\) 堆有 \(a_i\) 颗石子 你 ...
- Json schema前奏 关于JSON
目录 1. 何为 JSON 2. JSON 基本语法 3. JSON值的类型 4. 与XML比较 5. 辅助工具 1. 何为 JSON JSON( JavaScript Object Notation ...
- 自己使用的jquery公用common.js
/*解决ie8中js数组没有indexOf方法*/ jQuery.extend({ exportResport : function(url, method, params){ var paramCo ...
- Linq实现分组后取最大(小)值
var beatles = (new[] { new { inst = "张三" , age="50" }, new { inst = "张三&quo ...
- c笔试题
以下程序的输出是(). struct st { int x; int *y; } *p; ] = { ,,, }; ] = { ,&dt[],,&dt[],,&dt[],,&a ...
- SqlDataSource控件超时的困惑
想用最简单的SqlDataSource控件完成对一个记录数很多的表的查询操作,结果出现超时异常,找了些解决方法都不奏效,后来在www.codeproject.com查到高手也放弃了用控件的方法,于 ...
- Dockerfile 基本命令
1. 前言 Dockerfile 是用来构建自定义 Docker 镜像的文本文档.我们通过docker build 命令用于从Dockerfile 文件构建镜像.如果你要构建自定义镜像,Dockerf ...
- DOS命令_查询某个端口的占用情况并释放
>netstat -aon | findstr “80″Proto Local Address Foreign Address State ...