- connTimeout: 单位是毫秒,与后端建立连接的超时时间,可以根据网络质量微调,建议保持默认
- callTimeout: 单位是毫秒,发送数据给后端的超时时间,可以根据网络质量微调,建议保持默认
- pingMethod: 后端提供的ping接口,用来探测连接是否可用,必须保持默认
- maxConns: 连接池相关配置,最大连接数,建议保持默认 - maxIdle: 连接池相关配置,最大空闲连接数,建议保持默认 - replicas: 这是一致性hash算法需要的节点副本数量,建议不要变更,保持默认即可
- cluster: key-value形式的字典,表示后端的judge列表,其中key代表后端judge名字,value代表的是具体的ip:port
graph
- enable: true/false, 表示是否开启向graph发送数据
- batch: 数据转发的批量大小,可以加快发送速度,建议保持默认值
- connTimeout: 单位是毫秒,与后端建立连接的超时时间,可以根据网络质量微调,建议保持默认
- callTimeout: 单位是毫秒,发送数据给后端的超时时间,可以根据网络质量微调,建议保持默认
- pingMethod: 后端提供的ping接口,用来探测连接是否可用,必须保持默认
- maxConns: 连接池相关配置,最大连接数,建议保持默认 - maxIdle: 连接池相关配置,最大空闲连接数,建议保持默认 - replicas: 这是一致性hash算法需要的节点副本数量,建议不要变更,保持默认即可
- cluster: key-value形式的字典,表示后端的graph列表,其中key代表后端graph名字,value代表的是具体的ip:port(多个地址用逗号隔开, transfer会将同一份数据发送至各个地址,利用这个特性可以实现数据的多重备份)
tsdb
- enabled: true/false, 表示是否开启向open tsdb发送数据 - batch: 数据转发的批量大小,可以加快发送速度
- connTimeout: 单位是毫秒,与后端建立连接的超时时间,可以根据网络质量微调,建议保持默认
- callTimeout: 单位是毫秒,发送数据给后端的超时时间,可以根据网络质量微调,建议保持默认
- maxConns: 连接池相关配置,最大连接数,建议保持默认 - maxIdle: 连接池相关配置,最大空闲连接数,建议保持默认 - retry: 连接后端的重试次数和发送数据的重试次数
- address: tsdb地址或者tsdb集群vip地址, 通过tcp连接tsdb.
3.3 Graph
graph是存储绘图数据的组件。graph组件 接收transfer组件推送上来的监控数据,同时处理query组件的查询请求、返回绘图数据。 # 校验服务,这里假定服务开启了6071的http监听端口。检验结果为ok表明服务正常启动。
curl -s \
启动服务后,可以通过日志查看服务的运行状态,日志文件地址为./var/app.log;如果需要详细的日志,可以将配置项debug设置为true。可以通过调试脚本./test/debug查看服务器的内部状态数据,如 运行 bash ./test/debug 可以得到服务器内部状态的统计信息。
配置说明 {
\是否开启debug日志 \
\表示是否开启该http端口,该端口为控制端口,主要用来对graph发送控制命令、统计命令、debug命令 \表示监听的http端口 }, \
\表示是否开启该rpc端口,该端口为数据接收端口
\表示监听的rpc端口 }, \
\绝对路径,历史数据的文件存储路径(如有必要,请修改为合适的路) }, \
\//MySQL的连接信息,默认用户名是root,密码为空,host为127.0.0.1,database为graph(如有必要,请修改),如果需要密码,在root:后跟密码 \连接池配置,连接池允许的最大连接数,保持默认即可 },
\调用超时时间,单位ms \扩容graph时历史数据自动迁移
\表示graph是否处于数据迁移状态 \数据迁移时的并发连接数,建议保持默认
\这是一致性hash算法需要的节点副本数量,建议不要变更,保持默认即可(必须和transfer的配置中保持一致) \未扩容前老的graph实例列表 \ } } }
3.4 query
query组件,提供统一的绘图数据查询入口。query组件接收查询请求,根据一致性哈希算法去相应的graph实例查询不同metric的数据,然后汇总拿到的数据,最后统一返回给用户。
# 校验服务,这里假定服务开启了9966的http监听端口。检验结果为ok表明服务正常启动。
curl -s \
服务启动后,可以通过日志查看服务的运行状态,日志文件地址为./var/app.log。可以通过查询脚本./scripts/query读取绘图数据,如 运行 bash ./scripts/query \可以查询Endpoint=\对应的绘图数据。
配置说明
注意: 请确保 graph.replicas和graph.cluster 的内容与transfer的配置完全一致 {
\是否开启debug日志 \
\是否开启http.server \监听地址&端口 }, \
\单位是毫秒,与后端graph建立连接的超时时间,可以根据网络质量微调,建议保持默认
\单位是毫秒,从后端graph读取数据的超时时间,可以根据网络质量微调,建议保持默认
\连接池相关配置,最大连接数,建议保持默认 \32, // 连接池相关配置,最大空闲连接数,建议保持默认 \这是一致性hash算法需要的节点副本数量,应该与transfer配置保持一致
\后端的graph列表,应该与transfer配置保持一致;不支持一条记录中配置两个地址 \\ },
\适配grafana需要的API配置
\的http地址 \的http地址 \返回结果的最大数量 } } }
部署完成query组件后,请修改dashboard组件的配置、使其能够正确寻址到query组件。请确保query组件的graph列表 与 transfer的配置 一致。
3.5 dashboard
dashboard是面向用户的查询界面。在这里,用户可以看到push到graph中的所有数据,并查看其趋势图。
Dashboard是个Python的项目。安装&部署Dashboard时,需要安装一些依赖库。依赖库安装,步骤如下,