如何解决基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题


这篇文章主要为大家展示了“如何解决基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题”这篇文章吧。随着微服务架构的流行,服务按照不同的纬度进行拆分,一次请求往往需要设计到多个微服务程序,这些服务可能使用不同的编程语言开发,不同的团队开发,可能部署很多歌副本,因此就需要一些可以帮助理解系统行为,用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这个工具就是全链路监控组件。全链路监控组件可以监控每个微服务程序之间通信的一个数据指标,可以帮助运维好很好的分析一个请求时如何转发到各个微服务之间以及微服务之间的调度。全链路性能监控,从整体纬度到局部纬度展示各项指标,将跨应用的所有调度链性能信息几种展现,方便度量整体和局部的性能,并且方面找到故障产生的源头,生产上可以极大缩短故障的排除时间。全链路监控解决的问题:请求链路追踪通过监控可以分析服务之间的调用关系,绘制运行时的拓扑信息,可视化展示。调用情况衡量各个调用环节的性能分析,例如吞吐量、响应时间、错误次数容器规划参考根据监控数据的分析,可以及时的对微服务进行扩容/缩容、服务降级、流量控制运行情况反馈通过监控数据和业务日志快速定位错误信息全链路监控工具有很多种,应该从下面几种方面去选择探针的性能消耗全链路监控工具都需要开启一个探针才能对微服务的链路进行监控,因此我们要选择对服务的影响尽可能的少、数据分析的要快,性能占用小的工具。代码的侵入性部分的链路监控工具还需要在应用程序的代码中集成,我们应该选择尽可能不改业务程序代码的同时也能把微服务监控起来的工具,减少开发人员的负担。监控纬度监控的数据要全方面、要到位、监控指标越多越好。可扩展性工具可以支持分部署部署,具备良好的扩展性。主流的链路监控工具由zipkin、skywalking、pinpoint。pinpoint是一个APM(应用程序性能管理)的工具,适用于JAVA/PHP编写的大型分布式系统。pinpoint的特性:服务地图(serverMap):通过可视化分布式系统的模块和他们之间的相互来展示系统拓扑,点击某个节点会展示该模块的详情,比如当前的状态和请求数量。实时活动性线程图(Realtime Active Thread Chart):实时监控应用内部的活动线程。请求响应分布图(Request/Response Scatter Chart):长期可视化请求数量和应答模式来定位潜在问题。调用栈(CallStack):在分布式环境中为每个调用生成代码级别的可视图,在单个视图中定位瓶颈和失败点检查器(Inspector):查看应用上的其他详细信息,免费云主机域名比如CPU使用率、内存/垃圾回收、TPS和JVM参数。pinpoint架构pinpoint agent会部署在程序服务器上,程序启动时会指定agent服务,由pinpoint collector获取微服务之间的链路监控,然后存储在Hbase数据库中,pinpoint web ui展示监控数据。pinpoint托管在github上,拉取镜像非常慢,可以从百度网盘上获取。pinpoint对docker-compose的版本也要要求,最好在1.25版本以上。pinpoint-web容器提供页面展示,已经将容器的8080端口映射成了8039端口,直接访问8079端口即可。pinpoint自带了一个quickapp的展示模板下载pinpoint-agent程序点击设置—>installationhttps://github.com/pinpoint-apm/pinpoint/releases/download/1.8.5/pinpoint-agent-1.8.5.tar.gz配置pinpoint-agent,然后将pinpoint-agent目录拷贝到每一个微服务的程序代码目录中。修改每个微服务程序的Dockerfile,将pinpoint的程序目录拷贝到容器中,然后在程序的启动命令中加上pinpoint-agent参数,接入pinpoint,其中-Dpinpoint.agentId字段的值采用pod的名称来定义,Dpinpoint.applicationName字段的值采用simple-服务名称来定义。eureke-service服务gateway-service服务order-service服务portal-service服务product-service服务stock-service服务我们接入pinpoint的Dockerfile已经写好,直接使用脚本将produce重新部署一下即可。product部署好之后在portal门户网站上购买一个商品,产生product商品微服务的请求,观察pinpoint上的链路状态。product商品微服务下单之后会调用stock库存微服务,stock微服务还没有接入到pinpoint中,所以在看pinpoint上链路监控时,就会发现stock只会以ip的形式展示。可以在链路监控视图中看到服务之间调用请求的次数,以及是如何调用的。Dockerfile已经调整好,只需要执行咱们写好的部署脚本,将所有的微服务根据最新的Dockerfile制作出最新的镜像,然后在K8S集群中重新部署一下即可。deploy_k8s脚本不跟任何位置参数就表示将所有的微服务程序全部更新部署。在门户网站中购买两个商品观察微服务之间的调用。在监控视图的右侧可以选择不同的微服务副本节点、程序之间的调用、请求成功失败的次数1)点击view servers可以随机切换各个副本节点2)点击右侧最上面的统计图,然后找到图中的小点,选中这个小点就会跳转到代码调用的页面3)选中完之后会立即跳转,然后点击该请求请求成功的监控内容请求失败的监控内容4)这里还会有比之前更丰富的视图5)点击mixed view会看到更加丰富的展示视图请求成功的请求失败的1)点击inspector2)选择指定的副本节点这些名称都是通过在启动命令中加的-Dpinpoint.agentId=${HOSTNAME}参数生效的以上是“如何解决基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注百云主机行业资讯频道!

相关推荐: html5怎么自动填充父类框

本篇内容介绍了“html5怎么自动填充父类框”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   小米布局案例1:产品模块布局分析   类似于这样的产品模块,使用…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/29 16:30
下一篇 09/29 16:30

相关推荐