写点什么

手把手教你编写自定义 Categraf 插件

  • 2024-11-05
    北京
  • 本文字数:910 字

    阅读完需:约 3 分钟

本文分享自天翼云开发者社区《手把手教你编写自定义Categraf插件》,作者:任****佳


Categraf 是一个监控采集 Agent,类似 Telegraf、Grafana-Agent、Datadog-Agent,希望对所有常见监控对象提供监控数据采集能力,采用 All-in-one 的设计,不但支持指标采集,也希望支持日志和调用链路的数据采集。相比于其他采集器,Categraf 的优势在于:支持 remote_write 写入协议,支持将数据写入 promethues、M3DB、VictoriaMetrics、InfluxDB;指标数据只采集数值,不采集字符串,标签维持稳态结构;采用 all-in-one 的设计,所有的采集工作用一个 agent 搞定;未来也可以把日志和 trace 的采集纳入 agent;纯 Go 代码编写,静态编译依赖少,容易分发,易于安装。


教你编写自定义 Categraf 插件:

下面以自定义 http_response 插件为例;

http_response 插件作用:解析 http 响应,该响应可以是获取的监控数据,再将响应写入指定的监控数据库,如 promethues、VictoriaMetrics、InfluxDB 等;


http_response 插件编写思路:

1.拉取官方代码仓库项目,在插件目录 input 文件夹下建 http_response 文件夹,在 http_response 文件夹下建立 http_response.go

2.http_response.go 以任意一个官方已有插件 go 文件为模板粘贴,此处以 tomcat 插件为例,先将涉及插件名称的地方改为 http_response

3.在解释器目录 parser 文件夹下 httpresponse 文件夹,在 httpresponse 文件夹下建立 parser.go

4.parser.go 中解析的 http 响应数据的方法,并调用 SampleList 类的 PushSample 或 PushSamples 方法推送监控数据

5.在 http_response.go 中将初始化方法 func (ins *Instance) Init() 中调用解释器即可

6.在配置文件目录 conf 下建立 inputs.http_response 文件夹,在 inputs.http_response 文件夹下增加 http_response.toml

7.http_response.toml 中增加需要的配置,如



8.在代理注册 agent 文件下的 metrics_agent.go 中导入自定义插件的路径,如_ "flashcat.cloud/categraf/inputs/http_response"

9.调试插件:可以将不启用插件的 conf 下的配置文件删除或重命名,或将 agent 下的注册插件注释即可


Categraf 的官方代码托管在两个地方:

- github:https://github.com/flashcatcloud/categraf- gitlink:https://www.gitlink.org.cn/flashcat/categraf

 

用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
手把手教你编写自定义Categraf插件_Categraf_天翼云开发者社区_InfoQ写作社区