Prometheus kafka 消息隊列適配器

        最近工做上有個需求,須要把prometheus 採集到的數據上報到kafka消息隊列,看了下官方實現,prometheus 支持remote_write / remote_read 的方式擴展,能夠在此基礎上作文章。git


        github 上面有個現成的插件,看了一下,主要存在如下一些問題:        github

        一、從環境變量讀取配置(不夠靈活,後續很差優化,不能作到配置熱加載)        golang

        二、把client 對象建立的邏輯放到了http handler裏面(每次prometheus 調用/write 接口,都要new一個對象...)        異步

        三、使用golang kafka 插件sarama 的同步生產者方式寫數據(數據量大的狀況下,性能可能跟不上)ide


        因而本身動手寫一個插件,練練手。性能


        代碼比較簡單,就是以插件的方式部署適配器,接收prometheus 產生的數據並經過異步kafka 生產者模式,將數據輸送給kafka。優化


        大體邏輯是這樣:        插件

        一、從配置文件中獲取kafka相關配置        對象

        二、本地監聽9201 端口提供http 服務供prometheus 寫入數據        接口

        三、從/write API 獲取到prometheus監控數據後,將數據寫入到channel        

        四、起一個kafka 異步生產者,從channel裏面讀取監控數據,並寫入到kafka


QQ截圖20190817101836.jpg


        代碼具體代碼:

        https://gitee.com/pmghong/prometheus-kafka-adapter

相關文章
相關標籤/搜索