Elastic Observability 8.10 introduces the general availability release of Elastic Universal Profiling™ and enhancements to the Elastic AI Assistant for Observability.
- Elastic® Universal Profiling is a whole-system, always-on, continuous profiling solution that eliminates the need for code instrumentation, recompilation, on-host debug symbols, or service restarts. Leveraging eBPF, it operates within the Linux kernel space, capturing only necessary data with minimal overhead. It profiles every line of code, including application, kernel, and third-party libraries, providing whole-system code visibility across your entire fleet.
- Elastic Universal Profiling 是一种全系统、始终在线、持续的分析解决方案,无需代码检测、重新编译、主机上调试符号或服务重新启动。利用eBPF,通用分析在 Linux 内核空间内运行,以不引人注目的方式以最小的开销仅捕获所需的数据。它分析机器上运行的每一行代码——不仅包括您的应用程序代码,还包括内核和第三方库——从而为您的整个机群提供深入的、全系统的代码可见性,这样您就可以消除猜测。
前言
Universal Profiling 是Es提供的一种分析工具,可以根据官方描述,它基本上对业务是零侵入,运行成本极低的一个工具。就可以帮我们分析出来服务器上运行程序的好坏。可以给我们精准分析道每一个方法,每一行代码。可以让我们知道资源占用情况。
计算效率一直是软件专业人员最关心的问题,但在每一行代码都影响底线和环境的时代,有一个新的理由来关注它。提高软件效率可以带来更好的性能、更低的资源消耗、更低的成本和更低的排放。高效的软件不仅有利于企业,而且有利于企业。
一、主要能用来做什么?
1、了解整个基础架构中哪些代码行始终消耗 CPU 资源。
通用分析为所有应用程序的运行时行为提供了前所未有的可见性:它构建从内核到用户空间本机代码,一直到在更高级别运行时运行的代码的堆栈跟踪,使您能够识别性能回归,减少浪费的计算,并更快地调试复杂问题。
2、构建初衷给SRE、开发人员和 FinOps 专业人员
下方会给出用例
二、Elastic Universal Profiling强大之处
- 1.零侵入:Elastic Universal Profiling 是一种全系统、始终在线、持续的分析解决方案,无需代码检测、重新编译、主机上调试符号或服务重新启动。
- 2.资源耗费少:以不引人注目的方式以最小的开销仅捕获所需的监控数据。
- 3.监控精细:分析机器上运行的每一行代码——不仅包括您的应用程序代码,还包括内核和第三方库——从而为您的整个机群提供深入的、全系统的代码可见性。
- 4.分析支持多种语言: PHP、Python、Java(或任何 JVM 语言)、Go、Rust、C/C++、Zig、Node.js/V8、Ruby 和 Perl。
三、效果展示与案例
1、SRE 用例
对于 SRE,弹性通用分析提供了涵盖内核、运行时和第三方库代码的系统范围性能洞察。凭借前所未有的广度和深度的可见性,它可以洞察可能潜伏在系统中的未知因素,从而实现精确、快速的故障排除。这种更深层次的全系统可见性使 SRE 能够回答基本的“为什么”和“什么”问题:
- 为什么我们要将 x% 的 CPU 预算花在函数 y 上?
- 为什么我们会在非高峰时段遇到意外的 CPU 峰值?
- 不同工作负载的资源消耗模式是什么?如何优化它们以提高成本和碳排放效率?
- 我们整个多云队列中最昂贵的代码行是什么?
所有这些可见性都可供您(SRE)使用,而无需依赖开发人员来检测或更改代码,并且零重新编译或重新启动。Universal Profiling 使您能够准确、快速地诊断和解决问题。只需部署代理并在几分钟后接收分析数据(在 Kibana ®中)。现在就开始吧。
[有关分析如何补充 APM 的相关文章:为什么指标、日志和跟踪还不够]
显示 A/B 测试回归的微分火焰图
2、开发者用例
开发人员现在可以衡量每个已部署变更的性能(获得或损失)、云成本和碳足迹影响,这在历史上还是第一次。
弹性通用分析为性能优化、捕获回归、验证版本以及有助于节省云成本和 CO 2排放提供了强大的见解。凭借识别内核和用户空间级别的数据结构、内存分配和代码执行问题的洞察力,开发人员有能力捕获最难以捉摸的问题。这种代码级可见性使开发人员能够回答关键的“什么”和“为什么”问题,例如:
- 为什么最近的代码更改会导致特定方法速度减慢?
- 最新版本引入了哪些意外的回归,以及如何及时解决这些问题?
- 与之前的版本相比,新版本在 CPU 消耗、云成本和 CO 2足迹方面有何表现?
- 如何微调第三方图书馆功能以满足绩效标准,同时与可持续发展目标保持一致?
借助 Elastic Universal Profiling,开发人员可以专注于创新、优化和交付高效的应用程序,以满足性能、业务和环境可持续性目标。
通用分析支持 PHP、Python、Java(或任何 JVM 语言)、Go、Rust、C/C++、Zig、Node.js/V8、Ruby 和 Perl。
差异函数视图 - 显示变更的性能、CO 2和成本影响。
三、金融运营用例
Elastic Universal Profiling 为 FinOps 专业人员提供了战略性管理成本所需的见解,使财务决策与绩效需求和可持续发展目标保持一致,使他们能够回答关键问题,例如:
- 如何在不影响性能的情况下降低云成本?
- 资源利用的趋势是什么?它们如何与我们的可持续发展目标保持一致?
- 提高效率并同时带来经济和环境效益的机会在哪里?
总而言之,就像汽车制造商监控装配线上每个组件的成本一样,Elastic Universal Profiling 可以更深入地洞察软件装配线的单位经济性。
通过 Elastic Universal Profiling了解每一行代码(包括您不拥有的代码)如何影响您的销售成本 ( COGS )。
四、关系性能监控的重要性
以下是领先的云安全和管理平台 AppOmni 的首席安全工程师 Mike Brancato 的说法:
计算效率一直是 SRE 和开发人员最关心的问题。然而,在每一行代码都会影响业务 KPI 和环境的时代,人们重新开始重视软件优化。这是由于高效软件的双重好处:它降低了云成本并推动组织实现其ESG目标。
Elastic Universal Profiling 通过测量三个维度的效率来帮助您运行高效的服务:CPU performance (gained or lost), CO2 emission, and cloud cost.。 Universal Profiling是一种连续、始终在线的全系统分析解决方案,需要零检测、零代码更改和零重启。它通过构建从内核到用户空间本机代码,一直到在更高级别运行时运行的代码的堆栈跟踪,为所有应用程序的运行时行为提供前所未有的代码可见性,使您能够识别性能回归,减少浪费的计算,并更快地调试复杂问题。
根据客户的评价,AppOmni 的威胁检测团队利用弹性通用分析来磨练其产品工作负载中需要性能增强的领域,特别是在用 Python 和 Go 编写的应用程序中。以下是 AppOmni 首席安全工程师 Mike Brancato 的想法:
使用 Elastic Universal Profiling,我们能够非常快速地识别应用程序中最慢的部分,并针对这些部分进行改进。我们能够轻松快速地部署到生产中,而不会中断现有工作负载。我们的应用程序和其他组件的分析数据可以立即获得,无需包含任何库或对我们的应用程序进行任何修改。