query組件,提供統一的繪圖數據查詢入口。query組件接收查詢請求,根據一致性哈希算法去相應的graph實例查詢不一樣metric的數據,而後彙總拿到的數據,最後統一返回給用戶。算法
{ "debug": "false", // 是否開啓debug日誌 "http": { "enabled": true, // 是否開啓http.server "listen": "0.0.0.0:9966" // http.server監聽地址&端口 }, "graph": { "connTimeout": 1000, // 單位是毫秒,與後端graph創建鏈接的超時時間,能夠根據網絡質量微調,建議保持默認 "callTimeout": 5000, // 單位是毫秒,從後端graph讀取數據的超時時間,能夠根據網絡質量微調,建議保持默認 "maxConns": 32, // 鏈接池相關配置,最大鏈接數,建議保持默認 "maxIdle": 32, // 鏈接池相關配置,最大空閒鏈接數,建議保持默認 "replicas": 500, // 這是一致性hash算法須要的節點副本數量,應該與transfer配置保持一致 "cluster": { // 後端的graph列表,應該與transfer配置保持一致;不支持一條記錄中配置兩個地址 "graph-00": "test.hostname01:6070", "graph-01": "test.hostname02:6070" } }, "api": { // 適配grafana須要的API配置 "query": "http://127.0.0.1:9966", // query的http地址 "dashboard": "http://127.0.0.1:8081", // dashboard的http地址 "max": 500 //API返回結果的最大數量 } }
http://127.0.0.1:9966/graph/info 查看endpoint 和counter數據屬性 method:POST後端
http://127.0.0.1:9966/graph/history 查詢歷史數據 method:POSTapi
http://127.0.0.1:9966/graph/last 查詢最新上報的一個點數據 method:POST網絡
http://127.0.0.1:9966/counter/all 獲取全部counter method:GETdebug
從query中查詢數據須要提供endpoint和counter日誌
query收到查詢請求,根據提供的endpoin和counter進行一致性hash,在hash環上找到對應的graphcode
3.向對應的graph 發送查詢數據的請求server
4.從新組合規整graph返回額的數據,最後返回給用戶接口