组件分享之后端组件——基于Golang实现的用于收集、处理、聚合和编写指标的代理telegraf...

组件分享之后端组件——基于Golang实现的用于收集、处理、聚合和编写指标的代理telegraf

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

内容

本节我们分享一个基于Golang实现的用于收集、处理、聚合和编写指标的代理telegraf

image.png

它有四种不同类型的插件:

  1. 输入插件从系统、服务或第 3 方 API 收集指标
  2. 处理器插件转换、装饰和/或过滤指标
  3. 聚合器插件创建聚合指标(例如平均值、最小值、最大值、分位数等)
  4. 输出插件将指标写入各种目的地

最低要求

Telegraf与 Go具有相同的最低要求:

  • Linux 内核版本 2.6.23 或更高版本
  • Windows 7 或更高版本
  • FreeBSD 11.2 或更高版本
  • MacOS 10.11 El Capitan 或更高版本

以下是其中输入插件的使用实例:

输入插件指南
  • 插件必须符合telegraf.Input接口。
  • 输入插件应该调用inputs.Add它们的init函数来注册自己。请参阅下面的快速示例。
  • 输入插件必须添加到 github.com/influxdata/telegraf/plugins/inputs/all/all.go文件中。
  • 每个插件都需要一个名为的文件,sample.conf其中包含 TOML 格式的插件示例配置。请查阅示例配置页面以获取最新的样式指南。
  • 每个插件README.md文件都应该通过在表单中sample.conf指定一个部分来将文件包含在描述配置的部分中。然后将指定的文件自动注入自述文件中。toml``toml @sample.conf
  • 遵循推荐的代码风格
//go:generate ../../../tools/readme_config_includer/generator
package simple

import (
    _ "embed"

    "github.com/influxdata/telegraf"
    "github.com/influxdata/telegraf/plugins/inputs"
)

// DO NOT REMOVE THE NEXT TWO LINES! This is required to embed the sampleConfig data.
//go:embed sample.conf
var sampleConfig string

type Simple struct {
    Ok  bool            `toml:"ok"`
    Log telegraf.Logger `toml:"-"`
}

func (*Simple) SampleConfig() string {
    return sampleConfig
}

// Init用于设置和验证配置。
func (s *Simple) Init() error {
    return nil
}

func (s *Simple) Gather(acc telegraf.Accumulator) error {
    if s.Ok {
        acc.AddFields("state", map[string]interface{}{"value": "pretty good"}, nil)
    } else {
        acc.AddFields("state", map[string]interface{}{"value": "not great"}, nil)
    }

    return nil
}

func init() {
    inputs.Add("simple", func() telegraf.Input { return &Simple{} })
}

更多详细文档可以参考官方提供的文档说明

本文声明:
88x31.png
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CN華少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值