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,