可观察性的三大支柱:统一日志、指标和跟踪

news2024/10/12 21:53:09

作者:来自 Elastic Elastic Observability Team

了解遥测信号,以便做出更好的决策、提高性能并增强客户体验。

多年来,遥测信号已经发生了重大变化 —— 如果你眨眼,你可能会错过它。事实上,关于可观察性的许多常识都需要更新。如果你的可观察性解决方案没有考虑遥测的当前状态,你可能需要升级。随着技术进步、更复杂的系统和新的监控方法的出现,软件系统中的监控和可观察性已经经历了几个阶段的转变。

与往常一样,数据是故事的核心。遥测的发展紧跟计算的发展。随着对数据的需求从机械性能指标扩展到业务绩效指标(或多个指标),遥测信号也在不断变化。计算已经发展到分布式云环境,因此监控实践必须不断发展以满足这些架构和庞大的数字环境的复杂性。

进入:可观察性——不仅可以观察你的环境,还可以理解它的能力。

可观察性的三大支柱是什么?

三个遥测信号是可观察性的基础支柱:指标(metrics)、日志(logs)和跟踪(traces)。但对于现代可观察性而言,这些可能还不够。因此,我们提出了一个新的第四大支柱:分析(profiling)。

指标、跟踪、日志和分析是让你正确进行可观察性的关键 —— 监控性能和生产力。反过来,它会产生有利于盈利能力的可行见解。它们之所以是基础,是有原因的。误解它们,你就会一事无成。让我们深入研究一下。

什么是指标?(或者,发生了什么?)

指标是从各种来源(例如硬件、应用软件和网站)收集的原始数字数据,用于测量已知的已知信息。它们提供有关资源使用情况、性能和用户行为的信息。指标是监控的原始遥测信号,可分为几种类型:

  1. 主机指标:CPU、内存和磁盘使用情况
  2. 应用程序指标:响应时间、错误率和请求率
  3. 网络性能指标:吞吐量、正常运行时间、延迟、可用性等
  4. 服务器池指标:扩展调整指标、正在运行的实例数和实例总数
  5. 外部依赖项指标:服务状态、响应速度、可用性和错误率

这些指标对于设置警报、警告和错误条件的阈值是必不可少的。它们使团队能够全面监控系统和网络性能,并在问题出现时及时发现。因此,指标为监控提供了一种被动响应的方式。

什么是日志?(为什么会发生这种情况?)

日志是来自你的基础设施、应用程序、网络和系统的结构化和非结构化数据,由与特定事件相关的带时间戳的条目组成。不同类型的设备和系统会发出日志:

  • 网络设备
  • 操作系统
  • 应用程序
  • 物联网设备
  • 第三方应用程序

这些设备中的每一个都会生成自己的日志类型,无论是系统日志(包括事件,例如连接尝试、错误和配置更改)还是应用程序日志(记录从软件更改到 CRUD 操作、应用程序身份验证等的任何内容)。由于日志源数量众多(请考虑你的组织运行了上述列出的多少个设备、应用程序和系统)、格式和时间戳不一致,以及(随着请求、使用和流量的增加)庞大的日志数据量,因此存储日志很复杂。

日志已经从主要用于解决问题发展到现在提供许多功能,例如记录用户的操作、优化系统和网络性能以及提供对安全监控调查有用的数据。在调试问题和事件时,IT 从业者会参考日志来查明并解决这些问题。虽然日志本身很灵活,而且充满了信息(其中大部分都是不必要的,会产生很多噪音),但日志数据存储却是孤立的,没有内在的关联性

什么是跟踪?(它发生在哪里?)

跟踪(traces)是通过记录用户在使用应用程序或服务时执行的操作来从用户的角度显示应用程序的第一个信号。分布式跟踪是一种监控请求的方式,因为它们会从前端到后端,然后再回到前端,通过分布式架构。这样,跟踪对于依赖于复杂技术(如 Kubernetes)的分布式云原生应用程序来说是必需的。

通过汇总孤立的数据,跟踪有助于发现瓶颈并调试和监控使用多个应用程序的应用程序,例如磁盘、网络和互斥(互斥锁)。跟踪还为监控采取主动立场奠定了基础。例如,SRE、ITOps 和 DevOps 团队可以分析跟踪数据以发现与任何给定问题相关的最有用的指标或日志,并在将来缓解它。

指标、日志和跟踪各自提供一组不同的数据,可以回答用户对其系统和/或应用程序的问题。然而,如果不关联数据,用户就会面临各种盲点。还有一条信息可以帮助填补这一空白。进入遥测信号演进的下一步:分析(profiling)。

什么是分析?

分析是与代码性能问题相关联的堆栈跟踪集合,表示该堆栈跟踪被遇到的次数。它们比其他信号提供了更深入的见解,能够识别与数据结构、内存分配以及内核和用户空间级别的代码可见性相关的隐蔽问题。收集和分析这些概要的行为称为性能分析(profiling)

性能分析提供了前所未有的广度和深度的可见性,使得能够发现系统中未知的未知问题。因此,它是实现全系统可见性的最后一块拼图,这也是为什么它被称为我们可观察性的第四大支柱。

了解有关分析的更多信息,请访问 Elastic 将其通用分析代理贡献给 OpenTelemetry。

可观测性和遥测信号之间的联系

遥测信号是可观测性的基础。可观测性是通过收集、分析和可视化遥测信号来了解系统的内部状态来实现的。

第 1 阶段:基本监控和可观测性

在云计算出现之前,监控是手动的、本地的和有限的。随着计算机从专业商业领域(是的,50 年前计算机只是小众办公机器)转移到家庭和办公室,监控也发展成为一项重要的 IT 实践,也是迈向可观测性的第一步。

为了满足服务器和网络内数据流通的增长,IT 工程师开发了自动检测的监控工具。随着开源监控工具的出现,基本的网络和桌面监控从本地转移到基于 Web。现在,遥测信号不仅仅是监控操作和本地流量 —— 它们是必要的业务指标,这也是你今天应该如何看待指标、日志和跟踪。人们是否能够顺利地在线购物?连接速度有多快?有没有发生过数据泄露?这些问题的答案与通过客​​户体验和满意度实现的盈利能力直接相关。

由于网站现在接收客户数据,安全监控已成为任何监控解决方案中越来越重要的组成部分。

第二阶段:应用程序监控和可观察性

为了提高可扩展性,开发人员从单片应用程序转向面向服务的架构,再转向微服务和无服务器。

从紧密耦合的组件转向模块化组件,同时提高应用程序灵活性,以便开发人员可以快速扩展,这意味着监控所需的可观察性信号显著增加。不仅需要监控基础设施,还需要监控应用程序本身,这为有效监控所需的遥测信号列表添加了响应时间、吞吐量和错误率。应用程序性能监控 (APM) 已成为一种新的、必要的实践和一套工具,对可观察性至关重要。

第三阶段:云中的监控和可观察性

向云原生技术的过渡增加了监控实践的复杂性,就像应用程序开发范式的演变一样 —— 遥测信号的数量和种类不断增加。

在分布式架构中,新的遥测信号对于确保企业满足客户对快速、无缝和安全的在线体验的期望是必不可少的。在这里,我们遇到了三大要素:指标、日志和跟踪。这些信号捕获操作系统及其应用程序的底层活动,并最终使企业能够实现现代可观察性。

第四阶段:遥测信号在可观察性方面的演变

微服务、无服务器、云原生。在数据驱动的世界中,了解驱动数据的数据至关重要。从实现盈利目标到实现生产力目标,指标、日志和跟踪都是运营链中的环节 —— 它们包含你的企业需要在其 SLAs 上交付的数据。

虽然指标、日志、跟踪以及现在的配置文件都在监控实践中发挥着至关重要的作用,但手动检查这些数据进行调试即使不是不可能,也是无效的。虽然自动化减轻了一些压力,但它确实会产生大量警报噪音。数据类型和来源的多样性也使得管理信息流并将其关联起来以获得可操作的见解变得更加困难。

因此,我们又回到了数据(尽管我们从未放弃数据)的讲述上。由于团队一直处于 “追赶” 状态,监控必须不断发展,以满足大量数据涌入的需求以及与业务绩效密不可分的信息需求。解决方案是什么?统一的遥测数据平台。

现代可观察性

现代可观察性是观察分布式系统的整体行为以了解其内部状态的实践。有效的现代可观察性解决方案将指标、日志和跟踪重新整合到一个统一的遥测平台上,使  IT 从业者能够全面了解他们的技术环境并产生可操作的见解,从而影响系统的弹性和生产力。

统一的遥测数据平台具有数据和信息密集型功能,需要存储尽可能多的数据,以便在需要或期望时提取见解和分析。因此,有效的现代可观察性解决方案鼓励主动和被动调查。关联数据(指标、日志、跟踪和分析)使团队能够解决已知的已知问题并发现未知的未知问题。换句话说,成功的现代可观察性解决方案使团队能够快速回答 “为什么”。

那么,如何实现现代可观察性?考虑使用开放标准和 OpenTelemetry 来组织数据并对其进行分析。 OpenTelemetry 可帮助 SRE 以一致(开放标准)的数据格式生成可观测性数据,以便于分析和存储,同时最大限度地减少供应商数据类型之间的不兼容性。大多数行业分析师认为,OpenTelemetry 将在未来五年内成为可观测性数据的事实标准。在所有遥测信号中使用一致的数据标准进行统一的数据收集意味着你将为可观测性做好未来准备。从更广泛的角度来看,你还需要:

  1. 创建基线:为所有遥测数据建立格式和数据的一致性。
  2. 过滤数据:为最终用户消除供应商不一致的问题。
  3. 整合你的工具:确保你有一个总体的可观测性策略。

遥测数据有多种形式 —— 云原生应用程序会产生各种数据,而无服务器环境或虚拟机会产生另一种数据。更重要的是,这些数据的生成速度很快。因此,实现可观测性意味着统一数据。这确保了相关、准确和快速的洞察。

遥测信号的未来在于可预测性

它是可预测的:随着技术格局的发展,确保系统以最佳方式运行和资源高效利用所需的遥测信号也将随之发展。如今,遥测信号被插入到利用 AI/ML 获得预测性见解和自动响应的复杂系统中。这种趋势将继续存在。

庞大、分布式的环境意味着监控变得困难,也可以理解为:低效。结果是,监控必须扩展其范围,进入可观察性的领域。为了实现可观察性,组织正在将监控工具整合到一个统一的平台上,以减轻部分压力,并获得系统性能的全局视图。基础的性能指标仍然对故障排除和优化至关重要,而迭代的方法有助于提高应用程序的弹性。通过整合孤立的数据,组织能够从被动监控转向主动监控,依赖实时和历史遥测数据。

随着生成式人工智能的兴起,公司比以往任何时候都更感受到保护系统的压力。因此,将安全信号集成到可观察性框架中变得越来越重要,重点是实时威胁检测和响应。随着生成式人工智能技术的发展,我们很可能会看到由先进的自动修复功能驱动的自我修复系统。

但在解锁这些更高层次之前,组织必须通过开放标准构建坚实的数据基础 —— 毕竟,唯一不变的就是变化。谁会愿意被供应商锁定呢?

原文:The 3 pillars of observability: Unified logs, metrics, and traces | Elastic Blog

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

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

相关文章

DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中?

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 原文链接:DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中? 如何将 (.mdf) 和 (.ldf) 的SQL Server 数据库文件导入到当前数据库中? Step 1.登录到 Sql Server 服…

“云计算+高职”:VR虚拟仿真实训室的发展前景

随着科技的飞速进步,云计算与虚拟现实(VR)技术的结合正在深刻改变着教育领域,尤其是在高等职业教育中,这一融合为实训教学带来了革命性的变革。VR虚拟仿真实训室作为这一变革的前沿阵地,正展现出广阔的发展…

PCL点云处理之求法向量

求法向量干什么?将点渲染成面 1、一个点垂直于一个曲线的切线叫法线 2、在点云中取一块区域,用最小二乘将区域中的点云拟合成一个面(贴合在曲面上的一个切面)在相近的区域计算出n个这样的面,用这个面求出法向量&#…

LibreOffice SDK是LibreOffice软件的开发工具包

LibreOffice SDK是LibreOffice软件的开发工具包,它提供了一系列工具和库,使得开发者可以基于LibreOffice进行扩展或开发新的应用程序。以下是对LibreOffice SDK的详细介绍: 一、下载与安装 下载地址: 可以在LibreOffice的官方网站…

警惕!.rmallox勒索病毒:加密你的文件,勒索你的钱包

导言 在数字化时代,网络安全威胁层出不穷,其中勒索病毒已成为企业和个人用户面临的一大挑战。特别是.rmallox勒索病毒,以其复杂的加密算法和广泛的传播方式,给数据安全带来了严重威胁。本文91数据恢复将详细介绍.rmallox勒索病毒…

SCSI-8.UFS_RPMB

SCSI-8.UFS_RPMB RPMB 介绍 **RPMB(Replay Protected Memory Block)**是一种基于硬件的安全存储区域,其结构设计旨在确保数据的机密性、完整性以及防重放攻击的能力。RPMB通常嵌入在eMMC、UFS等存储设备中,由专用硬件电路管理和…

TCN-Transformer时间序列预测(多输入单预测)——基于Pytorch框架

1 数据集介绍 我们使用的数据集包含以下几个重要的属性: date(日期) open(开盘价) high(最高价) low(最低价) close(收盘价) pre_close&…

搜索如何加速你迈向 “AI 优先” 的步伐

作者:来自 Elastic Hayley Sutherland 人工智能与搜索的结合使企业智能达到了新的水平,自然语言处理 (NLP)、基于机器学习 (ML) 的相关性、向量/语义搜索和大型语言模型 (LLMs) 等技术帮助组织最终释放未分析数据的价值。组织需要搜索和知识发现技术来发…

uniapp 整合 OpenLayer3 - 全图、切换底图、导航、定位

一、全图 主要代码: // 获取当前可见视图范围 //console.log(this.map.getView().calculateExtent()); // 设置中心点 //this.map.getView().setCenter(transform([125.33,43.90], EPSG:4326, EPSG:3857)); // 设置层级 //this.map.getView().setZoom(10);// 中心…

【ProtoBuf】ProtoBuf基础与安装

本篇文章介绍 C 使用方向 文章目录 ProtoBuf简介ProtoBuf安装WindowsLinux ProtoBuf简介 ProtoBuf(全称为 Protocol Buffer)是一种序列化结构数据的方法 序列化是将对象转换为可存储的或传输的格式的过程,通常用于数据交换或持久化存储。我们在C/Java中编写的类不…

JAVA-数据结构-排序

1.直接插入排序 1.原理&#xff1a;和玩扑克牌一样&#xff0c;从左边第二个牌开始&#xff0c;选中这个&#xff0c;和前面的所有牌比较&#xff0c;插在合适的位置 public static void insertsort(int[] arr){//直接插入排序for (int i 1; i < arr.length; i) {//此循环…

SSD融合FERPlus模型实现面部情绪识别

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝&#xff0c;拥有2篇国家级人工智能发明专利。 社区特色…

帝国竞争主义算法(ICA)的MATLAB代码复现

目录 1 帝国竞争主义算法优化BP神经网络代码复现 2 帝国竞争主义算法优化支持向量机代码复现 3 帝国竞争主义算法优化长短期记忆神经网络代码复现 1 帝国竞争主义算法优化BP神经网络代码复现 1&#xff09;单输出回归预测&#xff1a;单输出回归预测&#xff1a;帝国主义竞…

API接口并发请求控制实现

文章目录 一、问题概述二、解决思路1. AtomicInteger2. LongAdder3. Semaphore4. 实现区别三、API接口并发控制1. 核心源码2. 源码放送 一、问题概述 某API接口&#xff0c;承载某重要业务&#xff0c;希望控制任意时间点的并发访问数在5以内&#xff0c;该如何实现&#xff1…

数据结构-5.5.二叉树的存储结构

一.二叉树的顺序存储&#xff1a; a.完全二叉树&#xff1a; 1.顺序存储中利用了静态数组&#xff0c;空间大小有限&#xff1a; 2.基本操作&#xff1a; (i是结点编号) 1.上述图片中i所在的层次后面的公式应该把n换成i(图片里写错了)&#xff1b; 2.上述图片判断i是否有左…

ThingsBoard规则链节点:JSON Path节点详解

引言 JSON Path节点简介 用法 含义 应用场景 实际项目运用示例 智能农业监控系统 工业自动化生产线 车联网平台 结论 引言 ThingsBoard是一个功能强大的物联网平台&#xff0c;它提供了设备管理、数据收集与处理以及实时监控等核心功能。其规则引擎允许用户通过创建复…

Java-学生管理系统[初阶]

这次我们来尝试使用Java实现一下"学生管理系统"&#xff0c;顾名思义&#xff0c;就是实现一个能用来管理学生各种数据的系统。在后续学习中我们将对"学生管理系统"进行两种实现&#xff1a; &#x1f4da; 学生管理系统[初阶](不带模拟登录系统) &#…

衡石分析平台系统管理手册-智能运维之系统日志

系统日志​ 点击系统设置->系统日志 在这个页面&#xff0c;从时间&#xff0c;操作者, IP&#xff0c;行为&#xff0c;结果&#xff0c;类别&#xff0c;对象&#xff0c;描述等方面记录了用户行为&#xff0c;系统管理员可以从此页面针对整个系统的用户行为进行审计工作…

【C++】set/map 与 multiset/multimap

✨✨欢迎大家来到Celia的博客✨✨ &#x1f389;&#x1f389;创作不易&#xff0c;请点赞关注&#xff0c;多多支持哦&#x1f389;&#x1f389; 所属专栏&#xff1a;C 个人主页&#xff1a;Celias blog~ 目录 ​编辑 序列式容器和关联式容器 一、set 1.1 set介绍 1.2 …

大健康零售电商的智囊团:知识中台的应用与影响

在数字化浪潮席卷各行各业的今天&#xff0c;大健康零售电商行业也在积极探索转型升级的新路径。知识中台&#xff0c;作为一种集知识管理、数据挖掘与智能化应用于一体的新型技术架构&#xff0c;正逐渐成为推动这一转型的关键力量。本文将深入探讨知识中台在大健康零售电商中…