调用链跟踪系统之 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、容器等落地与实践


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

查看所有标签

猜你喜欢:

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

C程序设计的抽象思维

C程序设计的抽象思维

Eric S.Roberts / 闪四清 / 机械工业出版社 / 2012-5 / 99.00元

Eric S. Roberts所著的《C程序设计的抽象思维》是一本关于C语言的经典图书。本书共计17章,分为4部分,第一部分概述计算机导论课程中涉及的基本编程概念;第二部分讨论递归算法,其中结合大量示例,有助于读者轻松理解和掌握晦涩的概念;第三部分不仅介绍了用非递归算法实现的抽象数据类型,还提供了一些工具,有助于读者理解数据抽象的概念;第四部分重点介绍采用递归算法实现的抽象数据类型。本书重点突出,......一起来看看 《C程序设计的抽象思维》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具