功能
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返回额的数据,最后返回给用户