Prometheuskafka消息队列适配器
最近工作上有个需求,需要把prometheus 采集到的数据上报到kafka消息队列,看了下官方实现,prometheus 支持remote_write / remote_read 的方式扩展,可以在此基础上做文章。
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都网站建设、外贸网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的平坝网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
github 上面有个现成的插件,看了一下,主要存在以下一些问题:
1、从环境变量读取配置(不够灵活,后续不好优化,不能做到配置热加载)
2、把client 对象创建的逻辑放到了http handler里面(每次prometheus 调用/write 接口,都要new一个对象...)
3、使用golang kafka 插件sarama 的同步生产者方式写数据(数据量大的情况下,性能可能跟不上)
于是自己动手写一个插件,练练手。
代码比较简单,就是以插件的方式部署适配器,接收prometheus 产生的数据并通过异步kafka 生产者模式,将数据输送给kafka。
大致逻辑是这样:
1、从配置文件中获取kafka相关配置
2、本地监听9201 端口提供http 服务供prometheus 写入数据
3、从/write API 获取到prometheus监控数据后,将数据写入到channel
4、起一个kafka 异步生产者,从channel里面读取监控数据,并写入到kafka
代码具体代码:
https://gitee.com/pmghong/prometheus-kafka-adapter
文章题目:Prometheuskafka消息队列适配器
分享路径:http://myzitong.com/article/gsssih.html