/pingmesh-graduate-project-2018

This is the Microsoft Azure Data center Network monitoring latency system and visualization system.It is composed of three : agent & controller & DSA

Primary LanguageHTML

Pingmesh reimplementation

idea from: 郭传雄 SIGCOMM

✅的表示参考文档,表格内是进展,* 后表示代码更新处

Log format:

The log file consist of many lines, each line in log file is a json object and is formatted like below

{"Host": "10.2.96.50", "Timestamp": 1523263580577352,"Entries": ["timestamp", "src", "Dst", "protocol", "RTT"], ...]}

Example:

result.json

{"host":"192.168.1.1","timestamp":1524502747,"num":1,"entries":[[1524502747,"192.168.1.1",8910,"192.168.1.41",8910,"tcp","tor",0,0.000823,0]]}

分成三块Json:

1.data.json

var data = {
"data":[
[[0, 0, 0], [0, 1, 82], [0, 2, 57], [0, 3, 74], [0, 4, 70], [0, 5, 66], [0, 6, 65], [0, 7, 64], [1, 0, 179]...]...]};

2.timestamp.json

var timestamp = {
"timestamp":[[1524502747,1524502750,1524502753,1524502756]]};

3.server.json

var server = {
"server":[["192.168.1.1","192.168.1.40","192.168.1.41","192.168.1.42","192.168.1.46","192.168.1.48","192.168.1.49","192.168.1.50"]]};

毕设参考文档及每日进展:

2018/04/10:

Series Done
1 定义数据格式Log
2 实现python pingmesh10v10可视化 +latency cdf图
3 实现Python pingmesh40V40可视化
4 构造自动生成数据程序

✅latency可视化 ✅Seaborn教程 ✅Seaborn颜色调整

2018/04/11:

Series Done
1 第一个C++程序
2 实现socket 简易版通讯
3 实现socket 人机交互版通讯

✅如何写Ping程序 ✅Socket c++

2018/04/12:

Series Done
1 实现Server加个time的ping
2 实现两台服务器之间的ping
3 实现自动计时
4 得到log数据

✅服务器配置 ✅两台服务器上ping ✅不同的服务器之间的跳转 ✅socket+linux

2018/04/13:

Series Done
1 完成log输出 Timestamp, SrcIP, SrcPort, DstIP, DstPort, Protocol, ProbingType, MsgLen, RTT, ErrCode
2   完成shell脚本/python模拟shell脚本,记录nc,ping的时间,得到baseline
3 参考goaccess做log文档直接分析可视化监控

✅重要APUE.16 chapter ✅改用输出到printf ✅重要ping;nc文档 ✅linux net 命令大全(好东西) ✅Goaccess ✅nc命令构造http请求;重要

2018/04/16:

Series Done
1 json格式输出
2   改成:server ping 多次 client 多次 fork
3 改成文件储存版本,并且存到server端
4 设定时间3S一发送

✅C语言语法 ✅Tcp server 1ping n client

2018/04/17:

Series Done
1 expect 和 spawn 和 key-generate 免除钥匙自动登录
2 &实现后台操作的shell
3 shell自动化操作

✅如何写shell并行所有程序 ✅shell登录多台服务器 ✅免密码配置公共钥匙 ✅自动输入密码 ✅expect 和 spawn自动登录 ✅伪终端 ✅argv

2018/04/19:

Series Done
1 初始demo,shell读数据C++PING,python画图一体化,以两个server为例
2 读文件到python;用json画图
3 写clear.sh,调出2个bug

✅python解析json文件

第一版demo的操作指南

  • 准备部分: 需要的文件在version12里面:bb.sh(main); clear.sh; s12.cpp; c12.cpp ;vis.py

  • 代码部分:把这些文件全部放到v11内,运行下面部分代码,可以得到实时的ping的值,输入绘图参数,得到热力图和Latency_cdf结果

ssh yiqing@192.168.2.254
cd pingmesh/v11
mkdir 100
mkdir 101
bash bb.sh

✅APUE ✅经典必看 socket有关的编程项目

2018/04/21:

Series Done
1 添加clearmy.sh,实现pingmesh之后复原工作
2 添加automatickey.sh,实现pingmesh自动配网关到服务器之间秘钥

2018/04/23:

Series Done
1 第二版demo,shell读数据,clean,key作用,C++PING,python画图一体化,以两个server为例
2 后台双向并行,使得同时获得同一时刻所有数据
3 根据pinglist中server个数,自动实现获取服务器两两ping的数据

✅Linux如何读取文件保存到数组

第二版demo的操作指南

  • 准备部分: 需要的文件在version13里面:main.sh; clearmy.sh;

  • 代码部分:把这些文件全部放到v13内,运行下面部分代码,可以得到实时的ping的值

ssh yiqing@143.89.191.114
cd pingmesh
bash main.sh
每次运行完毕后需要
bash clearmy.sh
  • 结构图: Structure
  • 包含文件内容图 Contain

2018/04/24:

Series Done
1 8*8 服务器server client; 4个Timestamp图
2 Python采用automatic动图;能够生成不同timestamp下的图
3 完成毕设中期进展,中期答辩PPT,demo2, 结构图,待提高

✅python动图

  • 待提高点: Imrovement

2018/05/09:

Series Done
1 将vis改成html形式,Echarts添加服务器真实数据,画好heatmap

✅Echarts学习 ✅Echarts timestamp ✅javascript 输出数据

2018/05/10:

Series Done
1 将Echarts合并timestamp,可变动的pingmesh图

✅html语言入门 ✅Echarts文档 ✅Echarts TimeLine 教程

2018/05/11:

Series Done
1 改进vismap 彩色坐标标轴
2 添加涟漪特效:对于latency延误在前3位的数字
3 合并另一个Latency图
  • 旧的可视化效果: Old Pingmesh Visulization
  • 可视化新效果 New Pingmesh visulization

✅Echarts高亮 ✅网页切块 ✅好看的分割线 ✅画latency的图

2018/05/12:

Series Done
1 正确显示latency
2 添加zoom可缩放条+animation特效
3 合并两个container到一张图
  • 可视化完整效果 New Pingmesh visulization

✅多条线段 ✅分段色彩 ✅ datazoom

2018/05/15:

Series Done
1 论文提纲完成撰写一部分
2 研读+RDMA 缺点论文

✅RDMA over Commodity Ethernet at Scale

2018/05/16:

Series Done
1 论文完成2/3
2 参考RDMA论文
3 制定last11-things计划
4 DEMO3介绍完成

✅Stanford NetSight1 ✅Stanford NetSight2 ✅Microsoft Pingmesh ✅RDMA VS TCP ✅DC needs RDMA ✅RDMA over Ethernet中文版 ✅RDMA PFC死锁 RDMA活锁 郭传雄草稿 ✅ 吞吐与延迟 ✅RDMA no need of lossless ✅RDMA 的性能异常

第三版demo的操作指南

  • 所需文件:
  • 代码部分:见agent-con-dsa/demo3
ssh yiqing@143.89.191.114
cd pingmesh
//预配置环境
bash automatekey.sh
bash clearmy.sh
//主程序
bash main.sh
//画图程序
cd DSA
python json2html.py
open ping-vis.html

2018/05/17:

Series Done
1 论文除RDMA部分全部完成
2 论文修订格式
3 图片及待做实验

1.数据中心网络拓扑结构图

2.RDMA和TCP/IP的传输路径对比图

3.RDMA在数据中心中的应用

4.网络监测系统中agent模块内容

5.网络监测系统中controller模块内容

6.main.sh运行操作代码

7.网络监测系统中DSA模块内容

8.微软pingmesh可视化效果图

9.网络监测系统旧版本可视化效果

10.网络监测系统新版本可视化效果图

11.网络监测系统运行流程图(待更新)

12.网络监测系统运行操作代码

13.网络监测系统GUI界面(待做)

14.不同时间点下TCP/IP热力图可视化(I)时序图 ✅

15.不同时间点下TCP/IP条形图可视化(II)时序图 ✅

16.RDMA和TCP/IP不同的可视化效果对比图(待做)

17.RDMA网络下时序图产生的特殊点orPattern分析图(待做)

18.大规模数据中心仿真实验的可视化新结果(I) ✅

19.大规模数据中心仿真实验的可视化新结果(II) ✅

20.【我分别在网络空载的情况下和网络负载的情况下进行我的实验,对得出的Pattern进行分析】(待做)

2018/05/18:

Series Done
1 论文参考文献修订
2 大规模数据生成
3 去除labelshow数字点标成为单纯图
4 添加slider滑动轴
5 构造论文中的TOR出错情况

✅python 正态分布随机数

在大规模数据中心网络集群情况下的可视化情况:+ ZOOM 缩放条

Big Scale Visualization

仿真网络出错(server,podset)实验:

当数据规模上1000x1000

呈现完整的图会非常的慢,由于计算力有限 图像呈现太慢 现在想到的方法是: 1.以SPINE为单位求均值+最大值的图

2.开10个屏幕,每个屏幕展现100x100界面,但分别是0-100 server Ping 0-100 server,100-200 server Ping 100-200 server,...以此类推 若一个server坏了,这10个里必能检测到。

2018/05/25:

Series Done
1 论文全文完成

2018/05/26:

Series Done
1 初步界面设计

2018/05/29:

Series Done
1 添加tkinter界面
2 添加button清除后不同效果
3 添加一个时间stamp的选项
4 添加一个RDMA or TCP/IP的选择
5 添加一个不断得PING,实时读取数据

(✅python登录那个ssh)[http://www.cnblogs.com/hushaojun/p/4607514.html]

2018/06/04

Interface