apm 简介

APM应用性能管理(Application Performance Management)主要指对企业的关键业务应用进行监测、优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT总成本。

从实际的应用场景上,APM可以在以下方面为我们提供帮助:

  • 最终用户体验评估和优化,提升用户体验,提高应用DAU和留存
  • 链路监控,线路优化
  • 机房选型,第三方服务(CDN、云服务、推送等)选型
  • 竞品性能对标
  • 劫持分析和优化
  • 实时告警和通知
  • 业务流程代码级的监控和优化
  • 业务压测和性能剖析
  • 快速发现和定位性能问题,减少业务故障恢复时间

目前主流的apm产品,Pinpoint,SkyWalking, zipkin。

其中,SkyWalking原生支持es存储,所以此次选择SkyWalking技术方案。

方案设计

产品比对

zipkin 需要在应用中加入依赖,代码倾入性较大,所以不在本次目标方案内。

apm 产品名称 存储方案 原生ui 扩展性 服务监控维度 性能损耗 其他
skywalking es mysql 简陋 更高 CPU使用率,SLA,RT,CPM 比pinpoint少 中文文档
pinpoint hbase 丰富 CPU使用率,Open File Descriptor,数据源,活动线程数,RT,TPS。 5% 英文文档
选择 skywalking pinpoint skywalking pinpoint skywalking -

总结以上,从存储方案的角度出发,我个人倾向于选择skywalking作为链路跟踪方案。

潜在风险,java api 不完全。

方案设计

采用skywalking,平台提供埋点后的tomcat基础景象和java8景象,服务端需要独立部署,厂商发布应用的时候使用平台提供的tomcat制作镜像,则会被采集到信息。

说明: 采集到的只有访问信息,即端口的概念。

实例网址:

skywalking自带UI试图:http://172.16.12.21:8081/

部署的aic后台地址:http://172.16.12.22:8080/aic/rest/findAllKjb?runState=0

部署的aic页面地址:http://172.16.12.23:30050/

对比:

pinpoint:http://47.105.223.41:18082/#/main