暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【连载】说透运维监控系统-4.2讲解Categraf采集器

夜莺监控 2022-07-13
1906

上一节我们介绍了采集器的大概逻辑,这一节我们来介绍一款采集器:Categraf。

Categraf 是一个监控采集 Agent,类似 Telegraf、Grafana-Agent、Datadog-Agent,希望对所有常见监控对象提供监控数据采集能力,采用 All-in-one 的设计,不但支持指标采集,也希望支持日志和调用链路的数据采集。来自快猫研发团队,和 Open-Falcon、Nightingale 的研发是一拨人。

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

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

categraf 和 telegraf、exporters、grafana-agent、datadog-agent 等的关系是什么?

telegraf 是 influxdb 生态的产品,因为 influxdb 是支持字符串数据的,所以 telegraf 采集的很多 field 是字符串类型,另外 influxdb 的设计,允许 labels 是非稳态结构,比如 result_code 标签,有时其 value 是 0,有时其 value 是 1,在 influxdb 中都可以接受。但是上面两点,在类似 prometheus 的时序库中,处理起来就很麻烦。

prometheus 生态有各种 exporters,但是设计逻辑都是一个监控类型一个 exporter,甚至一个实例一个 exporter,生产环境可能会部署特别多的 exporters,管理起来略麻烦。

grafana-agent import 了大量 exporters 的代码,没有裁剪,没有优化,没有最佳实践在产品上的落地,有些中间件,仍然是一个 grafana-agent 一个目标实例,管理起来也很不方便。

datadog-agent确实是集大成者,但是大量代码是 python 的,整个发布包也比较大,有不少历史包袱,而且生态上是自成一派,和社区相对割裂。

categraf 确实又是一个轮子,categraf 希望:

  • 支持 remote_write 写入协议,支持将数据写入 promethues、M3DB、VictoriaMetrics、InfluxDB
  • 指标数据只采集数值,不采集字符串,标签维持稳态结构
  • 采用 all-in-one 的设计,所有的采集工作用一个 agent 搞定,未来也可以把日志和 trace 的采集纳入 agent
  • 纯 Go 代码编写,静态编译依赖少,容易分发,易于安装
  • 尽可能落地最佳实践,不需要采集的数据无需采集,针对可能会对时序库造成高基数的问题在采集侧做出处理
  • 常用的采集器,不但提供采集能力,还要整理出监控大盘和告警规则,用户可以直接导入使用
  • 未来希望作为快猫 SaaS 产品的重要组成部分,引入快猫团队的研发力量持续迭代,当然,希望更多的公司、更多人研发人员参与共建,做成国内最开放、最好用的采集器

录制了3个小视频给大家入门,讲解Categraf的下载安装部署、配置文件、常用采集插件:

本章就介绍到这里,该系列文章教程会持续更新,欢迎关注本公众号,后续内容会持续放出,欢迎一键三连,给笔者继续更新下去的动力 :)

  • 作者:龙渊秦五,网络ID:UlricQin,个人主页:https://ulricqin.github.io
  • 夜莺:一款云原生监控系统,国产开源,隶属中国计算机学会开源发展委员会,项目主站:https://n9e.github.io/
文章转载自夜莺监控,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论