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中如何使用 ...
随机推荐
- golang 之 go-micro
在安装之前首先需要对go-micro有一定的了解 https://micro.mu/docs/cn/ go-micro中文文档 https://juejin.im/post/5cebafe6f265 ...
- Java之路---Day01
2019-10-17-19:36:43 标识符: 标识符:是指在程序中,自己定义的内容.如:类名.方法名.变量名等 命名规则(硬性要求): 1.有英文字母(区分大小写).数字.$(美元符)._(下划线 ...
- 【ElasticSearch】查询优化
一.背景 每周统计接口耗时,发现耗时较长的前几个接口tp5个9都超过了1000ms. 经过分析慢查询的原因是ES查询耗时太长导致的 二.设计方案 1.问题定位 查询功能使用不当导致慢查询 索引设计存在 ...
- 在vue组件中访问vuex模块中的getters/action/state
store的结构: city模块: 在各模块使用了命名空间的情况下,即 namespaced: true 时: 组件中访问模块里的state 传统方法: this.$store.state['模块名' ...
- MongoDB 基本概念
MongoDB和关系型数据库的对应关系 关系数据库 MongoDB 数据库 database 数据库 database 表格 table 集合 collection 行 row 文档 ...
- jmeter的简单使用0723
一.添加http请求 1.右击线程组---添加---取样器---http请求,具体内容如下图所示.如果请求带参数,则要点击下方的添加按钮来添加参数 2.查看请求结果,同样右击线程组-添加---监听器- ...
- vsftp网络服务
1. vsftp概述 FTP是File Transfer Protocol(文本传输协议)的简称,用于Internet上的文件的双向传输.使用FTP传输时,具有一定程度的危险性,因为数据在因特网上面是 ...
- opencv图像阈值操作
使用threshold方法和adaptivethreshold方法对图像进行阈值分割操作. 1.使用threshold方法,设置一个阈值,将大于阈值的值变换为最大值,小于阈值的值变换为0. #-*- ...
- 嵌入式Linux框架的理解
从事嵌入式linux工作也几年了,如果算上大学期间的自学,那么也算是个工程师了.期间写过底层bootloader.内核的驱动和上层应用程序.对于芯片内部的模块也在大学时候用fpga的verilog玩过 ...
- 【Java并发编程之深入理解】Synchronized的使用
原文:https://blog.csdn.net/zjy15203167987/article/details/82531772 1.为什么要使用synchronized 在并发编程中存在线程安全问题 ...