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

news2024/12/23 20:31:47

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.coloradmin.cn/o/2036521.html

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

相关文章

主机防火墙IPV6 域名 测试环境搭建及测试方法

由于国内当前网站支持ipv6的很少,部分支持ipv6 的网站由于路由器的限制,也无法直接访通过ipv6进行访问,因此进行主机防火墙ipv6域名测试时,需要自己搭建环境进行测试,以下为搭建环境的步骤。 1 . 搭建DNS服务器 环境:安装有python,系统为Windows Server 2016 DNS服务…

【Vue3】vue模板中如何使用enum枚举类型

简言 有的时候,我们想在vue模板中直接使用枚举类型的值,来做一些判断。 ts枚举 枚举允许开发人员定义一组命名常量。使用枚举可以更容易地记录意图,或创建一组不同的情况。TypeScript 提供了基于数字和字符串的枚举。 枚举的定义这里不说了…

haproxy最强攻略

1、负载均衡 负载均衡(Load Balance,简称 LB)是高并发、高可用系统必不可少的关键组件,目标是 尽力将网络流量平均分发到多个服务器上,以提高系统整体的响应速度和可用性。 负载均衡的主要作用如下: 高并发…

接入谷歌支付配置

1.谷歌云创建项目 网址:https://console.cloud.google.com/ 按照步骤创建即可 创建好后选择项目,转到项目设置 选择服务账户,选择创建新的服务账户 名称输入好后访问权限吗账号权限都可以不用填写,默认就好了 然后点击电子邮…

爵士编曲:Bass编写,Walking Bass,SwingBass 爵士鼓 Swing Jazz律动 Moonkits

Walking Bass Line是乐曲构造中的基垫,“Walking”是在BassLine中的一种重要的感觉构成,等同于我们对于“行走”的理解,意义就是“一步接着一步”,先从每一步(每一小节)建立,并持续构建成一个完…

Android 10.0 SystemUI下拉状态栏QSTileView去掉着色效果显示彩色图标功能实现

1.前言 在10.0的系统rom定制化开发中,在关于SystemUI的下拉状态栏中QSTileView的背景颜色设置过程中,在由于 系统原生有着色效果,导致现在某些彩色背景显示不是很清楚效果不好,所以需要去掉QSTileView的默认着色 背景显示原生的彩色背景,接下来就来实现相关功能 如图: 2.…

【微信小程序】实现中英文切换

1、组织语言资源 创建两个文件夹,分别用于存放中文和英文的语言资源。例如,可以在 utils 文件夹下创建 lang 文件夹,然后在其中创建 zh.js 和 en.js 文件,分别存放中文和英文的文本内容。 zh.js: const zh {home: {title: 这里…

【人工智能】全景解析:【机器学习】【深度学习】从基础理论到应用前景的【深度探索】

目录 1. 人工智能的基本概念 1.1 人工智能的定义与发展 1.1.1 人工智能的定义 1.1.2 人工智能的发展历史 1.2 人工智能的分类 1.2.1 弱人工智能 1.2.2 强人工智能 1.2.3 超人工智能 1.3 人工智能的关键组成部分 1.3.1 数据 1.3.2 算法 1.3.3 计算能力 2. 机器学习…

大模型系列6--神经网络(WIP)

神经网络 1. 背景2. 理论知识2.1. 单个神经元2.1.1. 基础2.1.2. 神经元激活代码 2.2. 多个神经元2.2.1. 基础2.2.2. 神经元激活代码2.2.3. 反向传播 3. 神经网络编程基础3.1. 基本概念3.2. 逻辑回归3.3. 梯度下降法(Gradient Descent)3.3.1. 基础知识3.3.2. 梯度下降的形式化说…

Selenium + Python 自动化测试09(多窗口切换)

我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。 上一篇我们讨论了截图的操作方法,本篇文章我们讲述一下多窗口切换的操作方法。 在实际的测试项目组中我们可能会遇到多窗口的情况,有时候需要在不同窗口…

MyBatis 配置与测试方式

目录 一,什么是MyBatis 二,准备工作 创建项目 配置数据库连接 持久层代码 单元测试 一,什么是MyBatis 简单来说,MyBatis 是一款优秀的持久层框架,用于简化JDBC的开发,能更简单完成程序与数据库之间…

MySQL 复制建表、操作补充、pymysql操作—/—<10>

一、复制建表 1、复制其他表的结构 只复制结构,不复制值 CREATE TABLE aaa LIKE student student表: 复制完的a表: 2、复制查询结果并建表: create table a (select id,sum(score) as sum_sco from score group by id) score表结构如图所…

【存储学习笔记】3:备份(Backup)技术分类

1 定义 备份:出于数据恢复的目的而创建一份额外的数据副本。 2 技术指标 2.1 备份窗口(Backup Window) 从定指标的角度:可以安全地实施备份的时间 从实现指标的角度:备份操作所需的时间 2.2 恢复时间目标&#xf…

C 408—《数据结构》算法题基础篇—数组(通俗易懂)

目录 Δ前言 一、数组的合并 0.题目: 1.算法设计思想: 2.C语言描述: 3.算法的时间和空间复杂度 : 二、数组元素的倒置 0.题目 : 1.算法设计思想 : 2.C语言描述 : 3.算法的时间和空间复杂度 : 三、数组中特定值元素的删除 0.题目 : …

贷齐乐案例

源码分析&#xff1a; <?php // 设置 HTTP 头部&#xff0c;指定内容类型为 text/html&#xff0c;字符集为 utf-8 header("Content-type: text/html; charsetutf-8"); // 引入数据库配置文件 require db.inc.php; // 定义函数 dhtmlspecialchars&#xff0c;用…

基于WOA鲸鱼优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 分组卷积神经网络&#xff08;GroupCNN&#xff09; 4.2 WOA优化算法 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核…

获奖方案|趋动科技:资源池化释放AI算力价值

“据统计&#xff0c;GPU的平均利用率不超过30%&#xff0c;会产生巨大的算力资源浪费。我们用软件定义的方式通常可以把用户GPU的利用率提升3-8倍&#xff0c;甚至可以到10倍。” 这是算力池化软件公司趋动科技援引行业报告数据并结合自身企业最佳实践经验给出的最新数据。通…

分布式版本控制概述

目录 1. 版本控制软件的基础功能 2. 集中式版本控制 3. 分布式版本控制 git 是分布式管理控制工具&#xff0c;用来管理开发项目中的资源: 这样的软件在项目管理开发中称为 SCM&#xff08;Software Configuration Management&#xff09; 软件; 下面是版本控制到分布式版本…

java快速导出word文档

点关注不迷路&#xff0c;欢迎再访&#xff01; 精简博客内容&#xff0c;尽量已行业术语来分享。 努力做到对每一位认可自己的读者负责。 帮助别人的同时更是丰富自己的良机。 文章目录 前言一.添加 Apache POI 依赖二.填充文档内容三.导出文档效果测试 前言 在 Java 应用程序…

Apache CloudStack Official Document 翻译节选(一)

关于 Apache CloudStack 的 概念和专用术语 &#xff08;一&#xff09; 甲一 Apache CloudStack Apache CloudStack 是一个开源的IAAS平台&#xff0c;管理调度着用于构建公有云或私有云的计算、网络、存储资源池。 借助Apache CloudStack&#xff0c;你可以创建一个按需使用的…