Observability:介绍 OpenTelemetry Java 代理的 Elastic 发行版

作者:来自 Elastic Alexander Wert, Jack Shirazi, Jonas Kunz, Sylvain Juge

随着 Elastic 继续致力于 OpenTelemetry (OTel),我们很高兴地宣布推出 OTel Java Agent 的 Elastic 发行版。 在这篇博文中,我们将探讨我们独特的发行版背后的基本原理,详细介绍它带来的强大的附加功能。 我们将概述如何将这些增强功能与我们的发行版、标准 OTel SDK 或标准的 OTel Java 代理一起使用。 请继续关注,我们将展望我们的未来计划,以及你对 Elastic 对 OTel Java 未来发展的贡献的期望。

OpenTelemetry Java 代理的 Elastic 发布

到目前为止,希望通过自动检测来监控其 Java 服务的 Elastic 用户有两种选择:专有的 Elastic APM Java 代理或标准的 OTel Java 代理。 虽然这两种代理都提供强大的功能并且已达到较高的成熟度,但每种代理都有其独特的优势和局限性。 OTel Java 代理提供跨广泛框架和库的广泛工具,具有高度可扩展性,并且本地发出 OTel 数据。 相反,Elastic APM Java 代理包含 OTel Java 代理所没有的多项强大功能。

Elastic 发行的 OTel Java 代理旨在将专有 Elastic Java 代理和 OpenTelemetry Java 代理的最佳方面结合在一起。 该发行版通过扩展实现的一组附加功能增强了普通 OTel Java 代理,同时仍然是完全兼容的直接替代品。

Elastic 对 OpenTelemetry 的承诺不仅侧重于标准化 OTel 周围的数据收集,还包括改进 OTel 组件并将 Elastic 的数据收集功能集成到 OTel 中。 在这种情况下,我们的最终目标是将 Elastic 发行版中的尽可能多的功能贡献给上游 OTel Java 代理; 我们的发行版的设计方式是,作为扩展实现的附加功能可以直接与 OTel SDK 配合使用。 这意味着它们可以独立于 Elastic 的发行版使用 —— 可以与 OTel Java SDK 一起使用,也可以与标准的 OTel Java 代理一起使用。 我们将在下面的部分中进一步讨论这些使用模式。

包含的功能

OpenTelemetry Java 代理的 Elastic 发行版包含一套扩展,可提供下述功能。

推断的跨度

在最近的一篇博客文章中,我们介绍了推断跨度,这是一项强大的功能,旨在通过额外的基于分析的跨度来增强分布式跟踪。

推断的跨度(上图中标记为 “内部” 的蓝色跨度)为代码中的延迟来源提供了有价值的见解,这些延迟来源可能无法通过纯粹基于检测的跟踪捕获。 换句话说,它们填补了基于检测的跟踪之间的空白。 OTel Java 代理的 Elastic 发布包括推断跨度功能。 可以通过设置以下环境变量来启用它。

ELASTIC_OTEL_INFERRED_SPANS_ENABLED=true

与分析的相关性

随着 OpenTelemetry 拥抱分析,以及 Elastic 捐赠其基于 eBPF 的连续分析代理的提议,开辟了将分布式跟踪与连续分析数据关联起来的新领域。 这种集成提供了对延迟问题和二氧化碳排放足迹的前所未有的代码级洞察,所有这些都在明确定义的服务、事务(transactions)和跟踪 (trace) 上下文中进行。 为了了解你如何从这种相关性中受益,请查看这篇博客文章,其中我们探讨了这些技术如何融合以增强软件开发中的可观察性和环境意识。

Elastic Universal Profiling 的用户已经可以利用 OTel Java 代理的 Elastic 发行版来访问这一强大的集成。 随着 Elastic 提议捐赠分析代理,我们预计所有将 OTel Java 代理与新的 OTel eBPF 分析结合使用的 OTel 用户很快就能使用此功能。

跨度堆栈跟踪

在许多情况下,分布式跟踪内的跨度相对粗粒度,特别是当不使用推断跨度等功能时。 准确理解跨度在代码路径中的起源位置非常有价值。 为了满足这一需求,OTel Java 代理的 Elastic 分发包括跨度堆栈跟踪功能。 此功能通过收集超过可配置的最小持续时间的跨度的相应堆栈跟踪来提供重要的见解,准确地指出代码中跨度的启动位置。

这一简单而强大的功能显着增强了问题故障排除能力,使开发人员能够更清楚地了解其应用程序的性能动态。

在上面的示例中,它允许你获取 gRPC 调用的调用堆栈,这可以帮助了解哪些代码路径触发了它。

自动检测服务和云资源

在当今广泛且多样化的云环境中(通常包括多个区域和云提供商),了解有关服务运行位置的信息非常有价值。 特别是在 Java 服务中,服务名称经常嵌入到部署工件中,自动检索服务和云资源信息的能力标志着可用性的重大飞跃。

为了满足这一需求,OTel Java 代理的 Elastic 分发包括针对服务和云资源的内置自动检测器,特别是针对 AWS 和 GCP,这些资源源自 OpenTelemetry Java Contrib 存储库。 此功能默认启用,可增强可观察性并简化跨各种云平台的服务管理,使其成为任何基于云的部署的关键资产。

使用 Elastic 发布的方法

OTel Java 代理的 Elastic 分发旨在满足我们用户的需求,满足各种需求和战略方法。 无论你是希望完全集成新的可观察性功能还是只是增强现有设置,Elastic 发行版都提供了多种技术途径来利用其功能。 这种灵活性确保用户可以定制代理的实施,以完全符合其特定的运营要求和目标。

直接使用 Elastic 的发行版

利用上述功能的最简单途径是采用 OTel Java 代理的 Elastic 分发作为标准 OTel Java 代理的直接替代品。 从结构上讲,Elastic 发行版充当 OTel Java 代理的包装器,保持与所有上游配置选项的完全兼容性并合并其所有功能。 此外,它还包括上述的高级功能,显着增强了其功能。 Elastic 发行版的用户还将受益于 Elastic 提供的全面技术支持,该支持将在代理实现普遍可用性后开始。 首先,只需下载代理 Jar 文件并将其附加到你的应用程序:

​​java -javaagent:/pathto/elastic-otel-javaagent.jar -jar myapp.jar

将 Elastic 的扩展与普通 OTel Java 代理结合使用

如果你希望继续使用普通 Otel Java 代理,但希望利用上述功能,你可以灵活地这样做。 我们提供专门为此目的设计的单独代理扩展包。 要集成这些增强功能,只需下载扩展 jar 文件并将其放入指定目录并配置 OTel Java 代理扩展目录:

​​OTEL_JAVAAGENT_EXTENSIONS=/pathto/elastic-otel-agentextension.jar
java -javaagent:/pathto/otel-javaagent.jar -jar myapp.jar

通过 OTel Java SDK 手动使用 Elastic 的扩展

如果你使用 OTel API 将检测直接构建到应用程序中,并依赖 OTel Java SDK 而不是自动 Java 代理,你仍然可以使用我们讨论过的功能。 每个功能都被设计为独立组件,可以与 OTel Java SDK 框架集成。 要实现这些功能,只需参考每个功能的具体描述,了解如何相应配置 OTel Java SDK:

  • 使用 SDK 设置推断范围功能
  • 设置与 SDK 的分析关联
  • 使用 SDK 设置跨度堆栈跟踪功能
  • 使用 SDK 设置资源检测器
    • 服务资源检测器
    • AWS 资源检测器
    • GCP 资源检测器

这种方法确保你可以定制可观察性工具来满足你的特定需求,而不会影响功能。

未来的计划和贡献

我们致力于 OpenTelemetry,并且我们对 OpenTelemetry Java 项目的贡献将继续无限制。 我们不仅专注于 OTel Java 项目中的一般改进,而且还致力于确保本博客文章中讨论的功能成为 OpenTelemetry Java SDK/Agent 的官方扩展,并包含在 OpenTelemetry Java Contrib 存储库中。 我们已经贡献了跨度堆栈跟踪功能,并启动了推断跨度功能的贡献,并且我们热切期待在成功集成 Elastic 分析代理后添加分析相关功能的机会。

此外,我们的努力超出了当前的增强; 我们正在积极努力将更多功能从 Elastic APM Java 代理移植到 OpenTelemetry。 我们的项目是一个特别雄心勃勃但令人兴奋的项目,旨在实现 OpenTelemetry Java 代理的动态可配置性。 未来的增强功能将允许使用 OpenTelemetry 代理管理协议 (OpAMP) 远程动态配置 OTel Java 代理,从而提高其适应性和易用性。

我们鼓励你体验 OTel Java 代理的新 Elastic 发行版并与我们分享你的反馈。 你的见解非常宝贵,因为我们努力增强 OpenTelemetry 的功能和覆盖范围,使其更加强大且用户友好。

本文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。

原文:Introducing the Elastic distribution of the OpenTelemetry Java Agent | Elastic Blog

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

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

相关文章

P9748 [CSP-J 2023] 小苹果:做题笔记

目录 P9748 [CSP-J 2023] 小苹果 思路 代码 P9748 [CSP-J 2023] 小苹果 P9748 [CSP-J 2023] 小苹果 思路 先写几个看看规律 题意我们能看出来是三个三个一组的,然后每次取走的都是三个里面的第一个。我们应该很容易想到如果一轮的总数是三的倍数的话&#xff0…

一文解析嵌入式多核异构方案,东胜物联RK3588多核异构核心板系列一览

嵌入式人工智能快速发展,对于高性能计算需求越来越大。为了解决性能与功耗的平衡、通过并行化加速计算等,越来越多地嵌入式处理器使用同构多核、异构多核和协处理器的设计。 同时面对日益复杂的外部环境,国产嵌入式智能系统更离不开兼顾强实…

每天认识新职业——程序员

一、程序员是什么 程序员是从事程序开发、程序维护的基层工作人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚。随着互联网的不断普及,网络上把男程序员称作“程序猿",女程序员称作“程序媛"。或统称…

CSRF 攻击实验:Token 不存在绕过验证

前言 CSRF(Cross-Site Request Forgery),也称为XSRF,是一种安全漏洞,攻击者通过欺骗用户在受信任网站上执行非自愿的操作,以实现未经授权的请求。 CSRF攻击利用了网站对用户提交的请求缺乏充分验证和防范…

navicat 无法连接mysql8

select host,user,authentication_string,plugin from mysql.user; alter user root%IDENTIFIED WITH mysql_native_password BY root; flush PRIVILEGES; select host,user,authentication_string,plugin from mysql.user;

运维别卷系列 - 云原生监控平台 之 04.prometheus 查询语句 promql 实践

文章目录 [toc]PromQL 简介什么是时间序列 PromQL 数据类型即时向量 Instant vector范围向量 Range vectorTime DurationsOffset modifier modifier 浮点值 Scalar字符串 String PromQL FUNCTIONSfloor()irate()rate()round()sort()sort_desc() PromQL 运算符算术运算符比较运算…

python 批量webp格式转换成jpg

首先,你需要安装Pillow库。如果还未安装,可以通过pip安装: pip install Pillow 创建一个Python脚本来读取webp文件,并将其转换为jpg格式。 只需修改source_folder和dest_folder变量为你的实际文件夹路径即可使用这个脚本。 fro…

阻抗控制理解之逆动态控制律

具有六个自由度的二阶机械系统,其特征是给定的质量、阻尼和刚度,称为机械阻抗。 用于运动控制的加速度解决方法,它旨在通过逆动力学控制律在加速度水平上解耦和线性化非线性机器人动力学。在与环境存在交互作用的情况下,控制律 考…

美港通正规股票杠杆交易突破3900点,欧线集运再创历史新高

查查配5月13日,欧线集运主连高开高走,盘中一度涨超13%,截至早盘收盘涨11.93%,突破3900点。4月以来,欧线集运主连累计涨超110%。 美港通证券以其专业的服务和较低的管理费用在市场中受到不少关注。该平台提供了实盘交易、止盈止损、仓位控制等功能,旨在为投资者提供更为全面的投…

短剧私域-快速引流变现

短剧的爆火,衍生出了很多周边项目。 比如免费看剧App,短剧搜索机器人,短剧付费圈子等等。 这些项目的本质,就是借助短剧的热度,把流量引到自己的鱼塘进行变现。 短剧机器人大家都知道,目前最火的一种玩法…

水电站机组油压自动化控制系统概述及优势介绍

一、系统背景 我国河流、湖泊分布广泛,落差巨大,蕴藏着丰富的资源优势,我国作为世界第二大能源消耗国,对于电力的需求是巨大的,水力发电具有高效、清洁、能量供给稳定充足的特点,因此,水电工程…

项目中使用Elasticsearch的API相关介绍

项目中使用Elasticsearch的API相关介绍 0、域映射类型 text:会分词,不支持聚合对当前搜索关键词,先自身分词,分成多个词,然后去一个一个的词去利用倒排索引去查询es索引库一般应用在搜索关键字匹配的字段的类型。 商…

ITIL4之IT服务战略

战略和IT战略 战略 的概念最早源于军事领域,意在通过对战争全局的精心规划和指挥,利用有限资源高效达成政治和军事目标。这一思想逐渐扩展到商业、管理乃至信息技术领域,成为指导长远发展和资源配置的核心框架。 IT战略 是将军事战略的智慧…

网络安全的红利还能吃几年?

网络安全最好的红利期是2016年至2021年,后面hvv这种形势主义一搞,基本都开始演戏了,越来越多的问题暴露,接下来还有一阵洗牌期。 中国网络安全市场分类架构 七大基础安全领域: 网络与基础架构安全,端点安全&#x…

(001)apidoc 的安装

安装 1.确定 node 和 npm 的匹配版本 node -vv10.14.1# 切换node 版本 nvm list nvm use 20.12.22.安装 apidoc。 npm install -g apidoc3.生成文档: apidoc -i ../ -o document/ -f ".java$"-i :指定扫描路径。-o:输出目录。…

短视频赛道有哪些:成都鼎茂宏升文化传媒公司

短视频赛道有哪些:探索多元化的内容领域 随着科技的飞速发展和人们生活节奏的加快,短视频已成为现代人生活中不可或缺的一部分。它以其简短、直观、易于分享的特点,迅速占领了各个年龄层和社会群体的心智。然而,短视频的赛道并非…

TensorFlow的学习

0.基础概念 术语表: https://developers.google.cn/machine-learning/glossary?hlzh-cn#logits 1.快速入门 https://tensorflow.google.cn/tutorials/quickstart/beginner?hlzh-cn 2.基于Keras进行图像分类 https://tensorflow.google.cn/tutorials/keras/cl…

Spring注解驱动开发

1、Spring注解驱动开发图解

【Flask 系统教程 6】进阶操作

Flask操作cookie 在 Flask 中操作 Cookie 是相对简单的。Cookie 是一种存储在用户计算机上的小型数据片段,由服务器发送到用户浏览器,然后在每次请求时由浏览器发送回服务器。在 Flask 中,你可以使用 request 对象来读取 cookie,…

tensorflow实现二分类

# 导入所需库和模块 from tensorflow.keras.layers import Dense, Input, Activation # 导入神经网络层和激活函数模块 from tensorflow.keras.models import Sequential # 导入Keras的Sequential模型 import pandas as pd # 导入Pandas库用于数据处理 import numpy as np …