Python 基於Python結合pykafka實現kafka生產及消費速率&主題分區偏移實時監控

来源:https://www.cnblogs.com/shouke/archive/2019/03/02/10463485.html
-Advertisement-
Play Games

基於Python結合pykafka實現kafka生產及消費速率&主題分區偏移實時監控 By: 授客 QQ:1033553122 1.測試環境 python 3.4 zookeeper-3.4.13.tar.gz 下載地址1: http://zookeeper.apache.org/releases. ...


基於Python結合pykafka實現kafka生產及消費速率&主題分區偏移實時監控

  By: 授客 QQ:1033553122

 

1.測試環境

python 3.4

 

zookeeper-3.4.13.tar.gz

下載地址1:

http://zookeeper.apache.org/releases.html#download

https://www.apache.org/dyn/closer.cgi/zookeeper/

https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/

 

下載地址2:

https://pan.baidu.com/s/1dnBgHvySE9pVRZXJVmezyQ

 

kafka_2.12-2.1.0.tgz

下載地址1:

http://kafka.apache.org/downloads.html

下載地址2:

https://pan.baidu.com/s/1VnHkJgy4iQ73j5rLbEL0jw

 

pykafka-2.8.0.tar.gz

下載地址1:

https://pypi.org/project/pykafka/

https://files.pythonhosted.org/packages/55/4b/4828ec5ed766cca0c27de234688122494c5762965e70deeb88b84f5d8d98/pykafka-2.8.0.tar.gz

  

 

2.實現功能

實時採集Kafka生產者主題生產速率,主題消費速率,主題分區偏移,消費組消費速率,支持同時對多個來自不同集群的主題進行實時採集,支持同時對多個消費組實時採集

 

 

 

3.使用前提

1、“主題消費速率”&“消費組消費速率” 統計 依賴“消費組”,所以要統計消費速率,必須存在消費組才能統計;

 

2、“主題消費速率”&“消費組消費速率” 統計 依賴消費者自動、手動提交“offset”,所以所以要統計消費速率,必須確保消費者消費時,會提交消息的offset

 

3、Kafka版本大於等於0.10.1.1

 

 

 

4.使用方法

influxDB主機配置

KafkaMonitor\conf\influxDB.conf

[INFLUXDB]

influxdb_host = 10.203.25.106

influxdb_port = 8086

 

brokers集群配置

KafkaMonitor\conf\brokers.conf

 

[CLUSTER1]

broker1 = 127.0.0.1:9092

 

[bus]

#broker1 =10.202.xxx.xx:9096,10.202.xx.xx:9096,10.202.xxx.x:9096

 

格式說明:

[集群名稱]

自定義brokers標識 = broker ip:port配置(如果有多個broker,用英文逗號分隔)

 

如果不想對指定集群進行監控(不監控該集群的主題生產、消費速率,主題分區偏移,消費組消費速率),用 # 號註釋掉 該集群的“自定義brokers標識” 所在行即可,如上

 

topics主題配置

KafkaMonitor\conf\brokers.conf

 

[CLUSTER1]

topic1 = MY_TOPIC1

 

[bus]

topic1=NEXT_MARM_CORE_REPORT

#topic2=NEXT_MARM_CORE_EVENT

 

格式說明:

[集群名稱]

自定義topic 標識 = topic名稱

 

如果不想對指定主題進行監控(不監控該主題的生產、消費速率,主題分區偏移,該主題相關消費組消費速率),用 # 號註釋掉 該集群的“自定義 topic標識” 所在行即可,如上

 

註意:每個集群名稱下的 自定義 topic 標識不能重覆

consumer_groups消費組配置

KafkaMonitor\conf\consumer_groups.conf

 

[CLUSTER1]
groupID1 = MY_TOPIC1|MY_GROUP1:5000

[bus]
#groupID1=NEXT_MARM_CORE_EVENT|NEXT_MARM_CORE_TASK
groupID2=NEXT_MARM_CORE_REPORT|NEXT_MARM_CORE_REPORT,NEXT_MARM_CORE_REPORTTAG

 

格式說明:

[集群名稱]

自定義consumer_groups 標識 = 主題名稱|消費該主題的消費組名稱[:提交msg offset的時間間隔(單位為 毫秒)](如果有多個消費組,彼此之間用逗號分隔)

 

註意:

1、如果有為消費組設置提交msg offset的時間間隔,並且該時間間隔大於統一設置的數據採集頻率,那麼該消費組的數據採集頻率將自動調整為對應的 提交msg offset的時間間隔/1000 + 1

2、主題消費速率的統計依賴消費該主題的所有消費組的數據信息,所以,同一個主題,不要配置在多個“自定義consumer_groups 標識”配置值中

3、主題消費速率數據採集頻率取最大值 max(統一設置的數據採集頻率,max(消費該主題的消費組提交msg offset的時間間隔/1000 + 1))

 

如果不想對指定消費組進行監控(不監控該消費組消費速率,消費組關聯的主題消費速率),用 # 號註釋掉 該集群的“自定義consumer_groups 標識” 所在行即可,如上,,或者把對應消費組及其提交msg offset的時間間隔信息刪除即可。

 

運行程式

python main.py 採集頻率(單位 秒) 採集時長

eg:

每5秒採集一次,總共採集120秒

python main.py 5 120

 

 

 

 

註意:

如果(根據配置自動調整後的)採集頻率時間間隔大於單次程式採樣耗時,則處理完成後立即進行下一次採樣,忽略採樣頻率設置,實際採集時長變長,但是採集次數不變 int(採集時長/採樣頻率)

 

grafana圖表配置

數據源配置

 

 

說明:Database db_+brokers.conf中配置的集群名稱

 

Dashboard變數配置

 

 

 

 

 

Dashboard Pannel主要配置項

 

 

 

 

 

效果展示

 

 

 

參考鏈接:

https://pykafka.readthedocs.io/en/latest/index.html

 

源碼下載地址:

https://gitee.com/ishouke/KafkaMonitor


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Django之路:安裝與配置 MTV Model Template View 資料庫 模版文件 業務處理 瞭解Django框架,功能齊全 一.安裝Django&Django基本配置 安裝Django pip3 django 配置Django 1.配置Django環境變數 D:\Program fil ...
  • 從生成器到協程 協程是指一個過程,這個過程與調用方協作,產出由調用方提供的值。生成器的調用方可以使用 .send(...)方法發送數據,發送的數據會成為yield表達式的值。因此,生成器可以作為協程使用。 從句法上看,生成器與協程都是包含yield關鍵字的函數。但是,在協程中,yield通常出現在表 ...
  • 對於程式員來說安全防禦,無非從兩個方面考慮,要麼前端要麼後臺。 一、首先從前端考慮過濾一些非法字元。 前端的主控js中,在<textarea> 輸入框標簽中,找到點擊發送按鈕後,追加到聊天panel前 進行過濾Input輸入內容 二、在後臺API服務解決反射型XSS漏洞 thinking:一般來說前 ...
  • 一般的程式員或許只需知道一些JAVA的語法結構,能對資料庫數據進行CRUD就可以應付了。但要成為JAVA(高級) 工程師,就要對JAVA做比較深入的研究,需要不斷學習進步,以下對高級工程師需要突破的知識點做個簡要整理 ...
  • 1、 "官網" 下載 選擇一個速度快的鏡像 推薦東軟這個 2、雙擊下載的安裝包,下一步 其中有一步是選擇Eclipse版本,SE選第一個,EE第二個。仔細審題吧。 3、配置JDK 應用、關閉 4、測試:寫個Hello World運行 1)New Project 寫個工程名 finish 2)在src ...
  • 當都為正數時,即1+2+3+...+99,如上,很簡單; 其實,計算正負相間的式子也很簡單,只需要加上一個標記正負號的變數乘到計數器上即可。 用一個布爾型變數來記錄執行加法還是減法,也能達到同樣的效果(這裡額外增加一個要求,就是剔除某個數後,保持正負相間的累加) 這樣,得到的就是1-2+3-4... ...
  • 今日不寫日感,直接扔上今日興趣點: 新研究稱火星曾經有一個巨大的地下水系統 鏈接:https://mbd.baidu.com/newspage/data/landingsuper?context=%7B"nid"%3A"news_6959868648919860397"%7D&n_type=0&p_ ...
  • 1、下載JDK "官網" 打開後,直接下載最新版本。 選擇dmg文件下載 2、開始安裝,一直下一步。 3、打開終端,查詢安裝路徑: ,複製備用。 4、配置Java的環境變數 1)打開終端,到主目錄 2)查看是否有.bash_profile文件 3)如果沒有新建一個 4)有了這個文件以後,進行編輯 , ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...