Closed chia7712 closed 2 years ago
@chia7712 問個小問題, 我們的程式碼是不是應該寫在自己建立的獨立 Gradle subproject [1]。 感覺這樣我們的 metrics tool 的依賴(JCommander & others)不會汙染到其他 subproject。
謝謝
考量程式碼之間可能的依賴,我們先用同一個module,如此簡化專案結構,如果我們專案真的成長到一個非常龐大的狀態,可以到時候再來切割
實作一個 Utility, 能夠取得 broker 的 raw metrics 實作一個物件/機制/函式庫可以索取特定的 Kafka broker metrics
@chia7712 這兩個 task 我要不要先處理後者,感覺上後者的急迫性比較高
雖然上面這麼說,不過我已經大致上想好 raw metrics tool 的 command-line usage 了,我先貼在下面讓大家看看有沒有問題
我 metrics tool 使用上主要分成兩個考量,給人用(usage 1)和給腳本或其他工具串接用(usage 2)
########
Usage 1:
./mbean-explorer <where are the hosts> [domain scope] [how to fetch] [how to display]
1. where is the host
--servers
2. domain scope
--domain <domain> (domain to search, by default is "*")
3. how to fetch
--all (default option, all mbeans)
--search <string> (search any property key/value contain string)
--search-key <string> (search any property key contain string)
--search-value <string> (search any property value contain string)
--properties <properties-list> (search by given property list)
4. how to display the result
--show human (default, show data in human-friendly way, maybe with color)
--show object-name (show object name only, one line each)
--show object-name-tree (show object name only, display as a tree (like how JMC show it))
--show csv (output as CSV format)
Example:
./mbean-explorer --servers localhost:5566 (search all mbeans)
./mbean-explorer --servers localhost:5566 --search /tmp/kafka-logs (looking for mbean related to the log dir)
./mbean-explorer --servers localhost:5566 --search-key logDirectory (try to find all mbean related to logDirectory)
./mbean-explorer --servers localhost:5566 --search-value Fetch (try to looking for RequestMetrics of Fetch)
./mbean-explorer --servers localhost:5566 --properties logDirectory="/tmp/kafka-logs"
########
Usage 2:
./mbean-explorer <where are the hosts> --fetch <ObjectName> [how to display]
--fetch <object-name> (use raw ObjectName to fetch data)
Example
./mbean-explorer --servers localhost:5566 --fetch java.lang:type=Memory
這兩個 task 我要不要先處理後者,感覺上後者的急迫性比較高
沒錯,後者現階段比較重要 @wycccccc FYI
--servers
這個能否統一成"--bootstrap.servers"?
另一個需要確認的規格為: 有哪些metrics跟效能最有關係?這需要@wycccccc一起討論,現階段用來評分的指標有哪些?kafka有四個重要的硬體效能: cpu, memory, disk I/O, network I/O,這四個分別需要看哪些metrics? 可能要麻煩條列整理一下
這個能否統一成"--bootstrap.servers"?
這部分很難說,我當初的考量是,我們是在連 JMX 而非 Kafka RPC ,所以擔心混用會引發誤會
這部分很難說,我當初的考量是,我們是在連 JMX 而非 Kafka RPC ,所以擔心混用會引發誤會
你說的對,我剛剛忘記是要連jmx server了。那就保持你原本的命名~
cpu, memory, disk I/O, network I/O,這四個分別需要看哪些metrics? 可能要麻煩條列整理一下
可以參考: https://docs.confluent.io/platform/current/kafka/monitoring.html
實作一工具能檢視當前叢集的效能狀態
@chia7712 這個部分可以直接用 Grafana 配上 node_exporter 嗎
這個部分可以直接用 Grafana 配上 node_exporter 嗎
當然,可以試試看現在腳本裡的prometheus
如何整合Grafana
目的
效能驗證後,除了常見的吞吐量和延遲以外,我們也需要知道各個叢集在這一次測試中,各個節點各自貢獻了多少力氣
預期可看到的指標
可能的使用方式
output
tasks
From https://github.com/skiptests/astraea/pull/14#discussion_r706036944