概述
pinpoint简介
- 何为pinpoint: pinpoint是一个分析大型分布式系统的平台,提供解决方案来处理海量跟踪数据,主要面向基于tomcat的Java 应用。
- **为什么使用它:**和现在相比, 过去的因特网的用户数量相对较小,而因特网服务的架构也没那么复杂。web服务一般使用两层(web 服务器和数据库)或三层(web服务器,应用服务器和数据库)架构。然而在现在,随着互联网的成长,须要支持大量的并发链接,而且须要将功能和服务有机结合,致使更加复杂的软件栈组合。更确切地说,比三层层次更多的n层架构变得更加广泛。系统的复杂度所以提高。系统越复杂,越难解决问题,例如系统失败或者性能问题。在三层架构中找到解决方案还不是太难,仅仅须要分析3个组件好比web服务器,应用服务器和数据库,而服务器数量也很少。可是,若是问题发生在n层架构中,就须要调查大量的组件和服务器。另外一个问题是仅仅分析单个组件很难看到大局;当发生一个低可见度的问题时,系统复杂度越高,就须要更长的时间来查找缘由。最糟糕的是,某些状况下咱们甚至可能没法查找出来。为了解决复杂架构下的拓扑解析与性能分析,pinpoint应运而生。
功能、优点与架构
-
功能html
- 分布式事务跟踪,跟踪跨分布式应用的消息
- 自动检测应用拓扑,帮助你搞清楚应用的架构
- 水平扩展以便支持大规模服务器集群
- 提供代码级别的可见性以便轻松定位失败点和瓶颈
- 使用字节码加强技术,添加新功能而无需修改代码
-
优点java
- 非入侵式:不须要修改应用的代码,便可完成agent的部署。
- 资源消耗:整体资源消耗只提升了3%左右。
-
架构git
- HBase (用于存储数据)
- Pinpoint Collector (信息的收集者,部署在tomcat中)
- Pinpoint Web (提供WEB_UI界面,部署在tomcat中)
- Pinpoint Agent (附加到 java 应用来作采样)

###相关资料github
若是想要进一步了解这款强大的APM软件,请访问如下连接:web
云帮最佳实践
出发点
- 化繁为简: 若是您通读了pinpoint安装部署的官方文档,会发如今传统架构下部署可用的pinpoint实例是一件很繁琐的事情。不管是部署它的四个组件(HBASE、Collector、Web-UI、Agent),仍是部署完成后进行相应的配置,都须要操做人员具有必定的技术水平。为此,云帮平台在云市中发布了pinpoint应用,由此能够实现一键部署pinpoint应用。经过这种方式,极大的简化了部署流程的同时,也下降了操做门槛。
- 微服务化: 云帮平台是一款无服务器PaaS平台,它经过容器化的方式发布了pinpoint应用,这能够抹去传统架构下扩容难、升级难等缺陷。经过在云帮平台上应用管理界面中进行一些简单的操做,能够根据业务量的大小轻松实现pinpoint的扩容伸缩;K8S+Docker的容器化技术,确保了升级只需升镜像的简单途径。今后,对于企业与我的的IT系统的运维开销将下降不少。
- 归根结底: 云帮平台已经发布了成熟的应用,能够轻松构建一套基于openJDK的java环境/Tomcat。加之目前发布的pinpoint应用,归根结底,云帮能够为企业或者我的,打造简单易用,基于openJDK的java程序开发与调试环境。而在云市中发布pinpoint,正是其中重要的一环。
云市安装
- 从云市安装 :是在云帮平台上部署应用很是简单的一种方式。这种部署方式对于像pinpoint这种多组件的复杂应用来讲,最大程度的下降了部署难度与工做量。
- 进入云帮,选择 从云市安装




###访问WEB-UIdocker
- 咱们能够经过访问 pinpoint-web 应用,来进入到pinpoint的UI界面。
<center><img src="https://static.goodrain.com/images/acp/docs/bestpractice/Pinpoint/pinpoint-access1.png" style="border:1px solid #eee;max-width:100%"/></center>数据库
- 在咱们的默认设置中,pinpoint应用 已经监控了它自身的 collector 、web组件。在进入UI界面后,就能够发现两者已经存在于应用列表中了。


添加被监控的对象
- 传统架构下的pinpoint,须要在被监控的对象里附加Agent,并经过修改配置文件使之生效。在云帮平台上,咱们将这两个步骤也作了相应的简化。
- 由 好雨官方OpenJDK镜像 为基础制做的应用,都默认集成了Pinpoint-Agent,不须要二次安装。
- 云帮平台利用设置 环境变量 的方式,代替了配置文件,键值对形式的环境变量很是简单易用。
- 下面以Tomcat为例,介绍添加被监控对象的方法:选择 好雨官方tomcat镜像 部署



- 经过 添加依赖 关联Pinpoint-Collector

- 对于已部署的应用,也能够经过 应用管理界面 中的 依赖 、设置 选项卡,来配置相应的服务依赖和环境变量。
- 环境变量 详解:
变量名 |
含义 |
默认值 |
ENABLE_APM |
激活/关闭Agent的开关 |
false |
APP_NAME |
pinpoint中应用的名称 |
SERVICE_ID |
DEMO实例:监控分析b3log-solo应用
solo简介
- solo 是一款由java编写的开源博客软件,云帮在对其进行整合以后,将与pinpoint一道,同期在云市中发布。

效果展现
- 在按上文中的说明配置了Pinpoint-Collector的服务依赖、打开ENABLE_APM开关后,就能够在pinpoint的UI界面中发现它了。solo后端对接的MySQL数据库也被pinpoint自动发现了。


-END-后端
进一步了解Rainbond v3.5.1tomcat