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