APM(Application Performance Monitoring,应用性能观测)
工具介绍
介绍
常见的APM
- Apache skywalking
- Demo skywalking/skywalking
- Elastic APM
- Glowroot
- Pinpoint
- jaeger
- Zipkin
- uptrace/uptrace Open source APM: OpenTelemetry traces, metrics, and logs
- 国内的产品
- 鹰眼(阿里)
- 点评 dianping/cat 作为服务端项目基础组件,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
- Hydra(京东)
- traces(滴滴)
Jaeger vs Zipkin
- 参考 May 23, 2018
- jaeger 兼容的客户端语言和采样策略上较好,zipkin 传输层较强
- jaeger 基于 go 语言编写的,在并发性能、对系统资源的消耗上也对基于 java 的 openzipkin 强
表头 | 表头 | 表头 |
---|
| JAEGER | ZIPKIN |
OpenTracing compatibility | Yes | Yes |
OpenTracing-compatible clients | Python Go Node Java C++ C# Ruby * PHP * Rust * | Go Java Ruby * C++ Python (work in progress) |
Storage support | In-memory Cassandra Elasticsearch ScyllaDB (work in progress) | In-memory MySQL Cassandra Elasticsearch |
Sampling | Dynamic sampling rate (supports rate limiting and probabilistic sampling strategies) | Fixed sampling rate (supports probabilistic sampling strategy) |
Span transport | UDP HTTP | HTTP Kafka Scribe AMQP |
Docker ready | Yes | Yes |
$ curl 'https://api.github.com/repos/openzipkin/zipkin' 2>/dev/null | grep -E 'created_at|updated_at|stargazers_count|watchers_count|forks_count'
"created_at": "2012-06-06T18:26:16Z",
"updated_at": "2024-06-09T10:23:19Z",
"stargazers_count": 16793,
"watchers_count": 16793,
"forks_count": 3073,
$ curl 'https://api.github.com/repos/jaegertracing/jaeger' 2>/dev/null | grep -E 'created_at|updated_at|stargazers_count|watchers_count|forks_count'
"created_at": "2016-04-15T18:49:02Z",
"updated_at": "2024-06-09T21:47:51Z",
"stargazers_count": 19710,
"watchers_count": 19710,
"forks_count": 2349,