Telegraf是一个用Go编写的代理程序,可收集系统和服务的统计数据,并写入到InfluxDB数据库。
Telegraf具有内存占用小的特点,通过插件系统开发人员可轻松添加支持其他服务的扩展。
目前已有的插件包括:
System(memory,CPU,network,etc.)
Docker
MySQL
PostgreSQL
Redis
示例代码:
package cn.huxi.tools.util; // simple.goimport "github.com/influxdb/telegraf/plugins"type Simple struct { Ok bool}func (s *Simple) Description() string { return "a demo plugin"}func (s *Simple) SampleConfig() string { return "ok = true # indicate if everything is fine"}func (s *Simple) Gather(acc plugins.Accumulator) error { if s.Ok { acc.Add("state", "pretty good", nil) } else { acc.Add("state", "not great", nil) } return nil}func init() { plugins.Add("simple", func() plugins.Plugin { &Simple{} })}
评论