Go语言中文网 为您找到相关结果 5

编写telegraf Input插件

Telegraf是一个Influxdata的数据采集套件,使用起来跟Collectd、Statsd、Logstash等软件很像。通过plugin来实现数据的input和output。 今天我们尝试自己编写一个采集supervisord的插件1. 准备golang (最好1.9+)环境,2. 准备一些dep 编译环境 https://golang.github.io/dep/docs/installation.html3. 准备http_proxy (你懂的)4. go get github.com/influxdata/telegraf5. cd $GOPATH/github.com/influxdata/telegraf6. git checkout -b supervisor7. cd ...阅读全文

博文 2018-08-07 14:34:54 lmy_8db4

k8s与监控--改造telegraf的buffer实现

改造telegraf的buffer实现 前言 最近在使用telegraf的场景中,要求数据在程序意外终止的时候不丢失。按照telegraf最初的原始实现,在running_output内部维护了两个buffer,分别是metrics和failMetrics。这两个buffer是基于go中channel实现的。由于没有持久化机制,在意外退出的时候,存在丢失数据的风险。所以这篇文章主要讲述之前telegraf保证数据安全的一些措施和我们对代码的一些优化。 telegraf关于数据安全的处理办法 关于两个buffer,定义在running_output.go的struct中。 // RunningOutput contains the output configuration type Runni...阅读全文

博文 2018-05-03 09:34:37 iyacontrol

从telegraf改造谈golang多协程精确控制

从telegraf改造谈golang多协程精确控制 前言 telegraf是infuxdb公司开源出来的一个基于插件机制的收集metrics的项目。整个架构和elastic公司的日志收集系统极其类似,具备良好的扩展性。与现在流行的各种exporter+promethues监控方案相比: 大致具备良好的可扩展性。很容易增加自己的处理逻辑,在input,output,process,filter等环境定制自己专属的插件。 统一了各种exporter,减少了部署各种exporter的工作量和维护成本。 目前telegraf改造工作基本上是两大部分: 增加了一些telegraf不支持的插件,比如虚拟化(kvm,vmware等),数据库(oracle),k8s和openstack等input插件。 t...阅读全文

博文 2018-01-12 14:34:38 iyacontrol