BeeAPM是一个分布式跟踪和应用性能监控系统。该系统应用JavaAgent技术,使用bytebuddy(基于ASM的框架)进行字节码植入,从而对java应用程序进行相关数据采集和性能监控, 对应用无侵入。
部署
agent部署
server部署
UI部署
介绍
采集端(agent)
采集数据发送到APM Server
端或者消息中间件或存储器等
1、采集功能
所有的采集功能均有单独开关配置
分布式调用链(方法调用链路、远程调用追踪)
采样控制
方法采集
方法调用链路
参数采集
执行耗时
方法信息
耗时阀值控制(超过一定时间阀值的不采集)
采集点配置
返回值采集 (考虑)
http追踪
支持httpclient3
支持httpclient4
支持okhttp3
jdk-http(待开发)
支持servlet采集
主流容器支持(tomcat,weblogic,jetty等)
链路支持
基本请求信息
耗时采集
耗时阀值控制
request body采集
request parameter
request header采集
response body采集
session采集(待开发)
jdbc采集(jdbc规范)
采集sql语句
采集sql参数
采集执行时间
耗时阀值控制
采集结果集大小
logger采集
支持log4j
支持log4j2
支持logback
采集点可配置
error以上级别是否采样控制
spring事务
事务持有时间
执行sql次数
事务耗时阀值控制
异常信息采集,支持采集点黑白名单配置
支持携程apollo(仅支持启动时拉取配置)
半自动API(待开发)
jvm、cpu、磁盘、内存、线程等采集(待开发)
统计采集(待开发)
2、传输能力
支持输出到控制台
支持输出到远程http服务器
支持okhttp
支持输出到kafka,支持kafka 1.x
支持输出到RocketMq
支持输出到pulsar(待开发)
支持输出到ElasticSearcch(待开发)
APM Server端
数据收集和存储。从采集端接受数据或者从消息中间件中拉取数据,并进行存储
1、数据收集
http接受,使用servlet接收采集端发送过来的数据
从kafka拉取数据
从pulsar拉取数据(待开发)
2、数据存储
ElasticSearch
mysql(待开发)
oracle(待开发)
h2(待开发)
APM UI端
支持调用链展示,采集数据查询,报表等
**关注bugstack虫洞栈,学习更多知识!
**回复<BeeAPM源码>获取源码
本文分享自微信公众号 - bugstack虫洞栈(bugstack)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。