一文带你了解可观测领域中APM与eBPF的技术差异

news2024/9/21 14:50:27

近年来,随着eBPF技术的兴起,很多人有这样的疑惑:eBPF和APM有什么区别?他们是竞争关系还是合作关系?本文将就此展开讨论,并给出切实有效的落地方案。

01APM

APM全称:Application Performance Management。目前市场上的APM方案大多是参考Google的Dapper(大规模分布式系统的跟踪系统)实现的,如Cat、Skywalking。

图片

APM技术,历经长期演进与积淀,逐步趋向采纳OpenTelemetry这一标准化的开源框架,实现了Tracing领域的深刻变革,极大促进了追踪技术的统一化、标准化进程,标志着监控技术迈向了一个全新的专业化高度。

02eBPF

eBPF全称:extended Berkeley Packet Filter,扩展伯克利数据包过滤器。它是一项功能强大的技术,最初起源于UNIX系统中的BPF,可以在Linux内核中进行编程,以实现高效的系统监控、网络分析和安全审计等功能。

图片

03APM和eBPF的对比

3.1 采集的位置对比

图片

  • APM主要是在业务程序代码中进行拦截:意味着可以拿到业务进程中更多的信息

  • eBPF主要是在操作系统代码中进行拦截:意味着可以拿到操作系统中更多的信息

3.2 采集的数据对比

在可观测领域中,APM和eBPF是两种不同的采集方式,最终目的都是为了实现排查故障。所以,我们必须对故障有一个清晰的认知。大多数的应用故障是从代码中产生的。不同类型的代码对应的数据采集方式也有所不同。

目前大概有5种采集方案:
① APM方案
  • 对业务程序:采用字节码插桩或者手动埋点的方式

② eBPF方案
  • 对业务程序:采用eBPF解析流量数据包的方式

  • 对操作系统:采用eBPF对关键内核方法进行检测

③ APM+指标采集+流量采集
  • 对业务程序:采用字节码插桩或者手动埋点的方式

  • 对操作系统:采集操作系统/proc文件的指标数据,对于一些socket指标可以通过连接跟踪来采集

④ APM+eBPF
  • 对业务程序:采用字节码插桩或者手动埋点的方式

  • 对操作系统:采用eBPF对关键内核方法进行检测

 APM+指标采集+流量采集+少量eBPF
  • 对业务程序:采用字节码插桩或者手动埋点的方式

  • 对操作系统:采集操作系统/proc文件的指标数据,对于一些socket指标可以通过连接跟踪来采集,对网络Span跟Trace的关联可以采用eBPF

下表中,我们列出了所有的代码分类,和定位故障所需要的数据,以及对应的采集方式。

图片

3.3 采集方案的优劣势

下表中从18个维度对5种不同采集方案做了对比。

图片

我们又对每种采集方案的落地情况做了对比,如下表所示。

图片

04总结

4.1 未来方向

总体上看,APM和eBPF各有优略,擅长的领域不同,谁也无法替代谁,二者应该是合作关系,共同完成对业务程序和操作系统的全面可观测。

  • APM完成微服务的可观测

  • eBPF完成操作系统网络和磁盘IO的可观测

图片

4.2 落地策略

鉴于eBPF对内核版本要求比较高、同时eBPF自身还在快速变化迭代中,当前阶段更稳妥的选型方案是APM+指标采集+流量采集+少量eBPF采集。

图片

过去5年的方案

  • APM 和 指标采集、流量采集有些还比较独立,有些已经融合在一起。

未来5年的方案

  • 由于操作系统内核限制的原因导致eBPF还暂时无法大力的推广,更多还是借助指标采集+流量采集来完成。

  • 针对一些操作系统内核版本高的场景,可以使用eBPF采集到更加精确的操作系统Span和业务Trace进行关联。

未来10年的方案

  • 当操作系统内核普遍升上去之后,APM+大量eBPF方案才会得到普及。

  • 不过此时的APM+指标采集+流量采集+少量eBPF采集方案仍然是有力竞争者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2085397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vulhub xxe靶机

步骤一,访问浏览器 步骤二,输入/robots.txt 步骤三,发现存在用户登录的一个界面/xxe 我们登录进去 步骤四,随便输入一个数字或者字母打开BP 抓到包之后发送的重放器里边 通过抓包发现是XML数据提交 步骤五,通过php…

【采集软件】抖音根据关键词批量采集搜索结果工具

这是我用Python开发的抖音关键词搜索采集工具软件。 软件界面截图: 爬取结果截图: 软件演示视频: https://www.bilibili.com/video/BV1Fc41147Be 完整讲解文章: https://www.bilibili.com/read/cv33750458

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(九)imu运动学;lambda表达式;bind;function;std::move()

一、IMU运动学 1、测量值: 常用六轴IMU是由陀螺仪(Gyroscope)和加速度计(Acclerator)两部分组成。 陀螺仪测量:角速度。加速度计:加速度。 安装要尽量保证IMU的安装位置在车辆中心。避免由I…

基于SOA-BP海鸥优化BP神经网络实现数据预测Python实现

BP神经网络是一种多层前馈神经网络,它通过反向传播算法来训练网络中的权重和偏置,以最小化预测误差。然而,BP神经网络的性能很大程度上依赖于其初始参数的选择,这可能导致训练过程陷入局部最优解。海鸥优化算法因其探索和开发能力…

基于vue框架的残疾人就业帮扶平台97c5w(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,企业,招聘信息,类型,求职信息,投递信息,邀请信息,通知信息,帮扶政策,申请信息,意见反馈 开题报告内容 基于Vue框架的残疾人就业帮扶平台开题报告 一、选题背景与意义 随着社会的文明进步和经济的快速发展,残疾人群体…

flannel,etcd,docker

bridge容器 听有容器连接到桥就可以使用外网,使用nat让容器可以访问外网使用ipas指令查看桥,所有容器连接到此桥,ip地址都是172.17.0.0/16网段,桥是启动docker服务后出现,在centos使用bridge-utils安装 跨主机的容器…

第一次使用PyCharm写C++(失败)

前言: 由于我已经非常习惯使用PyCharm远程连接服务器了,我认为非常方便,所以希望C也能直接用Pycharm。于是尝试在PyCharm上部署C环境。 但是,我失败了。如果您知道问题所在,欢迎给我留言。我认为Pycharm并没有编译C/C…

Windows电脑微信可以登录发消息,但是网页打不开的解决方法:刷新DNS缓存

遇到的问题 今天实验室的电脑突然网页打不开,baidu上不了,chrome浏览器也上不了。但是ping baidu.com能够ping通,github pull也可以,网易云可以听歌。也就是说网络是通的,但是浏览器无法上网。 解决方法 我是通过 W…

直播商城APP开发指南:基于多商户商城系统源码的实现

对于开发者而言,构建一个功能完备、性能优越的直播商城APP已经成为当前技术领域的一个重要方向。本文将以多商户商城系统源码为基础,深入探讨如何高效开发一个直播商城APP。 一、多商户商城系统的核心概念 多商户商城系统是一种支持多个商家在同一平台…

深度解读SGM41511电源管理芯片I2C通讯协议REG09寄存器解释

REG09 是 SGM41511 的第十个寄存器,地址为 0x09。这是一个只读(R)寄存器,用于报告各种故障状态。上电复位值(PORV)为 xxxxxxxx,表示上电时的初始状态是不确定的。这个寄存器提供了充电器当前故障…

【Python机器学习】NLP词频背后的含义——从词频到主题得分

目录 TF-IDF向量及词形归并 主题向量 一个思想实验 一个主题评分算法 一个LDA分类器 LDiA TF-IDF向量(词项频率—逆文档频率向量)可以帮助我们估算词在文本块中的重要度,我们使用TF-IDF向量和矩阵可以表明每个词对于文档集合中的一小段…

【hot100篇-python刷题记录】【跳跃游戏】

R6-贪心算法 符合贪心的原因是: 我们要走到最后可以每次都选择尽可能远的来走,其次,能走到该步意味着该步以前都能到达。因此,局部最优解可以代表全局最优解。 class Solution:def canJump(self, nums: List[int]) -> bool:#最…

全志/RK安卓屏一体机:智能家居中控屏,支持鸿蒙国产化

智能家居中控屏 智能家居中控屏功能 智能中控屏作为全屋智能解决方案中的重要组成部分,融合智能开关面板、智能音箱、万能遥控、可视对讲、智能网关等设备,用一块屏承担起联动控制、人机交互、信息显示、个性化服务等功能。 智能中控屏是智能家居控制管…

cesium 轨迹线

在智慧城市项目中,轨迹线一般用来表现城市道路的流动效果。和cesium动态线篇效果类似,只是这里是通过设置高亮占比,而不是通过传入一张图片。 1. 自定义TrialFlowMaterialProperty类 1.1. 自定义 TrialFlowMaterialProperty 类 /** Descri…

MES管理系统助力印刷企业实现智能化工艺流程

在印刷这一古老而充满活力的行业中,科技的浪潮正以前所未有的速度重塑着每一个生产环节。随着制造业数字化转型的深入,引入MES管理系统,为印刷企业带来了从原材料入库到成品出库的全流程智能化变革,不仅提升了生产效率&#xff0c…

基于SpringBoot+Vue+MySQL的网上商城系统

系统背景 随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对网上商城购物系统方面的要求也在不断提高,购物的人数更是不断增加,使得网上商城购物系统的开发成为必需而且紧迫的事情。网上商…

无人机图传通信模组,抗干扰、稳定传输,8公里图传模组原理

在蔚蓝的天空下,无人机如同自由的精灵,穿梭于云间,为我们捕捉那些令人心动的瞬间。而在这背后,有一项技术正悄然改变着航拍的世界,那就是无人机图传通信模组。今天,就让我们一起揭开它的神秘面纱&#xff0…

在蓝桥云课ROS中快速搭建Arduino开发环境

普通方式 一步步慢悠悠的搭建和讲解需要5-6分钟: 如何在蓝桥云课ROS中搭建Arduino开发环境 视频时间:6分40秒 高效方式 如何高效率在蓝桥云课ROS中搭建Arduino开发环境 视频时间:1分45秒 配置和上传程序到开发板 上传程序又称为下载程序h…

匠心服务·智启新程丨2025华清远见新品发布会在北京隆重举行

2024年8月23日,华清远见教育科技集团的“匠心服务智启新程”2025新品发布会在北京隆重举行。云集多位行业专家学者、知名企业代表,聚焦市场新动向,站在行业技术最前沿,以多元化视角深入解读当前行业面临的新机遇新挑战&#xff0c…

信创环境下怎么做好信创防泄露?

为实现信创环境下的数据防泄露和“一机两用”标准落地,依靠十几年的沙盒技术积累,研发出了支持统信UOS/麒麟等信创OS的沙箱,配合零信任SDP网关,提高数据安全,实现“一机两用”安全解决方案。 信创防泄漏的需求 信创环…