naver/pinpoint(github上2148个star
)java
韩国的一个公司开源的,有待评估使用状况,就是总体还不是JDK8,有些仍是有点费劲,技术上采用agent的方式,对java友好git
大众点评cat(github上1725个star
)github
看接入的公司仍是挺多的,我的感受是点评名气还能够,可是搭建起来有点费劲,不少东西都写死配置了,不灵活。总体设计的话,因为没有采用agent的方式,采用的是api手工埋点的方式,跟SNG的很像,好处的是跨语言,很差的地方就是对java来讲用起来还须要包装一下spring
sky-walking(github上374个star
)api
开发团队加入了OneAPM,目前看使用的公司很少,总体技术采用agent方式,对java友好。提供了对dubbo等的支持,属于soa时代的产品架构
从技术架构上看,对于log的存储都使用了hbase,也都是本身实现了日志/监控数据的上报。pinpoint支持udp的方式,这个好一点。这类仍是有点SOA时代的痕迹,更为符合大数据时代的作法是,监控数据丢给kafka,而后监控server来消费数据便可,这一点在cat中使用了consumer有点这个味道,可是没有完全转型过来。app
APM总体的功能结构,主要是 1.日志追踪,2.监控报警 3.性能统计。对于日志追踪,已经有spirng cloud zipkin了,这个对spring cloud体系结合的很好,确的就是监控报警和性能统计,能够采用agent的方式进行无侵入的监控,或者采用log appender的方式到kafka,以后再进行error的监控报警,以及把performance的数据log到日志,发送到kafka来进行统计。分布式