BeeAPM无侵入分布式全链路监控&追踪

Stella981
• 阅读 1047

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端

支持调用链展示,采集数据查询,报表等 BeeAPM无侵入分布式全链路监控&追踪

**关注bugstack虫洞栈,学习更多知识!
**回复<BeeAPM源码>获取源码

BeeAPM无侵入分布式全链路监控&追踪

本文分享自微信公众号 - bugstack虫洞栈(bugstack)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
Johnny21 Johnny21
3年前
服务追踪工具 SkyWorking 搭建使用
服务追踪工具SkyWorking搭建使用是用于对微服务,CloudNative,容器等提供应用性能监控和分布式调用链追踪的工具截图环境SkyWalking5.0.0beat2MacOSElasticSearch5.6.
Stella981 Stella981
3年前
Opentracing + Uber Jaeger 全链路灰度调用链,Nepxion Discovery
当网关和服务在实施全链路分布式灰度发布和路由时候,我们需要一款追踪系统来监控网关和服务走的是哪个灰度组,哪个灰度版本,哪个灰度区域,甚至监控从HttpHeader头部全程传递的灰度规则和路由策略。这个功能意义在于:不仅可以监控全链路中基本的调用信息,也可以监控额外的灰度信息,有助于我们判断灰度发布和路由是否执行准确,一旦有问题,也可以快速定位
Easter79 Easter79
3年前
SpringBootAdmin2.0实现微服务应用监控
SpringBootAdmin监控介绍SpringBootAdmin是一个Web应用,用于管理和监视SpringBoot应用程序的运行状态。每个SpringBoot应用程序都被视为客户端并注册到管理服务器。背后的数据采集是由SpringBootActuator端点提供
Wesley13 Wesley13
3年前
APM监控
一,基础知识储备分布式跟踪的目标一个分布式系统由若干分布式服务构成,每一个请求会经过多个业务系统并留下足迹,但是这些分散的数据对于问题排查,或是流程优化都很有限,要能做到追踪每个请求的完整链路调用,收集链路调用上每个服务的性能数据,计算性能数据和比对性能指标(SLA),甚至能够再反馈到服务治理中,那么这就是分布式跟踪的目标。分布式跟踪的目的
Stella981 Stella981
3年前
SpringBootAdmin2.0实现微服务应用监控
SpringBootAdmin监控介绍SpringBootAdmin是一个Web应用,用于管理和监视SpringBoot应用程序的运行状态。每个SpringBoot应用程序都被视为客户端并注册到管理服务器。背后的数据采集是由SpringBootActuator端点提供
Wesley13 Wesley13
3年前
UAV MOF工作原理之Agent注入机制原理
【UAVStack的中间件增强框架专题(MOF)】为大家详细讲述UAV中的MOFAgent是如何借助javaagent(premain)和javaassist技术在对应用无侵入的前提下完成数据捕获的。欢迎继续关注UAVStack,了解UAV更多的技术创新。前言MOF(MoniterFramwork)作为UAV应用数据捕获框架
什么是专有云(专属)?
专有云是基于公有云网络进行服务集群独立部署,既能享受公有云的稳定链路服务,又具备资源隔离的优势。适用对象:高消息量、高并发、有实时数据监控服务诉求以及对品质有要求高的客户部署方式:在公有云上有独立的计算集群服务特点:自既能享受公有云的稳定链路服务,又具备资
分布式系统中的分布式链路追踪与分布式调用链路
在分布式系统中,由于服务间的调用关系复杂,需要实现分布式链路追踪来跟踪请求在各个服务中的调用路径和时间消耗。这对问题排查和性能监控都很重要。常用的分布式链路追踪实现有基于日志的和基于分布式追踪系统的两种方式:
云空间技术在视频监控中的隐私保护策略
随着云计算技术的发展,视频监控系统越来越多地采用云空间技术来存储和处理数据。然而,随之而来的是对个人隐私保护的担忧。本文将探讨在开发和部署基于云的视频监控系统时,如何实施有效的隐私保护策略。
手把手教你编写自定义Categraf插件
Categraf是一个监控采集Agent,类似Telegraf、GrafanaAgent、DatadogAgent,希望对所有常见监控对象提供监控数据采集能力,采用Allinone的设计,不但支持指标采集,也希望支持日志和调用链路的数据采集。相比于其他采集器,Categraf的优势在于:支持remote_write写入协议,支持将数据写入promethues、M3DB、VictoriaMetrics、InfluxDB;指标数据只采集数值,不采集字符串,标签维持稳态结构;采用allinone的设计,所有的采集工作用一个agent搞定;未来也可以把日志和trace的采集纳入agent;纯Go代码编写,静态编译依赖少,容易分发,易于安装。