功能
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:9966 提供一組查詢接口API
API接口
-
http://127.0.0.1:9966/graph/info 查看endpoint 和counter數據屬性 method:POST
-
http://127.0.0.1:9966/graph/history 查詢歷史數據 method:POST
-
http://127.0.0.1:9966/graph/last 查詢最新上報的一個點數據 method:POST
-
http://127.0.0.1:9966/counter/all 獲取所有counter method:GET
查詢流程
-
從query中查詢數據需要提供endpoint和counter
-
query收到查詢請求,根據提供的endpoin和counter進行一致性hash,在hash環上找到對應的graph
3.向對應的graph 發送查詢數據的請求
4.重新組合規整graph返回額的數據,最后返回給用戶