什么是 OpenTelemetry?

OpenTelemetry 定义

OpenTelemetry (OTel) 是一个开源可观测性框架,允许开发团队以单一、统一的格式生成、处理和传输遥测数据(telemetry data)。它由云原生计算基金会 (CNCF) 开发,旨在提供标准化协议和工具,用于收集和路由指标、日志和跟踪到监控平台。

OpenTelemetry 提供与供应商无关的 SDK、API 和工具,因此你的数据可以发送到任何可观测性后端进行分析。

OpenTelemetry 正迅速成为云原生应用程序中占主导地位的可观测性遥测标准。对于希望为未来的数据需求做好准备而不受特定供应商或现有技术限制的组织来说,采用 OpenTelemetry 至关重要。

那么,什么是遥测数据?

遥测数据包括从分布式系统收集的日志指标跟踪。这三类数据被称为 “可观察性支柱”,可帮助开发人员、DevOps 和 IT 团队了解其系统的行为和性能。

  • 日志(logs):日志是系统中在特定时间点发生的离散事件的文本记录。每次执行代码块时都会生成日志条目。它们通常包含显示事件发生时间的时间戳以及上下文负载。日志数据有多种格式,包括纯文本、结构化和非结构化。日志对于故障排除、调试和验证代码特别有用。
  • 指标(metrics):指标是在时间间隔内测量的数值,通常称为时间序列数据。它们包括时间戳、事件名称和事件值等属性。在现代系统中,指标使我们能够监控、分析和响应问题并促进警报。它们可以告诉你有关基础架构或应用程序的信息,例如系统错误率、CPU 利用率或服务请求率。
  • 跟踪(traces):跟踪表示请求通过分布式系统的路径。OpenTelemetry 中的跟踪(traces)由其跨度(spans)定义。一组跨度构成一个跟踪。跟踪可帮助团队了解请求通过各种服务和组件的端到端旅程和行为。分布式跟踪允许你跟踪完整的执行路径并识别导致问题的代码。跟踪提供了对应用程序整体运行状况的可见性,但对其底层基础架构的可见性有限。要全面了解你的环境,你需要可观察性的另外两个支柱:日志和指标。

OpenTelemetry 简史

OpenTracing 和 OpenCensus 是重叠的分布式跟踪项目,它们独立开发,旨在解决缺乏标准化数据格式的问题。OpenTelemetry 的创建是为了合并 OpenTracing 和 OpenCensus 项目的代码库,将每个项目的优势结合到由云原生计算基金会托管的单个项目中。

OpenTracing 提供与供应商无关的 API,用于将数据发送到后端。OpenCensus 是一组特定于语言的库,开发人员用它来检测他们的代码并将数据发送到后端。两者都是开源的,这意味着软件的源代码是协作开发的,任何人都可以使用、修改和分发。

有了 OpenTelemetry,开发人员不再需要在 OpenTracing 和 OpenCensus 之间做出选择。OpenTelemetry 提供了一套统一的库、API、代理和收集器服务,用于收集和传输数据。

OpenTelemetry 如何工作?

OpenTelemetry 提供了一个通用框架,用于收集遥测数据并将其导出到你选择的 Observability 后端。它使用一组标准化、与供应商无关的 API、SDK 和工具来提取、转换和传输数据。

特定于语言的 OpenTelemetry API 协调整个系统的遥测数据收集并检测你的代码。OpenTelemetry SDK 通过帮助数据收集、处理和导出的库实现和支持 API。OpenTelemetry 还提供服务的自动检测并支持自定义检测。你可以使用供应商提供的导出器或 OpenTelemetry 协议 (OpenTelemetry protocol - OTLP) 导出遥测数据。

OpenTelemetry 的核心组件

OpenTelemetry 的核心组件包括:

收集器

OpenTelemetry 收集器是一个与供应商无关的代理,用于接收、处理和导出遥测数据。它支持接收多种格式的遥测数据,以及在导出之前处理和过滤遥测数据。

语言 SDK

OpenTelemetry 语言 SDK 允许你使用 OpenTelemetry API 生成语言遥测数据并将数据导出到后端。

检测库

OpenTelemetry 支持各种组件,这些组件可从受支持语言的流行库和框架中生成相关的遥测数据。

自动检测

OpenTelemetry 的特定语言实现可以提供一种无需更改源代码即可检测应用程序的方法。

导出器

通过将检测与后端配置分离,导出器可以更轻松地更改后端而无需更改检测。它们还允许你将遥测上传到多个后端。

OpenTelemetry 的优势

OpenTelemetry 的优势在于数据标准化和面向未来的灵活性,从而提高了可观察性、提高了效率并降低了成本。

数据收集标准化

OpenTelemetry 为 DevOps 团队提供了一种解决方案,他们希望以一致的方式收集遥测数据并将其导出到 Splunk、New Relic、Dynatrace 和 Datadog 等后端,而无需更改检测。借助开放标准和标准化数据收集,OpenTelemetry 可以提高可见性并简化可观察性。借助更易于设置的可观察性,团队可以更好地了解系统运行状况、识别性能问题并减少在服务中断之前修复根本原因所需的时间。使用 OpenTelemetry 的组织/单位无需浪费时间开发内部解决方案或研究用于多个应用程序的单个工具。通过减少噪音、成本和配置更改的需求,OpenTelemetry 使组织能够专注于利用数据,而不是数据收集方式。并且可以使用最合理的工具或格式向团队提供见解,从而改善协作。

避免供应商锁定

OpenTelemetry 让团队可以自由选择他们想要的任何后端,而不必受限于特定供应商,从而确保他们的投资面向未来。它可以适应系统、后端和流程的变化,因此你永远不会被锁定在单一平台、解决方案或合同中,从而允许组织随着技术需求的发展而扩展和适应。这种独立性和灵活性意味着你可以根据对你的底线和客户最有利的原则来制定业务决策,而不是技术的限制。

借助 OpenTelemetry,你可以获得可扩展性以适应增长、跨平台兼容性以及与现有监控和可观察性工具的轻松集成。

OpenTelemetry 与 Elastic

OpenTelemetry 提供了一种使用统一遥测格式对应用程序进行检测的标准方法,但它不提供后端或分析组件。Elastic Observability 将 OpenTelemetry 数据无缝集成到开放且可扩展的 Elasticsearch 平台中。

Elastic 原生支持 OpenTelemetry 协议,允许我们提取多种语言的日志、指标和跟踪。这使得大规模利用 Elastic 强大的分析和可视化功能变得更加容易。

2023 年 4 月,Elastic 将其 Elastic Common Schema (ECS) 贡献给 OpenTelemetry,其长期目标是将语义约定与 ECS 融合,形成通用遥测数据模式。Elastic 计划在其数据架构上标准化 OpenTelemetry,并将在未来增加对 OpenTelemetry 项目的投资和合作。

Elastic 也是 OpenTelemetry 项目的强大贡献者。为了帮助管理员监控和排除 CI/CD 平台故障,并帮助开发人员提高 CI/CD 管道的速度和可靠性,Elastic Observability 提供了对 CI/CD 流程的可见性。为了提供管道的监控仪表板、警报和根本原因分析,Elastic 与最流行的 CI/CD 平台(包括 Jenkins、Ansible 和 Maven)的社区合作,使用 OpenTelemetry 来检测工具。

Elastic Observability 是一种企业级解决方案,使组织能够将 OpenTelemetry 检测收集的数据直接发送到 Elastic 部署。它让你可以完全了解你的混合云应用程序,并能够存储、分析和可视化所有内容。你还可以使用 Elastic 强大的机器学习功能来减少分析和恢复时间。

探索 OpenTelemetry 解决方案

OpenTelemetry 资源

  • 开始使用 Elastic 的 OpenTelemetry 收集器
  • 在 Elastic 上使用 OpenTelemetry 实现独立性
  • OpenTelemetry 和 Elastic Stack

OpenTelemetry 常见问题解答

OpenTelemetry 是标准吗?

是的。OpenTelemetry 是一个开源项目,也是日志、跟踪和指标的统一标准。

遥测的例子有哪些?

遥测数据的例子包括系统监控和可观察性中使用的日志、指标和跟踪。

OpenTelemetry 和 Jaeger 有什么区别?

OpenTelemetry 可帮助你处理数据并将其导出到各种开源和商业后端,但它不是像 Jaeger 这样的可观察性后端。虽然 OpenTelemetry 提供了一组 API、SDK 和工具来帮助生成和管理遥测数据,但 Jaeger 是一个开源分布式跟踪工具。IT 团队使用 Jaeger 来监控和排除基于微服务架构的应用程序故障。Jaeger 不支持日志和指标。

OpenTelemetry API 和 SDK 有什么区别?

OpenTelemetry API 或应用程序编程接口可协调整个系统的遥测数据收集并检测你的代码。由于 API 是特定于语言的,因此它们必须与你的代码语言相匹配。OpenTelemetry SDK 或软件开发工具包通过库来实现和支持 API,这些库有助于数据收集、处理和导出到可观察性后端。

相关 OpenTelemetry 术语词汇表

  • APIApplication Programming Interface - 应用程序编程接口):定义用于生成和关联遥测数据的数据类型和操作。API 包由用于检测的跨领域公共接口组成。
  • SDKSoftware Development Kit - 软件开发工具包):OpenTelemetry 项目提供的 API 的实现。在应用程序中,SDK 由应用程序所有者安装和管理。
  • 分布式跟踪(Distributed tracing):分布式跟踪允许你跟踪完整的执行路径并识别导致问题的代码。

  • Jaeger:Jaeger 是一个开源分布式跟踪工具,IT 团队使用它来监控和排除基于微服务架构的应用程序故障。
  • 可观察性(Observability):可观察性提供了对在复杂环境中运行的应用程序行为的详细洞察和背景信息,使团队能够使用遥测数据了解其应用程序、服务和基础设施的运行情况,并实时和历史地跟踪和响应问题。
  • 跟踪(Traces):跟踪表示请求通过分布式系统的路径。OpenTelemetry 中的跟踪由其跨度定义。跟踪可帮助团队了解请求通过各种服务和组件的端到端旅程和行为。
  • 指标(Metrics):指标是在时间间隔内测量的数值。它们包括时间戳、事件名称和事件值等属性。日志:日志是系统中在特定时间点发生的离散事件的文本记录。每次执行代码块时都会生成日志条目,通常包含时间戳。

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

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

相关文章

MS01SF1 精准测距UWB模组助力露天采矿中的人车定位安全和作业效率提升

在当今矿业行业,随着全球对资源需求的不断增加和开采难度的逐步提升,传统的作业方式面临着越来越多的挑战。露天矿山开采,因其大规模的作业环境和复杂的地形特点,面临着作业人员的安全风险、设备调度的高难度以及资源利用率低下等…

此版本的IDM不支持该类下载,请尝试将IDM更新至最新版本

此版本的IDM不支持该类下载,请尝试将IDM更新至最新版本 平时可以正常使用,谷歌浏览器内用IDM下载突然提示不能用了,但是复制链接到IDM中新建任务不影响使用,推测可能和谷歌浏览器更新有关,打开谷歌浏览器的扩展工具&a…

从一到无穷大 #40:DB AI 融合

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 引言正文 引言 吐槽下CSDN和知乎的编辑器,没法发合并的表格,…

杭州德沃医美美妆美业精油美容si规范手册连锁品牌策划公司

上海班德设计,专业致力于连锁品牌策划,此次荣幸地为杭州德沃医美美妆美业精油美容SI规范手册提供策划与设计服务。以下是对本次设计项目的五百字说明: 一、项目概述 杭州德沃医美美妆美业精油美容,作为一家致力于为广大消费者提供…

【hacker送书第14期】AI训练师算法与模型训练从入门到精通

全面精通人工智能训练,成为行业领先、更懂AI的人! 前言内容简介总结参与方式 前言 在人工智能(AI)技术日益成熟的今天,AI训练师成为了一个新兴且重要的职业。他们不仅需要掌握AI的核心技术,还要能够将这些…

JSON交互处理

目录 一、什么是JSON 二、JSON和JavaScript对象互转 ​三、Controller返回JSON数据 3.1 使用Jackson 编写Controller 1. 一个对象 2. 多个对象 3. 输出时间对象 4. 优化:抽取为工具类 一、什么是JSON Json是JavaScript对象的字符串表示法,它用…

C/C++ 矩阵的QR分解

#include <iostream> #include <vector> using namespace std;int main() /* 矩阵A的QR分解*/ {// 动态分配内存int m 3; // 行数int n 3; // 列数// 初始化矩阵Adouble A[3][3] {{1, 2, 2},{2, 1, 2},{1, 2, 1}};double R[3][3] { 0 };double Q[3][3] { 0 };…

java:修复aspectj-maven-plugin插件在java9项目中执行报错:cannot be resolved to a module

javadocreader9(https://gitee.com/l0km/javadocreader9)是我最近写的一个基于Java 9 的javadoc读取java代码注释的工具。在基于Java 9(我用的编译器JDK 19)编译时&#xff0c;aspectj-maven-plugin插件在执行报了一堆错误&#xff1a; xxx cannot be resolved to a module,如下…

C++ | Leetcode C++题解之第519题随机翻转矩阵

题目&#xff1a; 题解&#xff1a; class Solution { public:Solution(int m, int n) {this->m m;this->n n;this->total m * n;srand(time(nullptr));}vector<int> flip() {int x rand() % total;vector<int> ans;total--; // 查找位置 x 对应的…

mfc | mfc集成opencv,实现摄像头监控、拍照、视频图像处理(亮度、对比度、色调、饱和度)功能

这里是引用 文章目录 一、开发环境二、MFC项目创建三、集成opencv3.1 opencv安装3.2 添加项目属性3.3 测试OpenCV&#xff08;打开摄像头&#xff09;3.4 OPENCV视频嵌入到弹框中 四、关闭摄像头、拍照功能实现4.1 添加按钮4.2 添加全局静态变量4.3 关闭摄像头功能实现4.4 拍照…

面试题:Vue生命周期

Vue生命周期 一、是什么二、Vue2生命周期三、Vue2生命周期整体流程四、Vue3生命周期 一、是什么 Vue中的实例从创建到销毁的过程就是生命周期&#xff0c;即指从创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程 二、Vue2生命周期 Vue2生命周期总共…

元宇宙VR展会突破传统会展局限,打造会展新生态与商业新机遇

一、身临其境感受会展新境界 元宇宙VR展会利用虚拟现实技术&#xff0c;为参会用户打造了一个高度还原的虚拟会展空间。用户只需使用手机、平板、电脑等设备&#xff0c;即可瞬间穿越至展会现场&#xff0c;仿佛置身于真实的会展环境中。 在这里&#xff0c;用户可以自由浏览…

[每周一更]-(第121期):模拟面试|微服务架构面试思路解析

这一系列针对Go面试题整理,仅供参考 文章目录 00|综合服务治理方案:怎么保证微服务应用的高可用?1. **什么是微服务架构?**2. **怎么保证微服务架构的高可用?**3. **怎么判定服务是否已经健康?**4. **如果服务不健康该怎么办?**5. **怎么判定服务已经从不健康状态恢复过…

【产品经理】工业互联网企业上市之路

树根互联2022年6月2日提交招股书之后&#xff0c;因财务资料超过六个月有效期加三个月延长期&#xff0c;2022年9月30日上市审核中止&#xff1b;2022年12月26日树根互联更新了2022年半年度财务资料&#xff0c;又九个月过去了&#xff0c;其上市进程将面临再一次中止。 处于上…

AI图像相似性搜索对比:VIT, CLIP, DINO-v2, BLIP-2

图像相似性搜索的核心在于一个简单的想法&#xff1a;图像可以表示为高维空间中的向量。当两个图像相似时&#xff0c;它们的向量应该在这个空间中占据相似的位置。我们可以通过测量角度&#xff08;或余弦相似度&#xff09;来确定这些向量的相似程度。如果角度小&#xff0c;…

AI风险及数据合规问题

一、数据来源合规问题 1、请说明发行人采集数据时是否获得了相关信息主体及用户的合法授权&#xff0c;获取用户数据的手段及方式是否合法合规; 2、请说明发行人获取用户数据及标签的过程及方法&#xff0c;是否对用户有明示提示&#xff0c;用户授权在法律上是否完备&#xff…

yoloV5实战笔记—环境搭建(一)

一、安装miniconda 从清华源进行下载 https://mirrors.tuna.tsinghua.edu.cn/ 具体命令参考&#xff0c;注意修改pip国内镜像地址 https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 创建环境&#xff0c;指定python版本 conda create -n demo python3.9激活环境 conda acti…

Docker:存储原理

Docker&#xff1a;存储原理 镜像联合文件系统overlay镜像存储结构容器存储结构 存储卷绑定挂载存储卷结构 镜像 联合文件系统 联合文件系统Union File System是一种分层&#xff0c;轻量且高效的文件系统。其将整个文件系统分为多个层&#xff0c;层与层之间进行覆盖&#x…

【源码+文档】基于SpringBoot的养老院管理系统

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

LVGL UI设计神器助你高效开发嵌入式UI应用——v0.16.0发布

文章目录 Preface一、What is Anyui&#xff1f;二、Features of v0.16.0 releaseSum up Preface As coming of Internet of Things, the “screen reading” era predicted by Kevin Kelly has also arrived. Besides products like mobile phones and tablets which are PC-…