1. APM简述php
APM (Application Performance Management)是对企业的应用系统进行实时监控,它是用于实现对应用程序性能管理和故障管理的系统化的解决方案。html
2.APM主要解决的问题:java
......node
3.分布式调用追踪(APM)一览mysql
4.方案对比c++
pinpointgit |
zipkingithub |
jaegerspring |
skywalkingsql |
|
OpenTracing兼容 |
否 |
是 |
是 |
是 |
客户端支持语言 |
java、php |
java,c#,go,php等 |
java,c#,go,php等 |
Java, .NET Core, NodeJS and PHP |
存储 |
hbase |
ES,mysql,Cassandra,内存 |
ES,kafka,Cassandra,内存 |
ES,H2,mysql,TIDB,sharding sphere |
传输协议支持 |
thrift |
http,MQ |
udp/http |
gRPC |
ui丰富程度 |
高 |
低 |
中 |
中 |
实现方式-代码侵入性 |
字节码注入,无侵入 |
拦截请求,侵入 |
拦截请求,侵入 |
字节码注入,无侵入 |
扩展性 |
低 |
高 |
高 |
中 |
trace查询 |
不支持 |
支持 |
支持 |
支持 |
告警支持 |
支持 |
不支持 |
不支持 |
支持 |
jvm监控 |
支持 |
不支持 |
不支持 |
支持 |
性能损失 |
高 |
中 |
中 |
低 |
5.各方案参考连接
1.pinpoint-naver
github: https://github.com/naver/pinpoint
docker快速体验:https://github.com/naver/pinpoint-docker
2.zipkin-推特:
github: https://github.com/openzipkin/zipkin
页面详解:https://blog.csdn.net/u012394095/article/details/82585863
zipkin于php对接:https://www.colabug.com/1872361.html
3.jaeger-uber
部分参考资料:
jaeger简介,部署,入门实践 http://www.javashuo.com/article/p-vsitlayu-kz.html
jaeger——java实现 http://www.javashuo.com/article/p-akkfjcqa-go.html
Uber分布式追踪系统Jaeger使用介绍和案例(PHP Hprose Go 跨语言调用)
https://segmentfault.com/a/1190000011636957
全链路监控Jaeger搭建实战 https://www.jianshu.com/p/ffc597bb4ce8
jaeger官网快速开始 https://www.jaegertracing.io/docs/1.8/getting-started/
4.skywalking(推荐)
github: https://github.com/apache/incubator-skywalking
SkyWalking 分布式追踪系统 https://www.jianshu.com/p/2fd56627a3cf
Apache SkyWalking 5.0中文版图文详解使用手册
http://skywalking.apache.org/zh/blog/2018-12-18-Apache-SkyWalking-5-0-UserGuide.html
skywalking学习笔记 http://www.javashuo.com/article/p-kfqwvqqh-dp.html
6.参考资料
分布式链路追踪技术对比 http://www.javashuo.com/article/p-uiycrkus-ey.html
回到网易后开源 APM 技术选型与实战 https://www.infoq.cn/article/apm-Pinpoint-practice
zipkin vs jaeger http://www.javashuo.com/article/p-ywqoanff-br.html
调用链选型之Zipkin,Pinpoint,SkyWalking,CAT https://www.jianshu.com/p/0fbbf99a236e