OpenTelemetry(也称为 OTel)是工具、API 和 SDK 的集合,用于检测、生成、收集和导出遥测数据(指标、日志和跟踪)以进行分析。 云原生计算基金会 (CNCF) 管理这个开源可观察性平台,该平台旨在提供所有必要的组件,以便以供应商中立的方式观察您的服务。
OpenTelemetry 使开发人员能够跨各行各业构建标准化且可互操作的遥测数据收集管道。 它使开发人员可以轻松地使用遥测数据来检测他们的软件,无论他们是在小型内部项目还是大型分布式系统上工作。
可观察性正在成为许多领域软件开发的主要焦点,尤其是在物联网 (IoT) 行业。 物联网部署是超分布式的,连接设备多达数百万台。
由于物联网设备的计算能力有限,因此可能无法使用传统工具对其进行监控。 这就是 OpenTelemetry 的用武之地,它提供了从 IoT 设备收集遥测数据的灵活方法,甚至可以在最复杂的 IoT 环境中实现可观测性。
我们将介绍 OpenTelemetry 的基础知识,然后解释它如何帮助监控和管理 IoT 通信,特别是使用 MQTT协议.
OpenTelemetry的3个核心概念
#1:指标
OpenTelemetry 中的指标是在时间间隔内测量的数据的数字表示。 这些可以是对系统属性(如 CPU 使用率和内存消耗)的测量,也可以是自定义业务指标(如购物车中的商品数量)。
指标可帮助开发人员监控应用程序的运行状况,并就资源分配、性能调整以及应用程序开发和维护的许多其他方面做出明智的决策。
#2:日志
在 OpenTelemetry 中,日志是离散事件的带时间戳的记录。 这些事件可以是代码中的错误或异常、系统事件或用户操作等任何事件。
日志对于理解应用程序的行为和调试目的至关重要。 它们提供应用程序内发生的事件的精细视图,从而更轻松地识别和修复问题。
#3:追踪
OpenTelemetry 的核心概念之一是跟踪。 OpenTelemetry 中的跟踪被定义为系统中一系列因果相关事件的表示。
这些事件可以是请求的开始和结束、数据库查询或对外部服务的调用等任何事件。 跟踪可以帮助开发人员了解导致特定结果的事件顺序,从而更轻松地调试和优化他们的应用程序。
OpenTelemetry 的组件
让我们分解一下 OpenTelemetry 的组件。 下图说明了它们如何协同工作。
打开遥测收集器
OpenTelemetry Collector 充当应用程序和处理数据的后端之间与供应商无关的桥梁。 收集器可以摄取、处理和导出遥测数据。
它充当中介,允许您减少应用程序需要与遥测后端建立的联系点的数量。 它还标准化您的数据,以便不同的遥测后端可以读取它。
语言 SDK
OpenTelemetry 提供多种语言的语言 SDK,例如 Java、Python 和 Go 等。 开发人员需要使用 SDK 来检测其代码以捕获遥测数据。
它们提供用于手动检测的 API,还包括自动检测库。 SDK 还处理批处理和重试逻辑,使开发人员更轻松地确保可靠的数据交付。
代理和仪器
代理是安装到服务中以生成遥测数据的组件。 它们会自动检测您的代码,以最少的代码更改添加跟踪和指标数据收集。
检测是插入到应用程序中以收集数据的代码。 它可以是手动的,开发人员将其添加到他们的代码中,也可以是自动的,由代理提供。
出口商
导出器是将遥测数据从您的服务传输到后端的组件。 它们将数据转换为后端可以理解的格式。 OpenTelemetry 为 Jaeger 和 Prometheus 等常见后端提供了多个导出器,但您也可以编写自定义导出器。
OpenTelemetry 对 IoT 部署的优势
OpenTelemetry 越来越多地用于支持物联网环境中的可观察性。 这个多功能平台可以通过以下几种方式使管理大规模物联网部署的组织受益:
- 增强的可观察性: 通过将物联网 (IoT) 系统与 OpenTelemetry 集成,您可以从各种来源(包括连接的设备)收集数据,以获得系统功能的整体视图。 这种全面的观点对于识别瓶颈、潜在故障和优化领域非常有价值。
- 改进的故障排除: OpenTelemetry 还通过提供对系统操作的详细了解来帮助排除故障。 当问题出现时,可能很难确定根本原因,尤其是在分布式系统中。 然而,OpenTelemetry 的跟踪和日志数据可以帮助查明故障点并维持系统正常运行时间。
- 性能监控: 性能监控是使用 OpenTelemetry 的另一个显着优势。 它允许开发人员实时跟踪应用程序的性能,确保它们满足所需的性能标准。 如果性能下降,开发人员可以使用 OpenTelemetry 提供的详细指标来确定原因并实施必要的优化。
- 安全见解: 当 OpenTelemetry 用于跟踪登录尝试等安全相关事件时,它可以提供有价值的安全见解。 获得可见性 安全指标 分析它们可以帮助识别安全漏洞或漏洞、做出响应并保护物联网系统。
- 促进分布式追踪: OpenTelemetry 促进分布式跟踪,这是微服务架构中的一个重要功能。 分布式跟踪可帮助开发人员了解请求在各种微服务中传输的过程。 这对于诊断物联网环境中的问题和优化服务交互很有帮助。
将 OpenTelemetry 与 MQTT 结合使用
MQTT(消息队列遥测传输) 是一种流行的轻量级消息传递协议,广泛用于物联网部署。 MQTT 的优势在于简单、高效,非常适合网络带宽较为紧张的场景。
与 OpenTelemetry 结合使用时,MQTT 获得了全面的可观察性框架的强大功能。 以下是 OpenTelemetry 如何补充 MQTT:
- 数据丰富: OpenTelemetry 可以使用附加元数据丰富通过 MQTT 传输的数据包。 这可能包括设备标识符、位置标签等信息。 这些丰富的数据提供了更加情境化的运营视图,从而更容易得出有意义的见解。
- 集中数据收集: OpenTelemetry 可以从多个 MQTT 代理收集数据并将其聚合到集中式数据存储中。 这对于涉及多个代理向众多设备传播消息的大规模物联网部署特别有用。
- 实时监控: 使用 OpenTelemetry,组织可以实时监控 MQTT 消息。 此功能有助于识别消息传递中的任何延迟或瓶颈,这对于延迟可能产生重大影响的任务关键型物联网应用程序至关重要。
- 数据导出灵活性: 借助 OpenTelemetry 的各种导出器,您可以将遥测数据推送到各种数据后端以进行进一步分析。 例如,您可以将数据从 MQTT 导出到基于云的解决方案(例如 Azure Monitor)或本地设置(例如 Grafana)。
- 分析和见解: 通过将 MQTT 的轻量级数据传输功能与 OpenTelemetry 的强大分析功能相结合,组织可以深入研究其数据。 这种配对使得优化设备性能、进行预测性维护,甚至根据用户行为识别市场趋势成为可能。
MQTT 与 OpenTelemetry:要监控的关键指标
OpenTelemetry 可以提供有关 MQTT 环境性能的宝贵见解。 让我们看看要监控的关键指标。
客户指标
客户端指标至关重要,因为它们可以深入了解每个 MQTT 客户端的执行情况。 其中包括发布的消息数、接收的消息数和活动连接数等指标。 监控这些指标可以帮助您识别任何表现不佳或导致系统出现问题的客户端。
消息指标
消息指标使您能够概览系统中的整体消息流。 其中包括发送和接收的消息总数以及消息大小等指标。
通过监控这些指标,您可以深入了解系统上的负载并识别任何潜在的瓶颈或问题。
经纪商指标
代理指标可让您深入了解 MQTT 代理的性能。 其中包括连接的客户端数量、订阅数量以及代理的内存使用情况等指标。
监控这些指标可以帮助您确保您的经纪商表现最佳,并及早发现任何潜在问题。
延迟指标
延迟指标对于了解系统的性能至关重要。 其中包括端到端延迟和单个操作的延迟等指标。 高延迟会影响系统的性能和可靠性,因此监控这些指标可以帮助您及早发现和解决任何问题。
错误和故障指标
错误和故障指标对于了解系统的可靠性至关重要。 其中包括丢弃消息数、断开连接数以及客户端或代理抛出的错误数等指标。
监控这些指标可以帮助您及早发现并修复问题,从而减少对系统性能和可靠性的影响。
- :是
- :不是
- :在哪里
- 1
- a
- 关于
- 横过
- 要积极。
- 行为
- 加
- 添加
- 额外
- 地址
- 影响
- 中介代理
- 骨料
- 艾滋病
- 目标
- 所有类型
- 分配
- 允许
- 允许
- 还
- 其中
- an
- 分析
- 分析
- 分析
- 和
- 另一个
- 任何
- 什么
- APIs
- 应用领域
- 应用程序开发
- 应用领域
- 架构
- 保健
- 地区
- 出现
- 排列
- AS
- 方面
- At
- 尝试
- 自动表
- 自动
- Azure
- 后端
- 带宽
- 基于
- 基础
- 配料
- BE
- 成为
- 行为
- 作为
- 如下。
- 得益
- 好处
- 之间
- 瓶颈
- 违规
- 午休
- 桥
- 经纪人
- 经纪人
- 建立
- 商业
- 但是
- by
- 呼叫
- CAN
- 能力
- 捕获
- 携带
- 原因
- 造成
- 集中
- 更改
- 客户
- 云端技术
- 云本土
- 码
- 收集
- 收藏
- 采集
- 集电极
- 结合
- 购买的订单均
- 相当常见
- 通信
- 复杂
- 组件
- 全面
- 计算
- 概念
- 已联繫
- 连接的设备
- 连接
- 消费
- CONTACT
- 核心
- 可以
- 再加
- 中央处理器
- 关键
- 习俗
- data
- 数据库
- 决定
- 深
- 定义
- 延误
- 交货
- 部署
- 期望
- 详细
- 检测
- 开发
- 研发支持
- 设备
- 设备
- 诊断
- 不同
- 难
- 分布
- 分布式系统
- 向下
- 画
- 下降
- 滴
- 早
- 更容易
- 易
- 效率
- enable
- 使
- 结束
- 端至端
- 丰富
- 丰富
- 确保
- 保证
- 环境中
- 错误
- 故障
- 特别
- 必要
- 甚至
- 活动
- 事件
- 例子
- 例外
- 说明
- 出口
- 外部
- 功能有助于
- 失败
- 失败
- 专栏
- 字段
- 固定
- 高度灵活
- 柔软
- 流
- 专注焦点
- 针对
- 格式
- 基金会
- 骨架
- 止
- 功能
- 进一步
- Gain增益
- 获得
- 收益
- 收集
- 生成
- 发电
- 给
- Go
- 处理
- 有
- 健康管理
- 帮助
- 帮助
- 相关信息
- 高
- 整体
- 创新中心
- 但是
- HTTPS
- 身份标识
- 鉴定
- 确定
- if
- 说明
- 影响力故事
- 实施
- in
- 包括
- 包含
- 日益
- 个人
- 行业
- 行业中的应用:
- 信息
- 通知
- 可行的洞见
- 安装
- 仪器
- 仪器的
- 整合
- 相互作用
- 中介
- 网络
- 物联网
- 互操作性
- 成
- 介绍
- 无价
- 涉及
- 物联网
- 物联网设备
- 问题
- IT
- 项目
- 它的
- 爪哇岛
- 旅程
- JPG
- 键
- 已知
- 语言
- 语言
- 大规模
- 潜伏
- 导致
- 库
- 谎言
- 轻巧
- 喜欢
- 有限
- 加载
- 圖書分館的位置
- 日志
- 逻辑
- 登录
- 看
- 保持
- 保养
- 主要
- 使
- 制作
- 制作
- 管理
- 管理
- 管理的
- 方式
- 手册
- 许多
- 市场
- 市场趋势
- 最大宽度
- 可能..
- 有意义的
- 测量
- 测量
- 满足
- 内存
- 的话
- 条未读消息
- 消息
- 元数据
- 公
- 指标
- 微服务
- 百万
- 最小
- 显示器
- 监控
- 更多
- 最先进的
- 多
- 本地人
- 必要
- 需求
- 网络
- 数
- 众多
- 观察
- 发生
- of
- on
- 开放源码
- 操作
- 运营
- 优化
- 优化
- 追求项目的积极优化
- or
- 组织
- 其他名称
- 其它
- 输出
- 成果
- 超过
- 最划算
- 简介
- 包
- 配对
- 特别
- 尤其
- 演出
- 性能
- 执行
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 点
- 点
- 热门
- 可能
- 潜力
- 功率
- 预测
- 高级版
- 过程
- 项目
- 协议
- 提供
- 提供
- 提供
- 优
- 出版
- 目的
- 推
- 蟒蛇
- 阅读
- 实时的
- 收到
- 记录
- 减少
- 减少
- 可靠性
- 可靠
- 反响
- 表示
- 请求
- 资源
- 回应
- 健壮
- 根
- 情景
- sdk
- 安全
- 保安
- 安全漏洞
- 发送
- 序列
- 系列
- 服务
- 特色服务
- 格局
- 几个
- 购物
- 购物车
- 显著
- 简单
- 尺寸
- 小
- So
- 软件
- 软件开发
- 解决方案
- 来源
- 标准化
- 标准
- 开始
- 商店
- 实力
- 订阅
- 这样
- SUPPORT
- 系统
- 产品
- 这
- 基础知识
- 其
- 他们
- 然后
- 从而
- 博曼
- 他们
- 事
- Free Introduction
- 通过
- 次
- 至
- 一起
- 工具
- 合计
- 追踪
- 追踪
- 跟踪时
- 传统
- 改造
- 发送
- 运输
- 旅行
- 趋势
- 理解
- 理解
- 正常运行时间
- 用法
- 使用
- 用过的
- 用户
- 运用
- 有价值
- 各种
- 各个
- 多才多艺
- 通过
- 查看
- 能见度
- 重要
- 漏洞
- 方法
- ,尤其是
- 是否
- 这
- 宽
- 广泛
- 中
- 工作
- 一起工作
- 加工
- 写
- 您
- 您一站式解决方案
- 和风网