应用系统在测试或生产运行过程中,可能经常遇到这样的场景:

“这个模块的响应速度很慢,但是不知道为什么这么慢,具体慢在哪里?”

“运维只有监控服务器的资源指标,单从服务器资源看不出为什么慢”

“系统总是时不时抽风下,还能再抢救一下吗?。。。”

“服务出错了,需要翻看下系统日志文件”

特别是分布式服务系统中,如果出现性能问题,面对N台的硬件服务器和10N级的服务(容器),从何处下手就已经是个让人头疼的问题了。

接下来给大家介绍一款分布式服务监控工具,Pinpoint。

【适合读者】:开发、测试、运维等。

Pinpoint是一款APM工具,APM全称Application Performance Management,应用性能监控,顾名思义,跟性能有关!

已经有很多文章专门对比了各种APM工具之间的优劣,比如skywalking、zipkin等,这里我就不再赘述,想了解更多的自己百度。

今天我们只谈,Pinpoint能给我们带来什么?

首先上个总体图

从这个图我们可以得到这些信息:

1.系统的总体架构组成部分,比如图中可以看到应用服务与mysql、redis、第三方服务之间的请求统计情况;

2.系统和各节点的响应速度情况,以及成功失败的请求次数等;

接下来我们来具体查看某个请求

pinpoint的跟踪粒度是比较详细的,可以看到整个服务链路各节点上的详细耗时情况,可以很清楚地看到是哪个节点哪个方法消耗了最多的时间。

再来个图,大家从这个图可以看出这个系统当前的性能瓶颈在哪吗?

除了可以跟踪服务链路耗时情况,pinpoint还可以监控JVM、线程池、数据库连接池、句柄等等的使用情况,来几个高能大图。

这里能直接看到数据库连接池的最大连接数和当前连接数,对于判断数据库连接池数够不够用,一眼就能把它揪出来。

Pinpoint除了上述常规用法,还可以用于跟踪异常错误,比如上面第一张图,在请求异常失败的情况下,pinpoint会以红色标识,点开也就可以看到出现异常失败的节点和方法位置,以及具体的错误信息。

另外,因为Pinpoint详细记录了请求的链路信息,把请求过程中具体的SQL语句都展示出来了,所以也可以用来帮助排查问题,或者监控SQL语句的执行速度,很惊喜有没有!

总结一下,pinpoint可以给我们带来以下好处:

掌握系统的整体响应速度情况,对系统运行情况心里有底;

掌握各节点的响应速度情况,比如第三方服务接口,redis,mysql等;

单次请求的具体服务链路耗时情况,定位性能瓶颈;

单次请求的具体服务链路请求信息,对于排查问题能提供帮助;

监控各服务的JVM、线程池、数据库连接池使用情况,想象一下,如果分布式服务系统中有几十甚至几百个服务节点,要如何来监控每个节点的JVM呢?

总体来说,在pinpoint这类APM监控工具逐渐发展成熟的当下,引入这类工具,对我们日常的开发测试运维工作,是能起到不错的辅助作用的,尤其是在分布式服务系统中,如果没有这类工具,遇到问题时难免慌手慌脚无从下手。

关于是否要在生产环境上部署这类APM监控工具,这里说几点供参考:

APM监控一定不可以影响业务系统的运行成败,换句话说就是即使APM监控挂了,业务系统也应该能够照常运行着。不要因为引入APM监控,而给整套系统引入了一颗不定时炸弹,这样就得不偿失了。在这一点上,pinpoint应该是OK的,我测试过pinpoint服务端即使挂了,业务系统照样能跑得好好的;

APM监控是会消耗服务器的资源的,监控粒度越细,消耗越多。在其他文章里人做了各种APM监控工具的性能损耗对比,pinpoint相对是损耗较多的,因为它的监控粒度算是比较细的。我也做过测试,开启pinpoint监控后,性能确实会有8%左右的损耗。但是换个角度来说,目前各种系统的线上环境,CPU等各类资源,经常都是在30%使用率以下运行的,这种情况下,即使再多个损耗10%也是在能接受范围内的;

开源APM监控工具还要考虑安全问题,像pinpoint、skywalking这类工具目前好像还没有访问权限之类的控制,要注意不要被乱灌数据,或者被有不良企图的用户访问到各种请求链路详细信息。当然,这类安全问题也是有解决方案的,比如可以IP访问权限控制,或者通过web服务器加上权限验证再进行转发等;

如果大家有其他不同意见或看法,欢迎留言讨论。

pinpoint mysql_APM监控之Pinpoint使用心得相关推荐

  1. 链路监控框架pinpoint

    1.背景知识 Application Performance Management是什么? 维基百科: In the fields of information technology and syst ...

  2. 应用监控预警--Pinpoint介绍

    转自:https://skyao.gitbooks.io/learning-pinpoint/content/introduction/data.html Pinpoint 翻译自 Pinpoint ...

  3. APM链路监控:PinPoint使用手册

    文章目录 一.PinPoint简介 二.PinPoint架构组成 三.PinPoint使用说明 1.首页 2.请求调用栈 3.服务状态 4.链路事务筛选 结尾 一.PinPoint简介 pinpoin ...

  4. 全链路监控之pinpoint

    一.pinpoint出现与其他相似概念比较 (1).pinpoint概念 pinpoint是由java/PHP编写而成的,用来对大规模的分布式系统提供应用性能管理.pinpoint可以解决复杂架构下的 ...

  5. pinpoint 监控mysql_基于Centos7系统安装部署Pinpoint分布式监控

    概述 pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控.它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测 ...

  6. pinpoint如何检测mysql_微服务链路监控系统-Pinpoint

    全链路监控 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求 往往需要涉及到多个服务.这些服务可能不同编程语言开发,不同 团队开发,可能部署很多副本.因此,就需要一些可以帮助理解系 统行为. ...

  7. APM链路监控:pinpoint安装部署实战详细手册

    文章目录 一.pinpoint介绍 1.pinpoint简介 2.架构组成 二.安装环境准备 三.HBase单机安装 四.pinpoint安装 1.安装pinpoint-collector 2.安装p ...

  8. 实现一个全链路监控平台很难吗?Pinpoint、skywalking、zipkin,哪个实现比较好?...

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往 ...

  9. PinPoint分布式全链路监控

    PinPoint分布式全链路监控 安装需要的所有包下载路径: 链接: https://pan.baidu.com/s/1sl9dP9r 密码: jsux 介绍: PinPoint是一个开源的APM(( ...

最新文章

  1. 深度学习多框架多平台推理引擎工具
  2. PyTorch 手把手搭建(MNIST)神经网络
  3. 印度式画线乘法基本操作
  4. rtorrent - 强大的命令行BT客户端
  5. 【Tools】Ubuntu20.04安装VMware Tools详解
  6. mysql slave同步_Slave_SQL_Running: No mysql同步故障解决方法
  7. node.js Express框架入门
  8. spark 存入hbase_Spark DataFrame写入HBase的常用方式
  9. linux 11Gasm启动crs,11GR2重建CRS
  10. linux中级之keepalived概念
  11. 计算机上键盘无法输入法,电脑中输入法设置窗口提示检测到不兼容的键盘驱动的解决方法...
  12. C++实现Base32加解码
  13. syn包发送(拒绝攻击,但是有问题)
  14. html5基础了解---前端结构
  15. 关于jul桥接slf4j失败问题的探究
  16. 前端vue使用ECharts如何制作精美统计图
  17. ref、reactive、toRef、toRefs
  18. QC —什么是量子计算机?
  19. android波浪动画简书,Android贝塞尔曲线————波浪效果(大波浪)
  20. Linux上安装MySQl超详细教程(CentOS系统)

热门文章

  1. 【What if系列】无敌电吹风
  2. [正则表达式]php
  3. STM32CubeMX实战教程(一)——软件入门
  4. 美容行业小程序开发功能介绍
  5. 如何生成M3U8播放地址用于手机HLS Player(M3U8Player)观看电视频道直播
  6. 网站都变成灰色了,如何实现的呢?
  7. 【7】西红柿土豆炖牛肉
  8. python手绘代码_Python实现手绘功能
  9. MetaMask 连接其他网络
  10. 基于.Net Core 快速开发框架