安装
java依赖安装
reference
- sflow-rt blog:metric app中statistic的含义
编程
-
sflow-rt/get-app.sh sflow-rt browse-flows
-
简单/快速地起一个连接了sflow collector的mininet
sudo mn --custom sflow-rt/extras/sflow.py --link tc,bw=10 --topo tree,depth=2,fanout=3
如果要完全在完全定制化的拓扑里面倒入sflow功能,可以看官方的blog : mininet-flow-analytics-with-custom scripts
常用接口
reference
real-time-network-and-system-metrics-as a service 列出了很多常用的API和大概用法
找custom的接口
metric是基于定时器的
-
curl http://localhost:8008/metrics/json
-
查找具有最高输入和输出利用率的交换机端口
curl http://localhost:8008/metric/ALL/max:ifinutilization,max:ifoututilization/json
/metric/{Agent=ALL}/{metric(逗号隔开)}/json – 没有max/min之类的statistic指定也可以,默认就是max (但这个any其实没有很搞懂) -
获取用于存储在里面的表查询
curl http://localhost:8001/prometheus/metrics/ALL/ALL/txt
会把全网所有switch的所有端口的所有指标都输出出来,可以过滤一下,e.g. 只看入口速度
curl http://localhost:8001/prometheus/metrics/ALL/ifspeed/txt
flowkeys的接口是基于包采样的
基本api
- curl http://localhost:8008/flowkeys/json
获取从采样包头中提取的属性列表。可用属性取决于网络中流动的流量类型。有关这些列表的含义,请参阅官网的define flow。
flow定义 (其实我觉得就是流表定义)
- 定义session
curl -H "Content-Type:application/json" -X PUT \ --data '{"keys":"ipsource,ipdestination",value:"bytes"}' \ http://localhost:8008/flow/srcdst/json
- 可以基于新的流定义 进行metric获取 【实际上metric就是在流定义的时候用values定义了】
curl http://localhost:8008/metric/ALL/max:srcdst/json
不过这个流度量居然不是在所有端口都注册一遍??