业界首个OpenTelemetry结合eBPF的向导式可观测性平台APO正式开源

AutoPilot Observability (简称APO)是什么?

  • 开箱即用的可观测性平台:APO 致力于提供一键安装、开箱即用的可观测性平台。APO 的 OneAgent 支持一键免配置安装 Tracing 探针,支持采集应用的故障现场日志、基础设施指标、应用和下游依赖的网络指标以及Kubernetes 事件,支持采集基于 eBPF 实现的北极星因果指标等数据。支持使用 Jaeger UI 查询 Tracing 数据,使用 PromQL 从 VictoriaMetrics 中查询 Metrics 数据并展示在 Grafana 上。

  • 集成eBPF 技术的OpenTelemetry 发行版:APO 整合了 OpenTelemetry 探针、otel-collector、Jaeger、ClickHouse 和 VictoriaMetrics,通过 OneAgent 技术支持在传统服务器和容器环境自动安装多语言的 OpenTelemetry 探针,减少用户配置工作。APO 创新性地将 eBPF 技术与 OpenTelemetry 生态融合,基于回溯采样算法,大大降低了数据的存储量。

  • 基于 eBPF 的向导式排障产品:AutoPilot 表示辅助用户定界定位故障原因。APO 提供了向导式辅助用户定界定位故障原因的界面,通过使用 APO 的 OneAgent 安装 OpenTelemetry 探针,OneAgent 能够分析环境故障,基于 eBPF 技术保留故障现场数据并展示在向导式排障界面上。eBPF 技术将向导式排障界面辅助用户在一个页面上完成故障原因的定界定位。


    功能

自动安装 OpenTelemetry 探针,无需手动配置

通过 OneAgent 技术,支持在传统服务器和容器环境自动安装多语言的 OpenTelemetry 探针,减少用户配置工作。

一站式可观测性中心,一个页面完成故障定位

APO 集成了链路、指标、日志和事件等数据,能够一站式解决可观测性和故障定位的需求。

聚焦应用的拓扑

完整拓扑结构太复杂,没有实现拓扑本身应该具有的“地图导航”引导用户找到疑似故障节点的功能。基于应用聚焦的拓扑只呈现应用调用的上一层节点和下一层节点,更多节点采用表格形式展示,避免展示更多节点时拓扑复杂无法分析。当用户需要查看下游依赖节点时,可以点击节点名快速切换不同节点的详情页面。

基于相似度算法排序高效识别级联的故障节点

在请求延时发生故障时,很多节点都会被级联的影响到,从传统告警中看是很多节点都有告警,在APO中,每个节点都会将其下游依赖的延时进行相似度曲线匹配,从而找到延时最相似的节点,最相似的节点是根因的可疑性更高,这里的下游依赖包括直接下游和下游依赖的依赖。

北极星因果指标主因判定算法

单纯的分析链路数据会留下很多盲区,难以快速判断延时升高时是自身导致还是依赖导致。北极星因果指标主因算法能够直接给出延时波动是由何种原因导致的,给出了故障原因的方向。例如下图给出的主因是对外网络调用延时变化导致了应用延时变化,结合网络延时指标可以判断出原因到底是网络延时变化还是下游节点延时变化。

利用eBPF技术采集的北极星因果指标直接给出故障定位方向,大致分为以下几个方向:

  • 代码嵌套循环太多

  • 代码锁(垃圾回收、数据连接池争抢锁)

  • 存储故障(磁盘故障)

  • 下游依赖(中间件故障、服务故障);需要根据网络指标排除网络质量故障

  • CPU资源不足(其它程序抢占了CPU或者容器的limit配置不合理)

  • 内存不足

快速找到故障链路和日志

根据延时、错误率和日志错误数量曲线可以快速定位故障可能发生时间点,从而查看时间点附近的日志或链路数据。

 


特点

保留故障现场的热数据,降低数据存储成本

故障现场的热数据 vs. 传统可观测性数据

  • 对于异常(慢或者错)链路数据进行回溯采样,同时保留同时间段的日志(称之为故障现场日志),这些故障现场的数据在 APO 中被称之为热数据。回溯采样算法可以参考算法论文。
  • 传统可观测性的保留方式称之为冷数据保留方式。

基于故障现场的热数据关联带来了不同数据之间跳转的极致流畅的体验。此外基于故障现场的热数据为未来优化存储、节约可观测性的成本带来了更多的可能性。

无惧数据膨胀,高效地在数据间关联跳转

APO 利用 eBPF 技术为原始数据生成并保存了“索引”数据,“索引“数据的大小明显小于原始数据,即使原始数据膨胀,APO 仍然能够通过查询索引数据快速给出可观测性数据结果。同时利用 eBPF 技术在内核中为不同类型的数据增加元信息标签,增强数据间的关联性,使用户在不同数据之间能够无缝跳转。

相比于其他可观测性方案,APO 在保存相同时间周期的数据时,占用更少的存储成本同时能够更快地给出数据结果。

事件指标化联动与更加直观的故障提示

  • 日志错误数指标:传统日志告警思路是根据日志内容为“Exception”或者“错误”进行告警,但有时日志会经常输出 Exception,业务却一切正常,如果按照日志内容告警,则会发生误告警。为了避免这个问题,APO 只匹配“Exception”或者“错误”日志,并将这些数量变成指标,如果该指标短时间飙升,可以起到日志告警的作用,提示用户程序执行过程有问题。
  • 网络质量的事件化:APO 基于 ping 包时延的方式来快速判断网络质量好坏,如果ping包延时超出预定阀值,APO页面上的网络质量状态会给出提示。
  • 北极星因果指标:北极星因果指标是一个应用执行业务过程中,各资源类型延时分布的指标化,基于延时分布能够利用算法判断延时的飙升是应用自身的问题还是依赖的问题。应用自身的问题也能给出故障原因的方向,是代码循环、锁还是资源不足等原因。
  • 告警信息的关联:传统告警信息与可观测性数据的联动很少,APO中将基础设施状态、网络质量状态、K8s 事件状态转换成示警信息,帮助用户在同一个界面中更快地判断故障原因。

    产品地址:

    https://apo.kindlingx.com/

    开源地址:

    https://github.com/CloudDetail/apo

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity物理模块 之 ​2D碰撞器

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 1.碰撞器是什么 在 Unity 中,碰撞器(Collider)是一种组件,用于检测物体之…

P37-数据存储

数据类型介绍 前面学习了基本的内置类型: 以及它们所占存储空间的大小。 类型的意义: 1.使用这些类型开辟空间的大小(大小决定了使用范围) 2.如何看带内存空间的视角 类型的基本归类 整形家族 之所以char也分类在其中是因为实…

【图形验证和AI智能及CHATGPT对抗影响的是用户体验】

验证码本质上自带一层答案的语义,这原本是天然的区分人和自动程序的地方,但在今日却未必,由于AI智能及CHATGPT的发展机器要识别也变得容易。 一 :攻防思路 黑产对于验证码图片答案的获取主要有两种手段——图片穷举破解和图片模…

ComfyUI - 在服务器中部署 AIGC 绘画的 ComfyUI 工具 教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/141140498 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 ComfyU…

分布式知识总结(基本概念)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 基本概念 吞吐量 指系统在单位时间能够处理多少个请求 QPS 每秒…

Android 13 GMS 内置壁纸

如图,原生系统上,设备上的壁纸 显示系统内置壁纸。如果没有添加内置壁纸,就显示默认的壁纸。点击进去就是预览页面 扩展下,默认壁纸在 frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.png frameworks/b…

vue3中ref、reactive的理解

本文主要介绍了vue3中ref、reactive的使用。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。 在讲解这两个api工具之前,我们得先了解下watch和watchEffect这两个函数的使用方法和它…

通过es+ Kibana+ LogStash收集日志

架构 服务产生的日志,通过logstash收集到es中,并通过kibana展示出来,这里不再介绍三者的作用 部署esKibana 这三个的版本尽量要保持一致,我使用的是7.13.4 通过docker部署es 命令: docker run --name elasticsea…

2024.8.12(LVS)

一、LVS 1、描述以及工作原理 1. 什么是LVS linux virtural server的简称,也就是linxu虚拟机服务器,这是一个由章文嵩博士发起的开源项目,官网是http://www.linuxvirtualserver.org,现在lvs已经是linux内核标准的一部分,使用lvs可以达到的技术目标是:通过linux达到负载均衡技…

C#压缩和解压文件

这里用两种方法实现C#压缩和解压文件 1、使用System.IO.Compression名称空间下的相关类(需引用 System.IO.Compression.FileSystem和System.IO.Compression程序集) 创建zip压缩文件 使用ZipFile类CreateFromDirectory()方法来创建zip压缩文件。它有3种重载形式,这…

【Java数据结构】---Queue

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 ,Java 欢迎大家访问~ 创作不易,大佬们点赞鼓励下吧~ 文章目录 前言队列Queue队列的模拟…

机器学习——第十一章 特征选择与稀疏学习

11.1 子集搜索与评价 对一个学习任务来说,给定属性集,其中有些属性可能很关键、很有用,另一些属性则可能没什么用.我们将属性称为"特征" (feature) ,对当前学习任务有用的属性称为"相关特征" (relevant featu…

World of Warcraft [CLASSIC] 80 WLK [Gundrak] BUG

World of Warcraft [CLASSIC] 80 WLK [Gundrak] BUG 魔兽世界怀旧版,80级,5人副本古达克,科技队伍(BUG队伍) 副本有两个门口 这样看,是不是觉得很怪。是的,和图1刚好相反的。 因此应该翻转180…

Ubuntu视频工具

1. VLC VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影音光…

《学会 SpringBoot · 优雅停机方案》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

深入了解ISO 10012测量管理体系:从认证流程到实施周期

ISO 10012测量管理体系是国际标准化组织(ISO)推出的一项关键标准,旨在帮助企业确保测量过程的精确性和一致性。这个标准对需要精密测量的行业,如制造业、科学研究等领域尤为重要。了解ISO 10012的认证流程和实施周期,对…

Python数据可视化案例——折线图

目录 json介绍: Pyecharts介绍 安装pyecharts包 构建一个基础的折线图 配置全局配置项 综合案例: 使用工具对数据进行查看 : 数据处理 json介绍: json是一种轻量级的数据交互格式,采用完全独立于编程语言的文…

R的行和列命名和类型的转换

下面内容摘录自: 4章8节:用R做数据重塑,行列命名和数据类型转换-CSDN博客 欢迎订阅我们专栏 一、行和列命名 在数据科学和统计分析中,命名是组织和管理数据的一个重要部分。尤其是在处理复杂的多维数据集时,为行和列命…

HAProxy负载均衡详细解释

目录 1、HAProxy的负载均衡 1.1socat工具的使用 1.1.1对于单进程 1.1.2对于多进程处理方法(对haproxy做热处理) 2、Haproxy的算法 2.1静态算法 <1>static-rr <2>first 2.2动态算法 <1>roundrobin <2>leastconn <3>random 2.3其他算…

OpenGL3.3_C++_Windows(35)

PBR_IBL漫反射 IBL图像的光照(Image based lighting&#xff09;&#xff1a;非直接光源&#xff0c;它是一种更精确的环境光照输入格式&#xff0c;甚至也可以说是一种全局光照的粗略近似。环境光照&#xff1a;获取每个wi光源辐射率&#xff0c;求辐照度&#xff1a;将周围环…