什么是 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.rhkb.cn/news/464190.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

缓存、注解、分页

一.缓存 作用:应用查询上,内存中的块区域。 缓存查询结果,减少与数据库的交互,从而提高运行效率。 1.SqlSession 缓存 1. 又称为一级缓存,mybatis自动开启。 2. 作用范围:同一…

AI打造超写实虚拟人物:是科技奇迹还是伦理挑战?

内容概要 在这个科技飞速发展的时代,超写实虚拟人物仿佛从科幻小说中走进了我们的日常生活。它们以生动的形象和细腻的动作,不仅在影视、广告和游戏中吸引了无数目光,更让我们对AI技术的未来充满了期待和疑惑。这些数字化身在逼真的外貌下&a…

CODESYS可视化星三角降压启动程序控制电气动画图

#一个用CODESYS可视化做的星三角降压启动程序控制电气动画图# 前言: 关于星三角降压启动控制,作为电气行业入门的必备知识点,涉及到电机本身特性导致的电压,电流(转矩),功率和转速等一系列的关系和变化,以及星型和三角形的绕组方式。本篇我们使用CODESYS结合程序和可视…

物联网赋能的人工智能图像检测系统

一、引言 在数字化时代,物联网(IoT)技术已经成为我们生活中不可或缺的一部分,极大地优化了我们的交通出行和医疗服务。物联网的核心优势在于其卓越的连接能力,它能够构建和连接庞大的资源数据库,为智能化图…

软件架构演变:从单体架构到LLM链式调用

0 前言 软件架构——我们数字世界的蓝图——自20世纪中叶计算机时代诞生以来,已经发生了巨大演变。 20世纪60年代和70年代早期,以大型主机和单体软件为主导。而今天,数字领域已完全不同,运行在由云计算、API连接、AI算法、微服务…

Claude 3.5 Sonnet模型新增了PDF支持功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

【每日一题】LeetCode - 三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 示…

基于 Canal + Elasticsearch 的业务操作日志解决方案

一、问题来源 在日常的业务系统中,操作日志是不可或缺的一部分。它能帮助我们追踪用户的操作行为,记录关键数据的变更,甚至在必要时支持操作回滚。最近,我们接到客户的需求,希望在系统中实现一个业务操作日志管理的功能…

Python并发编程库:Asyncio的异步编程实战

Python并发编程库:Asyncio的异步编程实战 在现代应用中,并发和高效的I/O处理是影响系统性能的关键因素之一。Python的asyncio库是专为异步编程设计的模块,提供了一种更加高效、易读的并发编程方式,适用于处理大量的I/O密集型任务…

【Vue项目1】第一篇

Vue项目1学习第一篇 01. 环境配置介绍和项目搭建02. Router路由配置引入03. ElementPlus引入和按需加载04. layout布局和菜单aside组件创建05. aside样式问题和treeMenu组件拆分06. treeMenu组件递归实现 01. 环境配置介绍和项目搭建 (1)安装node.js …

WPF使用Prism框架首页界面

1. 首先确保已经下载了NuGet包MaterialDesignThemes 2.我们通过包的项目URL可以跳转到Github上查看源码 3.找到首页所在的代码位置 4.将代码复制下来&#xff0c;删除掉自己不需要的东西&#xff0c;最终如下 <materialDesign:DialogHostDialogTheme"Inherit"Ide…

Golang | Leetcode Golang题解之第524题通过删除字母匹配到字典里最长单词

题目&#xff1a; 题解&#xff1a; func findLongestWord(s string, dictionary []string) (ans string) {m : len(s)f : make([][26]int, m1)for i : range f[m] {f[m][i] m}for i : m - 1; i > 0; i-- {f[i] f[i1]f[i][s[i]-a] i}outer:for _, t : range dictionary …

无人机的就业前景怎么样?

无人机的就业前景在当前及未来一段时间内都非常广阔。随着低空经济的蓬勃发展&#xff0c;无人机在农业、公安、测绘、交通、应急救援、影视拍摄等多个领域得到了广泛应用&#xff0c;对无人机操控员和相关专业人才的需求也随之急剧增加。 一、无人机操控员的就业前景 1. 高需…

如何将钉钉新收款单数据高效集成到MySQL

钉钉数据集成到MySQL的技术案例分享 在企业信息化管理中&#xff0c;数据的高效流动和处理至关重要。本文将分享一个具体的系统对接集成案例&#xff1a;如何将钉钉平台上的新收款单&#xff08;收款退款单&#xff09;数据集成到MySQL数据库中&#xff0c;方案名称为“dd-新收…

批量修改图片大小+删除空白页+手写签名

插入图片右键设置大小 设置对象格式 高度&#xff0c;宽度同一 最后一张图片拖到最后 alt键一下吸附好 ctrla全选图片 对齐 纵向分布 删除空白页 前面有文字 CTRL删除键 上一页是表格 CTRLd 勾选隐藏文字 手写签名 手机拍摄签名 发到电脑 文档里插入图…

软设师知识点-计算机网络

计算机网络 在一台安装好TCP/IP协议的计算机上&#xff0c;当网络连接不可用时&#xff0c;为了测试编写好的网络程序&#xff0c;通常使用的目的主机IP地址127.0.0.1&#xff08;本地回送地址&#xff09; *网络设备 物理层的互传设备&#xff1a;中继器(用于扩展局域网网段…

40.第二阶段x86游戏实战2-初识lua

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要…

Docker可视化管理面板DPanel的安装

本文软件由网友 rui 推荐&#xff1b; 什么是 DPanel &#xff1f; DPanel 是一款 Docker 可视化管理面板&#xff0c;旨在简化 Docker 容器、镜像和文件的管理。它提供了一系列功能&#xff0c;使用户能够更轻松地管理和部署 Docker 环境。 软件特点&#xff1a; 可视化管理&…

Nature文章《deep learning》文章翻译

这篇文章是对Nature上《deep learning》文章的翻译。原作者 Yann LeCun, Yoshua Bengio& Geoffrey Hinton。 这篇文章的中心思想是深入探讨深度学习在机器学习中的革命性贡献&#xff0c;重点介绍其在特征学习、监督学习、无监督学习等方面的突破&#xff0c;并阐述其在图…

低代码用户中心:简化开发,提升效率的新时代

随着数字化转型的加速&#xff0c;企业对于快速交付高质量应用的需求日益增长。在这个背景下&#xff0c;低代码开发平台应运而生&#xff0c;成为越来越多企业和开发者的首选工具。今天&#xff0c;我们将聚焦于低代码用户中心&#xff0c;探讨其如何帮助开发者简化流程、提升…