调用链跟踪系统之 Vaper

栏目: 服务器 · Nginx · 发布时间: 6年前

内容简介:本系列文章,主要针对运维工作中值得推荐的系统、工具进行总结和分享,也欢迎小粉们投稿~针对业务层调用链的监控的系统比较多,例如开源的有incubator-skywalking、Pingpoint、Cat ,商用的有NewRelic、OneAPM等可以方便的获取业务程序内部调用关系及耗时等数据,但是在Java应用层无法获取数据库集群、缓存集群、负载均衡集群等服务调用关系,尤其在服务调用复杂的环境,清晰知晓服务之间调用关系对排障非常有用。因此,Vaper应运而生。如果需要收集贯穿整个系统的关系信息,网络流向数据

本系列文章,主要针对运维工作中值得推荐的系统、 工具 进行总结和分享,也欢迎小粉们投稿~

背景

针对业务层调用链的监控的系统比较多,例如开源的有incubator-skywalking、Pingpoint、Cat ,商用的有NewRelic、OneAPM等可以方便的获取业务程序内部调用关系及耗时等数据,但是在 Java 应用层无法获取数据库集群、缓存集群、负载均衡集群等服务调用关系,尤其在服务调用复杂的环境,清晰知晓服务之间调用关系对排障非常有用。因此,Vaper应运而生。

设计思路

如果需要收集贯穿整个系统的关系信息,网络流向数据是最合适的。不论什么语言开发的系统,在系统间产生调用关系的时候总会有网络流向数据产生,这就是Vaper的基本工作原理。

Vaper的节点和关系数据存储在Neo4j图形数据库,Agent是一个小巧的Golang程序,基于Libcap构建,架构图如下:

调用链跟踪系统之 Vaper

  • Agent在操作系统层面收集操作系统信息,网络流向数据,以及端口对应的进程信息,在配置文件中可以设置采样率

  • 数据收集完成后通过http方式将数据上报给VaperServer,根据上报的数据创建节点和关系,就完成了调用链数据的构建

部署测试

Vaper单例部署

Vaper + Demo部署

通过文字来描述一个的elasticsearch服务,两个metricbeat 程序采集了性能数据,发送到logstash服务,logstash将数据送到nginx,nginx将请求分流到3个elasticseach节点,用户打开kibana通过nginx读取消费了监控数据。 用vaper来描述这个系统:

Vaper访问地址:http://ip:3000

调用链跟踪系统之 Vaper

优势

  • vaper调用链拓扑生成跨语言、跨操作系统

  • 只要程序运行在操作系统上的,理论上都可以被采集到数据,适配成本低

TODO

  • 支持非Agent方式采集数据,例如: 配合自动化工具获取数据

  • 多种协议支持,例如UDP等

  • 实现JavaScript Agent,在调用链中添加浏览器节点

  • Agent性能测试

其他

  • Github: https://github.com/vapering/vaper

欢迎进群与作者讨论~

调用链跟踪系统之 Vaper

看完本文有收获?请转发分享给更多人

欢迎关注“运维ABC” (AI、BigData、Cloud),运维技术社区,专注运维自动化、DevOps、AIOPS、ChatOPS、容器等落地与实践


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Spring Into HTML and CSS

Spring Into HTML and CSS

Molly E. Holzschlag / Addison-Wesley Professional / 2005-5-2 / USD 34.99

The fastest route to true HTML/CSS mastery! Need to build a web site? Or update one? Or just create some effective new web content? Maybe you just need to update your skills, do the job better. Welco......一起来看看 《Spring Into HTML and CSS》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具