首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >组件分享之后端组件——基于Golang实现的用于收集、处理、聚合和编写指标的代理telegraf

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

作者头像
cn華少
发布2022-06-14 15:53:04
发布2022-06-14 15:53:04
7630
举报
文章被收录于专栏:IT综合技术分享IT综合技术分享

组件分享之后端组件——基于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
  • 遵循推荐的代码风格
代码语言:javascript
复制
//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{} })
}

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

知识共享许可协议

本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 组件分享之后端组件——基于Golang实现的用于收集、处理、聚合和编写指标的代理telegraf
    • 背景
    • 组件基本信息
    • 内容
      • 最低要求
      • 以下是其中输入插件的使用实例:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档