什么是遥测数据?

遥测数据定义

遥测数据提供了关于系统性能的重要洞察,对主动解决问题和做出明智决策至关重要。要实现这一点,不能只依赖原始数据 —— 你需要实时的洞察,而这正是遥测数据提供的。

遥测是从远程来源(如服务器、应用程序和监控设备)收集、传输和分析数据的过程。这个过程可以分为以下几个步骤:

  1. 数据收集:传感器、软件和其他监控工具收集数据,例如用户行为、性能指标和环境条件。
  2. 数据传输:将收集到的数据发送到中央系统。
  3. 分析与监控:一旦接收到数据,就会对其进行处理、分析并展示,以提供对被监控系统状态、性能和行为的洞察。

为了实现这一点,必须拥有正确的遥测数据。这些原始数据包括系统、应用或设备生成的日志、指标、事件和其他追踪信息。如果没有这些原始数据,分析和监控的效果就不会那么有用或准确。

遥测数据的类型

日志( Logs )

日志是记录系统或应用中发生的离散事件的文本记录列表。每条记录都有时间戳,并提供调试和分析所需的详细信息。它们对于调试和故障排查、合规报告、了解用户行为和各种审计非常重要。

日志有多种类型,包括应用日志、系统日志、网络日志和访问日志。所有这些都是有价值的遥测数据,可以精确展示发生了什么、何时发生的,以及谁(或什么)参与了事件。

追踪( Traces )

追踪本质上是一条请求在系统中移动时留下的 “面包屑路径”。它记录了请求经过的路径,展示了跨多个服务的流程和精确时间。这包括分布式应用追踪和微服务架构中的端到端请求追踪。

作为遥测数据,这些追踪提供了有价值的信息,帮助进行性能优化、了解系统依赖、根本原因分析和识别瓶颈。

指标( Metrics )

指标是在系统、软件或应用运行时捕获的数值测量。这些指标可以用来对性能进行量化分析,包括 CPU 使用率、请求率、错误率、响应时间和内存使用等。

在遥测中,这些指标在生成关于系统健康状况、性能和行为的可见性方面发挥着重要作用。这种可见性可为多种工具提供洞察,如性能监控、异常检测、容量规划和 SLA 合规监控等。

事件( Events )

事件是系统中值得注意的发生或状态变化的记录。它们捕捉对系统或业务有影响的重要时刻或变化,与日志不同,事件通常包含额外的上下文信息。这些事件包括用户行为(如登录和购买)、系统状态变化以及特定业务事件。

由于包含额外上下文数据,事件对于商业智能、系统健康监控、合规审计和自动化触发至关重要。它也非常适合用户行为分析,因为你可以精确看到他们做了什么、什么时候做的。

如何设置和使用遥测数据

第 1 步:定义你的目标

设置遥测数据的第一步是明确你想要实现的目标。你需要确定收集遥测数据的具体目的,例如提升系统性能、改善用户体验,或识别安全威胁。一个好的方法是将遥测目标与你现有的业务目标对齐。

接着你需要确定要追踪的关键性能指标( key performance indicators - KPIs )和指标数据。例如,如果你的目标是提升系统性能,那就可以追踪响应时间、错误率和资源使用率等内容。在设定遥测目标时,另一个重要考虑是隐私和合规性。你应该审查相关法规(如 CCPA、 GDPR 等),并制定符合这些法规且尊重用户隐私的数据收集指南。

第 2 步:配置你的工具

下一步是选择并配置合适的工具来实现你的目标。你应选择既能帮助实现目标,又能轻松集成到你现有技术栈中的遥测收集工具。这可能包括应用性能监控工具(application performance monitoring tools - APM )、日志聚合器或自定义 SDK。

你需要实施收集机制,将日志框架或监控代理集成到应用中, OpenTelemetry 是一个不错的与厂商无关的选项。这通常涉及添加代码检测点,或配置现有系统来接收所需数据。

在配置收集参数时,你需要设置采样率、要捕捉的事件类型以及日志的详细程度。然后配置数据过滤以排除敏感信息,并进行匿名化处理以符合隐私法规。

第 3 步:发送你的数据

接下来你需要实际发送遥测数据。首先,你要实现用于传输数据的协议,例如用于 Web 应用的 HTTPS(或 HTTP)、用于 IoT 设备的 MQTT,或者像 OpenTelemetry( OTLP )这样的专用协议。还包括通过加密和认证机制确保传输安全。

为应对网络中断并确保可靠性,你应该设置本地数据缓冲和重试逻辑。你还需要平衡数据传输的体积和频率,以尽量减少对应用性能和网络带宽的影响。

第 4 步:存储你的数据

然后你需要选择合适的存储方案来接收遥测数据。你可以为不同的数据类型配置不同的存储,或者使用像 Elasticsearch 及其跨集群搜索和复制功能来构建一个数据网格(data mesh),更加简化。

接着需要实施保留策略,定义不同类型数据的存储时长。在决定这一点时,要同时考虑数据的分析需求和合规要求。遥测数据的存储方案通常需要在分析性能和存储成本之间做出权衡。

另一个需要考虑的是分区和索引 —— 你需要优化存储以提升查询性能,比如使用基于时间的分区和索引。还应有备份和灾难恢复机制,以防数据丢失并确保对遥测数据的持续访问。

第 5 步:分析你的遥测数据

最后,你需要能够分析和可视化遥测数据。这包括构建仪表板和可视化视图来展示关键指标和趋势。你还需要实现告警系统,在指标超出预设阈值或检测到异常时发出通知。

为了最大化利用遥测数据,可以设置高级分析,如统计分析和机器学习(machine learning),用于识别模式和预测未来趋势。这在结合不同数据类型的洞察时效果最佳,能全面了解系统活动和用户行为。

遥测数据的优势

以下是通过构建有效遥测流程所能带来的几个关键优势:

  • 实时可见性:通过跟踪和分析关键指标与日志,你可以即时洞察哪些地方运行良好,哪些地方需要改进。

  • 主动发现与解决问题:遥测数据可以识别异常和模式,从而在问题升级前就发现潜在问题。

  • 提高运维效率:通过实施自动化监控和数据采集,你可以简化工作流程,提高生产效率。

  • 更快的问题排查:详细的遥测数据能帮助你快速定位问题根源,从而减少平均修复时间( MTTR )。

  • 更优的决策制定:拥有所需的数据支持,你可以做出基于数据的决策,并在资源分配、产品开发和用户体验优化方面做出明智选择。

为了充分发挥遥测数据的全部价值,关键在于使用统一的数据平台来整合你的遥测数据。这样你就能将来自各种来源的数据集中处理,减少 “来回切换工具” 的低效操作。

这种数据整合不仅带来上述好处,还能提升可扩展性和成本效率,同时确保整个数据处理过程的一致性。这也正是像 OpenTelemetry 语义约定( Otel SemConv )这样的开放标准如此重要的原因,它们确保你在不同工具和平台之间具备良好的互操作性。

遥测数据的挑战

与任何技术一样,遥测数据的使用也有其优势与挑战。应对这些挑战的关键在于理解它们并制定应对计划:

  • 数据安全与隐私:用户和客户数据的安全与隐私至关重要。不只是因为这是良好实践,更因为它可能带来重大的声誉与合规风险。为应对这一点,你需要实施强有力的安全措施,比如加密、访问控制以及详尽的日志记录。同时也需要保护敏感信息,并严格控制数据访问。

  • 遗留软件集成:你需要通过灵活的数据摄取方式来支持各种数据格式和来源,从而将现代与传统系统中的遥测数据统一集成到一个平台中。

  • 高性价比的数据存储:使用分层存储选项和信息生命周期管理( ILM )策略,你可以在保证数据可访问性的同时优化存储成本。 热‑温‑冷 架构(Hot‑warm‑cold architecture)也有助于在性能与成本之间取得平衡。

  • 支持开放标准:为了确保互操作性,应尽早使用像 OpenTelemetry 这样的开放标准。这样可以让你的遥测架构具备未来适应性,便于与其他工具和平台集成。

Elastic 中的 OpenTelemetry

前文提到 OpenTelemetry —— 这是一个开源的可观测性框架,用于统一数据采集并标准化遥测数据格式。它提供一种厂商无关的遥测方式,避免了绑定特定厂商的问题,并具备良好的可扩展性,适合处理大规模数据。

这与 Elastic 坚持开放标准的承诺高度契合,这也是我们将自家的开源规范 Elastic Common Schema( ECS )贡献给 OpenTelemetry 的原因之一。

我们还将 OTel 格式的数据无缝集成到 Elasticsearch 的遥测功能中。这意味着你可以使用 Elasticsearch 强大的分析与搜索功能处理 OTel 数据,同时为你的可观测性平台做好未来准备。

Elastic 与 OpenTelemetry 的结合帮助你应对多个关键挑战:

  • 整合异构数据源

  • 确保数据安全与隐私

  • 管理遗留软件的集成

  • 优化存储成本

  • 处理多种数据类型

  • 支持开放标准,实现互操作性

遥测数据资源

  • OpenTelemetry 指南

  • APM 与 OpenTelemetry:从日志中解锁洞察的关键

  • OpenTelemetry 集成

  • 构建可观测性解决方案的数据基础模块

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

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

相关文章

【JavaAPI搜索引擎】项目测试报告

JavaAPI搜索引擎测试报告 项目背景与项目介绍项目功能自动化测试单元测试测试ansj分词器测试能否获取到正确的URL测试能否正确解析文件中的正文 测试计划界面测试测试1 页面布局是否合理美观,元素是否正确显示测试2 测试是否可以正常显示出搜索结果测试3 点击搜索结…

如何选择合适的IP轮换周期

选择合适的IP轮换周期需综合业务目标、目标平台风控规则、IP类型与质量等多维度因素,以下是系统化决策框架及实操建议: 🔄 一、核心决策要素 业务场景类型 高频操作型(如数据采集、广告点击): 轮换周期短&a…

GO Goroutine 与并发模型面试题及参考答案

目录 什么是 Goroutine,它与线程有何区别? 如何创建一个 Goroutine?有哪些方式? Goroutine 执行函数时传递参数应注意什么问题? 使用 Goroutine 时如何确保主线程不会提前退出? 多个 Goroutine 写共享变量时会出现什么问题?如何解决? 如何用 sync.WaitGroup 管理 …

Leetcode-11 2 的幂

Leetcode-11 2 的幂(简单) 题目描述思路分析通过代码(python) 题目描述 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数…

【Java】【力扣】121.买卖股票的最佳时机

思路 所以后续的每次都是在&#xff1a;1-判断是否更新最低点 2-如果不需要更新最低点 则计算差值 代码 class Solution { public int maxProfit(int[] prices) { int minprices[0]; int max0; for (int i 1; i < prices.length; i) { //假设0就是最低点 // 判…

微服务架构下大型商城系统的事务一致性攻坚:Saga、TCC与本地消息表的实战解析

当用户在商城完成支付却看到"订单异常"提示时&#xff0c;背后往往是分布式事务一致性缺失导致的业务裂缝。在微服务拆分的商城系统中&#xff0c;如何保障跨服务的交易原子性&#xff0c;成为架构设计的生死线。 一、商城分布式事务的典型场景与痛点 在某家电品牌商…

深入理解 Vue.observable:轻量级响应式状态管理利器

目录 引言 一、什么是 Vue.observable&#xff1f; 二、为什么需要 Vue.observable&#xff1f;解决什么问题&#xff1f; 三、核心原理&#xff1a;响应式系统如何工作 四、如何使用 Vue.observable 功能说明 技术要点 五、关键注意事项与最佳实践 六、实际应用案例 …

JS设计模式(5): 发布订阅模式

解锁JavaScript发布订阅模式&#xff1a;让代码沟通更优雅 在JavaScript的世界里&#xff0c;我们常常会遇到这样的场景&#xff1a;多个模块之间需要相互通信&#xff0c;但是又不想让它们产生过于紧密的耦合。这时候&#xff0c;发布订阅模式就像一位优雅的信使&#xff0c;…

【电路物联网】SDN架构与工作原理介绍

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…

vscode 保存 js 时会自动格式化,取消设置也不好使

vscode 里的设置搜索 Editor: Format On Save 取消勾选 卸载 Prettier - Code formatter 这个插件后好使了&#xff0c;本来以为是插件的问题&#xff0c;后来发现是工作区设置的问题。 因为我是用 GitHub 下载的工程打开后&#xff0c; vscode 认为是工作区了, 因为 .vscode…

xcode中project.pbxproj点开为空白问题

由于需要修改signing里面的配置&#xff0c;点击了project.pbxproj。但是发现一片空白&#xff0c;如图 以为是配置文件损坏&#xff0c;邮件show in Finder看了一通后没看出什么所以然。并且发现entitlement文件、list文件全都是点开为白&#xff0c;并且没有任何保存 最后发…

JUC并发编程(四)常见模式

目录 一 同步与协调模式 1 保护性暂停模式 2 顺序控制模式 3 生产者消费者模式 4 Balking模式&#xff08;犹豫模式&#xff09; 二 线程管理/生命周期模式 1 两阶段终止模式 一 同步与协调模式 1 保护性暂停模式 一个线程需要等待另一个线程提供特定条件&#xff08;通常是…

Vue 数据代理机制对属性名的要求

Vue 数据代理机制对属性名的要求 在 Vue 的数据代理机制中,属性名需遵循以下关键规则: 1. 禁止以 _ 或 $ 开头 ⚠️ Vue 会跳过代理以 _ 或 $ 开头的属性原因:这些前缀被 Vue 保留用于内部属性(如 _data, _uid, $refs, $el 等)示例:data() {return {count: 1, // ✅…

pdf.js在iOS移动端分页加载优化方案(ios移动端反复刷新加载问题)

背景与问题 在iOS移动端加载大型PDF文件时&#xff0c;由于设备内存限制&#xff0c;经常遇到以下问题&#xff1a; 内存不足导致页面崩溃大文件加载缓慢页面反复重新加载 ##解决方案 采用PDF.js的分页加载策略&#xff0c;实现按需加载当前可视页面及相邻页面&#xff0c;…

【C++】来学习使用set和map吧

各位大佬好&#xff0c;我是落羽&#xff01;一个坚持不断学习进步的大学生。 如果您觉得我的文章有所帮助&#xff0c;欢迎多多互三分享交流&#xff0c;一起学习进步&#xff01; 也欢迎关注我的blog主页: 落羽的落羽 文章目录 一、set和map是什么二、set系列1. set2. mult…

h5st逆向分析

h5st最新5.1版本逆向分析 申明定位h5st生成的位置动态插桩,事半功倍日志分析,十分钟还原算法逻辑申明 本文仅用来记录学习过程以免日后忘了,如有侵权请联系删除。 定位h5st生成的位置 通过关键字“sign”搜索,可以定位到window.PSign.sign(f)这个位置,f参数的值为{ &qu…

湖北理元理律师事务所企业债务优化路径:司法重整中的再生之道

一、企业债务危机的核心矛盾&#xff1a;生存与清偿的博弈 通过分析湖北理元理律师事务所经办的17件企业债务案件&#xff0c;发现共性难题&#xff1a; 债权人要求立即清偿 → 企业需持续经营造血 → 司法程序存在时间差 解决方案&#xff1a;构建“三重防火墙”机制 经…

链家Android面试题及参考答案

目录 请详细解释类加载的过程,包括每一步的具体实现。并说明Android中的dex分包技术及其在热更新中的应用 比较JVM和DVM的区别。在JVM中一个程序崩溃是否可能导致系统崩溃?DVM中呢? 请解释网络IP协议、TCP、UDP、HTTP、HTTPS、Socket的概念,并说明它们之间的区别 请深入…

LeetCode-多语言实现冒泡排序以及算法优化改进

目录 一、冒泡排序算法 二、应用场景/前提条件 &#x1f308; 优点 &#x1f4e2; 缺点 三、经典算法实现并优化改进 方法一&#xff1a;记录最后一次交换位置&#xff0c;下一轮只遍历到该位置 方法二&#xff1a;添加标志位跟踪是否发生交换&#xff0c;无交换则提前终…

JAVA毕业设计227—基于SpringBoot+hadoop+spark+Vue的大数据房屋维修系统(源代码+数据库)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于SpringBoothadoopsparkVue的大数据房屋维修系统(源代码数据库)227 一、系统介绍 本项目前后端分离&#xff0c;分为业主、维修人员、管理员三种角色 1、业主&#xff1a; 登…