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中如何使用 ...
随机推荐
- Linux node.js安装
1.下载地址 下载node 英文网址:https://nodejs.org/en/download/ 中文网址:http://nodejs.cn/download/ 2.下载下来的tar文件上传到服务 ...
- HTML文件直接在浏览器打开和本地服务器localhost打开有什么区别?
最直接的区别,很容易注意到,一个是file协议,另一个是http协议. file协议更多的是将该请求视为一个本地资源访问请求,和你使用资源管理器打开是一样的,是纯粹的请求本地文件. http请求方式则 ...
- 【题解】Luogu CF1172B Nauuo and Circle
原题传送门 题意:在圆上有n个节点(珂以构成凸多边形),让你给节点编号,使得将题目给你的边(一棵树)没有交叉 我们钦定1为这个树的根节点.任意节点\(x\)的一颗子树的点应该是圆弧上连续的一段(我也不 ...
- Js的iframe相关问题,如何判断当前是否在iframe中,iframe和它的父窗口如何通信
一.前言: 在web中,为了丰富我们的内容,往往需要引用其它HTML文件,这时候就需要用到 iframe 标签,本文就主要记录一下使用iframe所需要注意的问题 iframe 所使用的环境(笔者所遇 ...
- docker stack 部署 mssql
=============================================== 2019/12/8_第1次修改 ccb_warlock == ...
- 论文笔记 : NCF( Neural Collaborative Filtering)
ABSTRACT 主要点为用MLP来替换传统CF算法中的内积操作来表示用户和物品之间的交互关系. INTRODUCTION NeuCF设计了一个基于神经网络结构的CF模型.文章使用的数据为隐式数据,想 ...
- 使用JDK的zip编写打包工具类
JDK自带的zip AIP在java.util.zip包下面,主要有以下几个类: java.util.zip.ZipEntryjava.util.zip.ZipInputStreamjava.util ...
- Flutter — IDE Shortcuts for Faster Development
https://medium.com/flutter-community/flutter-ide-shortcuts-for-faster-development-2ef45c51085b If yo ...
- nodejs中的_filename和_dirname
_filename和_dirname都不是全局对象下的属性,它们都是模块下的 _filename:返回当前模块文件被解析过后的绝对路径,该属性并非全局,而是模块作用域下的 console.log(_f ...
- Java 之 HTTP 协议
HTTP 协议 一.基础 1.概念 HTTP:Hyper Text Transfer Protocol 超文本传输协议. 传输协议:定义了客户端和服务器端通信时,发送数据的格式. 2.特点 (1)基 ...