标签:pki 访问权限 info alt 瓶颈 红色 mysql 工具 没有
应用系统在测试或生产运行过程中,可能经常遇到这样的场景:特别是在当下流行的分布式服务系统中,如果出现性能问题,面对N台的硬件服务器和10N级的服务(容器),从何处下手本身就已经是个难题了。
那么,接下来给大家介绍分布式服务的APM监控工具,Pinpoint。
【适合读者】:开发、测试、运维等。
APM, 全称Application Performance Management,划重点,与性能有关!
已经有很多文章专门对比了各种APM工具之间的优劣,比如还有当下流行的skywalking、zipkin等,这里我就不再赘述,想了解更多的自己百度。
继续我们的主题,看看Pinpoint能给我们带来什么?
首先上个总体图:
从这个图我们可以得到这些信息:
1.系统的总体架构组成部分,比如图中可以看到应用服务与mysql、redis、第三方服务之间的请求情况;
2.系统/节点的响应速度情况,以及成功失败的请求次数等;
pinpoint的默认跟踪粒度确实是比较详细的,可以看到单次请求在整个服务链路各节点上的详细耗时情况,比如在这里,可以很清楚地看到是哪个节点哪个方法消耗了最多的时间。
再来个图,大家从这个图可以看出这个系统当前的性能瓶颈在哪吗?
除了可以跟踪服务链路耗时情况,pinpoint还可以监控JVM、线程池、数据库连接池、句柄等等的使用情况,来几个高能大图。
这里能看到数据库连接池的最大连接数和当前连接数,对于判断数据库连接池数够不够用,能起到很好的参考作用,一目了然。
Pinpoint除了上述常规用法,还可以用于跟踪异常错误,比如上面第一张图,在请求异常失败的情况下,pinpoint会以红色标识,点开也就可以看到出现异常失败的节点和方法位置,以及具体的错误信息。
同样地,因为Pinpoint详细地记录了请求的链路信息,把请求过程中具体的SQL语句都展示出来了,这样对于排查问题,甚至监控SQL语句的执行速度,都可以起到很好的帮助作用,很惊喜有没有!
总结一下,pinpoint可以给我们带来以下好处:
总体来说,在pinpoint这类APM监控工具逐渐发展成熟的当下,引入这类工具,对我们日常的开发测试运维工作,是能起到不错的辅助作用的,尤其是在分布式服务系统中,如果没有这类工具,遇到问题时难免慌手慌脚无从下手。
关于是否要在生产环境上部署这类APM监控工具,这里说几点供参考:
开源APM监控工具还要考虑安全问题,像pinpoint、skywalking这类工具目前好像还没有访问权限之类的控制,要注意不要被乱灌数据,或者被有不良企图的用户访问到各种请求链路详细信息。当然,这类安全问题也是有解决方案的,比如可以在路由防火墙上指定有权限的ip,或者通过web服务器加上权限验证再进行转发等;
如果大家有其他不同意见或看法,欢迎留言讨论。
标签:pki 访问权限 info alt 瓶颈 红色 mysql 工具 没有
原文地址:https://blog.51cto.com/14437683/2546396