关于开源软件在各行各业的企业中的普及程度,有十五亿个统计数据。 应用程序由80%以上的开源组件组成,互联网基本都运行在开源软件NGINX之上。
但同样也存在许多开放标准。 标准采用开源、社区的方式开发和完善,产生了令人难以置信的支持产品、项目和基础设施的生态系统。
OpenTelemetry就是其中一项努力,它已成为生成、提取和处理操作数据(又称遥测)的标准。 《2023 年可观察性创新报告》的近三分之一 (32%) 的受访者表示“需要OpenTelemetry 支持,50% 的人表示这在供应商产品中非常重要。 略多于三分之一(36%)的受访者在其组织内使用 OpenTelemetry。”
标准化遥测至关重要,因为可观察性依赖于整个 IT 堆栈的数据点。 这意味着网络指标、服务器日志和跟踪——所有这些都来自截然不同类型的基础设施和系统。 不存在单一的事实来源,因为即使是一个简单的应用中也有太多的活动部件,无法确保您可以收集在给定时间点观察应用程序状态所需的所有数据。 标准化遥测生成方式是规范数字信号并确保分析可以利用所有适当的数据点来提供准确、可操作的见解的一种方法。
但即使是标准化遥测也不能解决实现全栈可观测性所面临的所有挑战。
处理运营数据的一个棘手问题是其数量。 组织依靠数字信号来及时了解潜在的性能问题或攻击企图,这些数字信号的产生速度比任何其他类型的数据都更快、更猛烈。 我们非常清楚这一点,因为 F5 已采用 OpenTelemetry 作为我们整个产品组合的标准。 我们的产品(例如 BIG-IP 和 NGINX)在交付和保护applications和数字服务方面的性质和作用意味着,会由于各种原因生成大量数据(例如指标和日志)。 传输和处理这些数据占遥测管道相关成本的很大一部分。
为了应对这一挑战,杰出工程师 Laurent Quérel 参与了Apache Arrow并开始与 OpenTelemetry 项目合作,以提高其在处理大量遥测时的效率。
我们的基准测试结果表明,Apache Arrow 在传输和处理遥测数据方面具有显著优势,尤其是当它可以分组为几百个或更多实体的批次时。 数据的列式组织增强了压缩性,并且这种内存布局通过优化各种缓存级别和 SIMD 指令的使用大大提高了处理速度。 此外,Arrow 生态系统是 OpenTelemetry 的极好补充,增强了其与查询引擎、流处理管道和专门的分析文件格式的集成。
您可以在 Apache Arrow 网站上关于我们使用该技术的经验的两篇文章中的第一篇中阅读有关 Apache Arrow 和 Laurent 的工作的更多信息。