Pinpoint历史
Pinpoint是一个分析大型分布式系统的平台,提供解决方案来处理海量跟踪数据。
2012年七月开始开发,2015年1月9日作为开源项目启动。
本文将介绍Pinpoint: 什么促使我们开始搭建它, 用了什么技术, 还有Pinpoint agent是如何优化的。
开始动机 & Pinpoint特点
和如今相比, 过去的因特网的用户数量相对较小,而因特网服务的架构也没有那么复杂。web服务通常使用两层(web 服务器和数据库)或三层(web服务器,应用服务器和数据库)架构。然而在如今,随着互联网的成长,需要支持大量的并发连接,并且需要将功能和服务有机结合,导致更加复杂的软件栈组合。更确切地说,比三层层次更多的N层架构变得更加普遍。SOA和微服务架构成为现实。
系统的复杂度因此提升。系统越复杂,越难解决问题,例如系统错误或者性能问题。在三层架构中找到解决方案还不是太难,仅仅需要分析3个组件比如web服务器,应用服务器和数据库,而且服务器数量也不多。但是,如果问题发生在N层架构中,就需要调查大量的组件和服务器。另一个问题是仅仅分析单个组件很难看到大局;当发生一个低可见度的问题时,系统复杂度越高,就需要更长的时间来查找原因。最糟糕的是,某些情况下我们甚至可能无法查找出来。
这样的问题也发生在NAVER的系统中。使用了大量工具如应用性能管理(APM)但是还不足以有效处理问题。因此我们最终决定为N层架构开发新的追踪平台,为n层架构的系统提供解决方案。
Pinpoint,2012年7月开始开发,在2015年1月作为一个开源项目启动, 是一个为大型分布式系统服务的n层架构跟踪平台。
Pinpoint的特点如下:
分布式事务追踪,追踪跨分布式应用的消息
自动检测应用拓扑,帮助你搞清楚应用的架构
水平扩展以便支持大规模服务器集群
提供代码级别的可见性以便轻松定位失败点和瓶颈
使用字节码增强技术,添加新功能而无需修改代码