关键词:
PinPoint全链路监控
简介
Pinpoint是一个开源的 APM (Application Performance Management/应用性能管理)工具,用于基于java的大规模分布式系统,基于Google Dapper论文。
仿照 Google Dapper , Pinpoint 通过跟踪分布式应用之间的调用来提供解决方案, 以帮助分析系统的总体结构和内部模块之间如何相互联系。
如今的服务通常由很多不同模块组成,前端向后台发起一个查询请求,后台服务可能要调用多个服务,每个服务可能又会调用其它服务,最终将结果返回,汇总到页面上。如果某个环节发生异常,工程师很难准确定位这个问题到底是由哪个服务调用造成的,Pinpoint的作用就是追踪每个请求的完整调用链路,收集调用链路上每个服务的性能数据,方便工程师能够快速定位问题。
架构图
如图所示,为Pinpoint的架构图,主要由四部分组成:
Pinpoint-Collector:收集器,收集各种性能数据
Pinpoint-Agent:探针,与应用服务器关联,采集性能数据,传给Collector
Pinpoint-Web:UI,展示性能数据
HBase Storage:存储,保存性能数据
优点
1、分布式事务跟踪,跟踪跨分布式应用的消息
2、自动检测应用拓扑,帮助你搞清楚应用的架构
3、水平扩展以便支持大规模服务器集群
4、提供代码级别的可见性以便轻松定位失败点和瓶颈
5、使用字节码增强技术,添加新功能而无需修改代码
功能
1、故障快速定位
2、各个调用环节的性能分析
3、数据分析等
4、生成服务调用拓扑图
支持的模块
ü JDK 6+
ü Tomcat 6/7/8, Jetty 8/9, JBoss EAP 6
ü Spring, Spring Boot
ü Apache HTTP Client 3.x/4.x, JDK HttpConnector, GoogleHttpClient, OkHttpClient, NingAsyncHttpClient
ü Thrift Client, Thrift Service, DUBBO PROVIDER, DUBBO CONSUMER
ü MySQL, Oracle, MSSQL, CUBRID, DBCP, POSTGRESQL, MARIA
ü Arcus, Memcached, Redis, CASSANDRA
ü iBATIS, MyBatis
ü gson, Jackson, Json Lib
ü log4j, Logback
环境搭建所需要的工具
1、JDK 1.8
2、Tomcat 8.5.3 发布用
3、Pinpoint-Web 将收集到的数据显示成WEB网页形式
4、Pinpoint-Collector 收集各种性能数据
5、Pinpoint-Agent 和自己运行的应用关联起来的探针
6、HBase Storage 收集到的数据存到HBase中
7、hbase_scripts Pinpoint初始化数据库
HBase脚本介绍
l hbase-create.hbase - 创建pinpoint必须的表。
l hbase-drop.hbase - 删除pinpoint必须的所有表
l hbase-flush-table.hbase - 刷新所有表
l hbase-major-compact-htable.hbase- 压缩主要的所有表
JDK和Tomcat的搭建这里就不再介绍了。
1、安装HBase
下载地址:http://archive.apache.org/dist/hbase/
这里下载hbase-1.4.12来进行安装
将hbase-1.4.12-bin.tar.gz包移动到/apps/software目录下,然后解压
接下来进入到hbase目录下的conf文件夹夹中修改hbase-env.sh文件对JAVA的配置,找到JAVA_HOME的位置,打开JAVA_HOME的注释行并修改,或者直接添加一行,如下图
然后回到bin目录下启动hbase服务 sh start-hbase.sh
启动如果遇到错误,可以检查一下虚拟机cpu的核心数,貌似至少得双核以上才能起得来。启动成功会显示如下画面
Hbase默认端口是16010,在网页上访问http://192.168.3.31:16010
然后初始化Hbase的pinpoint库,执行
登录web,来查看HBase的数据是否初始化成功
2、安装pinpoint
为了方便省事,我们把pinpoint-web 和 pinpoint-collector 都放进一个Tomcat中
为了方便访问将pinpoint-web-1.1.2.war改名为pinpoint
启动tomcat然后访问http://192.168.3.31:8080/pinpoint
到这里我们的环境就发布好了
pinpoint2.5.0环境搭建监控预警钉钉推送(代码片段)
...dk:jdk8,JDk11hbase:habse-1.7.2需与hbase-client版本一致,pinpoint-2.5.0使用的hbase-client版本为1.7.2hbase初始化脚本:hbase-create.hbasepinpoint-collect(监控采集服务-jdk11):pinpoint-collector-boot-2.5.0.jarpinpoint-web(监控管理服务-j... 查看详情
springcloud微服务安全实战-7-11pinpoint+springboot环境搭建
...分析你的系统如果出现瓶颈以后,瓶颈到底在什么地方。pinpoint点击看一下在线的demo提供的一些应用的列表选择order。这张图就是order这个服务的调用图。出去调用的一层,分别调用了product和payment还有m 查看详情
apm链路监控:pinpoint使用手册
文章目录一、PinPoint简介二、PinPoint架构组成三、PinPoint使用说明1.首页2.请求调用栈3.服务状态4.链路事务筛选结尾一、PinPoint简介pinpoint是开源在github上的一款APM监控工具,它是由java编写的,用于大规模分布式系统的监控&... 查看详情
apm链路监控:pinpoint使用手册
文章目录一、PinPoint简介二、PinPoint架构组成三、PinPoint使用说明1.首页2.请求调用栈3.服务状态4.链路事务筛选结尾一、PinPoint简介pinpoint是开源在github上的一款APM监控工具,它是由java编写的,用于大规模分布式系统的监控&... 查看详情
pinpoint在win7下搭建(代码片段)
Pinpoint在Win7下搭建注:原创作品,未经允许严禁转载对于Pinpoint是什么这个问题,在此不做任何讨论,因此本篇文章适用人群为了解Pinpoint相关基础理论知识,需要进行Windows系统下环境搭建者1.Pinpoint框架结构: 2.Pinpoint资源下载:h... 查看详情
sleuth+zipkin实现springcloud链路追踪(代码片段)
...入客户端2、配置文件3、运行效果七、小结一、前言在全链路监控:方案概述与比较一文中,我们有详细介绍过分布式链路跟踪的实现理论基础。我们看到 查看详情
架构师如何技术选型-全链路监控
...匮乏结果和关系导向2.2技术选型技术选型范围:Openzipkin、Pinpoint、Incubator-skywalking、Lightstep、Appdash、Jaeger 查看详情
字节码基于javaagent的全链路监控六开发应用级监控(代码片段)
1.概述上一篇文章:【字节码】基于JavaAgent的全链路监控五-ThreadLocal链路追踪本章节转载:基于JavaAgent的全链路监控六《开发应用级监控》在我们的监控程序中,需要对各种模块进行监控;servlet、rpc、http、jdbc、re... 查看详情
字节码基于javaagent的全链路监控五-threadlocal链路追踪(代码片段)
1.概述转载:基于JavaAgent的全链路监控五《ThreadLocal链路追踪》Google开源的Dapper链路追踪组件,并在2010年发表了论文《Dapper,aLarge-ScaleDistributedSystemsTracingInfrastructure》,这篇文章是业内实现链路追踪的标杆和理论基础... 查看详情
springcloudsleuth全链路日志跟踪解决方案(强烈推荐)(代码片段)
...时了解概述分布式系统面临的问题Sleuth是什么Zipkin是什么链路监控相关术语实战练习入门练习Zipkin下载与启动搭建链路监控步骤sleuth相关配置向Zipkin发送消息的方式Sleuth到底给Zipkin都发送了哪些数据?Zipkin配置持久化引入sleu... 查看详情
skywalking全链路监控集群和动态部署(代码片段)
...诊断也会显的更加复杂。skywalking监控主要用于用户请求链路和路径的监控(拓扑图),能追踪到调用链路各个环节是否正常(错误的原因)和耗时(DB查询、缓存查询等等),能快速定位程序的bug或者慢的原因,主要用于业务层... 查看详情
字节码基于javaagent的全链路监控六基于jvmti定位java异常信息(代码片段)
1.概述上一篇文章:【字节码】基于JavaAgent的全链路监控六开发应用级监控本章节转载:基于JavaAgent的全链路监控六《开发应用级监控》JVMTI(JVMToolInterface)位于jpda最底层,是Java虚拟机所提供的native编程接口。JVMTI可以... 查看详情
pinpoint完整集群实现,包括flink集群的加入(代码片段)
Pinpoint是韩国人开发的一套基于java的Apm(应用性能监控),具有低延迟、实时监控、拓扑发现、低性能损耗的特点(官方预估是3%),同事有一个完善的web后台,一目了然查看应用拓扑。安装使用前我搜索了网上一堆的文档... 查看详情
pinpoint监控(代码片段)
####Hbase数据################参考:然而没有卵用:https://blog.csdn.net/iamlihongwei/article/details/52882749?utm_source=blogxgwz2https://my.oschina.net/LaravelShao/blog/1803428####访问地址################Hbase数据库地址:h 查看详情
pinpoint修改hbase表ttl值(代码片段)
参考文档https://greatwqs.iteye.com/blog/1741330缘起Pinpoint接入业务监控后数据量大涨,平均每天Hbase数据增量20G左右,数据量太大,需要对数据进行定期清理,否则监控可用性降低,由于之前环境是由docker-compose部署,查到hbase可以修改... 查看详情
字节码javaagent的全链路监控篇二,通过字节码增加监控执行耗时(代码片段)
1.概述上一篇文章:【字节码】javaagent入门案例最简单的案例转载:https://github.com/fuzhengwei/itstack-demo-bytecode通过上一章节的介绍,我们已经知道通过配置-javaagent:文件.jar后,在java程序启动时候会执行premain方法。接... 查看详情
字节码基于javaagent的全链路监控四-jvm内存与gc信息(代码片段)
1.概述转载:基于JavaAgent的全链路监控四《JVM内存与GC信息》2.案例简述除了监控java方法的执行耗时,我们还需要获取应用实例的jvm内存与gc信息,以实时把控我们的服务器性能是否在安全范围。监控jvm内存与gc信息是... 查看详情
手把手这篇全链路压测实践教程(代码片段)
Hello,大家好呀,前两篇文章,我们说了下关于全链路压测的意义、整体架构,以及5种压测的方案。前面两篇基本都属于比较理论的内容,今天这篇咱们来点实践的东西,手把手带你搞出一个压测来如果不清楚之前两篇的文章的... 查看详情