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中如何使用 ...
随机推荐
- python_封装redis_list方法
xshell 进入 虚拟环境 安装 redis workon py3env # 进入虚拟环境 pip install redis # 安装redis deactivate # 退出虚拟环境 简单的封装 ...
- The four Day 给出一个平衡字符串,将它分割成尽可能多的平衡字符串
""" 在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的. 给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串. 返回可以通过分割得到的平衡字符串的 ...
- 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢?
原文:仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 平时我们获取一个程序集或者类型的 Attribute 是非常轻松 ...
- Linux生产环境上,最常用的一套“Sed“技巧
sed命令应用广泛,使用简单,是快速文本处理的利器.它其实没多少技巧,背诵.使用是最合适的学习渠道,属于硬技能.但它又很复杂,因为高级功能太多.本篇不去关注sed的高级功能,仅对常用的一些操作,进行说 ...
- 使用KONG网关实现接口迁移的灰度验证
在我们对一个API站点进行微服务化的过程中,使用KONG网关可以实现以下几个效果: 1. 业务线无感知,其实内部已经被Kong转到其他站点上执行了,这对业务线特别友好. 2. 可以实现租户级/接口级灰 ...
- linux搭建GitLab
GitLab CentOS6 1. 安装VMware和CentOS 2. 安装必备Linux插件 3. 准备安装GitLab 4. 开始安装GitLab 5. 配置GitLab 6. 启动GitLab ...
- Django:基于调试组插件go-debug-toolbar
1.django-debug-toolbar 介绍 django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息.返回 ...
- security Alternative forms secuerity
security Alternative forms secuerity (mostly obsolete) English Alternative forms secuerity Pronuncia ...
- JavaScript: 详解正则表达式之一
正则表达式是一个精巧的利器,经常用来在字符串中查找和替换,JavaScript语言参照Perl,也提供了正则表达式相关模块,开发当中非常实用,在一些类库或是框架中,比如jQuery,就存在大量的正则表 ...
- MySQL DataType--定点数(Fixed-Point Types)学习
DECIMAL和NUMERIC MySQL支持两种定点数类型:DECIMAL和NUMERIC,而NUMERIC实现为DECIMAL,因此MySQL中DECIMAL和NUMERIC等价相同. 如使用下面 ...