之前写这样的文章,总是分步骤贴log,这次想从类似方法论的角度来记录。毕竟我们要做的事情很多,难以穷尽,但是思路/方法/方向很多却是通用的。

获益开源

面对的第一个问题,就是如何将SONiC的Telemetry发出的gNMI信息转到数据库中。首先找到的是思科的pipeline。一番尝试之后,觉得这个工具还是主要为了配合思科自己的Telemetry使用。后来发现的了Telegraf,框架非常赞,靠不同的input和output起到数据格式读取/转化/写入的功能。尝试着用它的gnmi-plugin对接Arista EOS的Telemetry,数据是可以写入influxDB的,但是对接SONiC的Telemetry就不行了。

好在有人也有同样的需求。在GitHub上找到了有人专门为sonic写的telegraf的plugin。那种被“雪中送炭”的感觉真的很好。不过他给出的telegraf.conf有些问题,经过查看telemetry的实现代码,做了修正。看到一条条数据被写进DB,嗯,就是这个feeling。

问题是原来的库没有开issue选项,无法反馈。还有一个方法,就是自己fork一下这个库,然后在自己的库里把这个conf给修正。这样就可以帮助别的人少走弯路了。

使用docker

可视化过程中遇到了很多开源的工具。现在已经养成的习惯,一般不会去搜索如何安装这些软件,而是会去Docker Hub去翻有没有对应的docker镜像。其实这些组件不外乎通过监听端口接收数据,然后将处理的好的数据传给别处或者本地图形化。通过指定端口映射,最多再加一下文件夹挂载,几秒钟就可以开始直接用了。如果遇到问题,直接干掉docker然后重新启动就好,避免了很多的工作。

如果够细心,还能找到一些已经搭配好的docker镜像。例如有这样的一个docker镜像,InfluxDB/ChronoGraf/Grafana都已经放到一起了,使用起来非常方便。即便是多个docker,因为彼此都连在docker0这个bridge上,可以用docker0分配的172网段地址直接通信。

尝试与放弃

因为获取的数据是端口计数,本身这个数值是一直递增的,还是需要转换成端口速率才有监控的意义。

开始数据是通过telegraf写入influxDB,在网上搜索到可以通过Continuous Query来向一个新建的measurement写入数据,而且计算rate要用到influxDB的derivative函数。经过很多的尝试,要么没有数据,要么得到的结果总是不准确。

后来telegraf的output改为Prometheus,找到了它的rate/irate函数。开始的时候还是没有什么数据,后来发现因为计算周期是5分钟,要耐心地等待一些时间,积累了足够多的数据,线条就绘出了。

定位问题

调试总归不会是一帆风顺的。有两个方法还是挺管用的。

  • docker启动失败,可以通过id搜索docker的log路径,然后查看有什么报错
docker inspect --format '{{.LogPath}}' xxxxxxxxxxxxx
  • telegraf的conf里可以将debug设置为true,至少可以看到每过多长时间,向output的client写入了多少metrics
[agent]debug = true
  • Prometheus自己的WebUI就支持数据图形化呈现,可以确认有了,再定位对接Grafana。

SONiC(4)-Telemetry可视化相关推荐

  1. 行业研究-全球与中国音乐可视化软件市场现状及未来发展趋势

    本文研究全球及中国市场音乐可视化软件现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.日本.中国.东南亚.印度等地区的现状及未来发展趋势. 2019年全球音乐可视化软件市场规模 ...

  2. c# 数据可视化_#OpenVisConf上的22位数据可视化从业者的10点收获

    c# 数据可视化 by Siena Duplan 通过锡耶纳·杜普兰(Siena Duplan) #OpenVisConf上的22位数据可视化从业者的10点收获 (10 Takeaways from ...

  3. 端口镜像 流量过滤_技术盛宴 | 流量可视化之ERSPAN的前世今生

    SPAN(Switch Port Analyzer)是当下常用的网络监控和排错工具,SPAN也通常被称作端口镜像.它可以让我们以旁路的方式来监控网络流量,不会对现网的业务造成干扰,同时将监控流量的副本 ...

  4. 55种数据可视化开源工具_通过开源工具增强学生能力的15种方法

    55种数据可视化开源工具 该学年即将恢复,因此您将在接下来的几周内在Opensource.com上看到更多教育文章. 最近,我读了约翰·斯宾塞(John Spencer)和AJ朱利安尼(AJ Juli ...

  5. sonic——可替代Elasticsearch的简单搜索引擎

    简介 近期,笔者在github上发现了一个十分好玩的开源项目--sonic.sonic项目的介绍十分简单. ? Fast, lightweight & schema-less search b ...

  6. 不干正事儿系列文章1:Sonic Pi简单应用

    文章目录 Sonic Pi简单应用 0. Intro 1. Sonic Pi简单介绍 1.1 安装 1.2 案例 2. Sonic Pi和随机数 2.1 和弦的生成 2.2 旋律的生成 2.3 歌曲中 ...

  7. SONiC+P4实践——P4Runtime下发ACL表项

    转载请表明出处 注:SONiC系统为vs版本 Part1:实现外部宿主机与SONiC的网络连通 步骤 1:打开一个ubuntu系统安装kvm及其依赖 (1)查看CPU是否支持虚拟化 egrep -c ...

  8. 两种MQTT协议可视化调试工具

    两种MQTT协议可视化调试工具 一.MQTT技术背景 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一个基于客户端-服务器的消息发布/订阅 ...

  9. 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)

    置顶 本人决定将过去一段时间在公司以及日常生活中关于自然语言处理的相关技术积累,将在gitbook做一个简单分享,内容应该会很丰富,希望对你有所帮助,欢迎大家支持. 内容介绍如下 你是否曾经在租房时因 ...

  10. windows安装MongoDB环境以及在pycharm中配置可视化插件

    安装MongoDB数据库 参考这里 安装PyMongo python3 -m pip3 install pymongo指定版本 python3 -m pip3 install pymongo==3.5 ...

最新文章

  1. 如何编辑PDF文件,PDF编辑器如何使用
  2. [云炬创业管理笔记]第四章把握创业机会测试2
  3. 浅谈单片机中变量访问的互斥
  4. python中的语言特性_python自测——语言特性
  5. idea shell 中的函数 跳转_SpringBoot项目打包+shell脚本部署实践,太有用了
  6. Python- 解决PIP下载安装速度慢
  7. java判断有没有修改,java字节码判断对象应用是否被修改
  8. java情人节_情人节写给女朋友Java Swing代码程序
  9. mysql时间正确时区错误_在app中的日期时间但在mysql [时区]错误
  10. EDA实验课课程笔记(四)——TCL脚本语言的学习2
  11. Julia : 小s与关于绝对路径的转义方式
  12. 安装 Linux双系统
  13. c# 中崎_C# 打开钱箱支持北洋、佳博、爱普生
  14. 周立功USBCAN资料分享
  15. R语言之dpqr概率函数
  16. 解锁虚拟服务器,华为解锁码忘记了可以用云服务器
  17. cwe_checker 二进制静态漏洞检测工具的安装与使用
  18. 提出辞职可以用的五个理由推荐给大家
  19. CPU 是怎么认识代码的?
  20. 圣诞节快来了~用python做一个粒子烟花震撼众人赚个女孩回来吧~

热门文章

  1. 鸿蒙系统怎么安装网易云音乐,网易云音乐鸿蒙版app下载-网易云音乐鸿蒙版最新版下载v1.7.5-IT168下载站...
  2. 共享计算机后无法访问磁盘,Win7系统下无法访问共享硬盘怎么办?
  3. 类似京东商城客户端应用源码
  4. cacti graphs new.php,Cacti /graphs_new.php SQL Injection Vulnerability
  5. win10联机玩红警2
  6. Python爬取摩拜单车位置信息
  7. 数据结构与算法分析:实现list【理解 iter++ 和 ++iter 】
  8. 想当年我拿着两把西瓜刀……
  9. DOS下常用命令介绍
  10. Jenkins上配置Robot Framework测试邮件通知模板