您好,登錄后才能下訂單哦!
????????最近工作上有個需求,需要把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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。