Splunk深度专题:疫情下的可观测

2024-03-13 00:10

本文主要是介绍Splunk深度专题:疫情下的可观测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#写在前面#

近日疫情反扑,沪深两大一线城市领衔进入严格管控状态,无数企业被迫全员居家办公,时空交错的运维“新常态”下,IT系统的可观测性精细化深度需求再度成为DevOps领域的“热度话题”。优维专家组结合多年实践经验和国际观点,为大家带来国际最前沿的可观测性深度解析,希望大家能够从价值、技术等多个层面获得一些认知和思考。


可观测性,是通过分析系统输出的外部数据来衡量系统运行状态的能力。

如果仅使用外部数据就可以评估运行状态,则系统被认为是“可观测的”。虽然该术语最近流行起来,但该术语其实起源于几十年前的控制理论(自我调节系统的描述和解释),最近它是越来越多地被应用在如何提高分布式 IT 系统的性能方面。在分布式IT系统中,可观测性使用三种类型的监控数据——指标、日志和跟踪——来实现系统的可观测能力,借助可观测能力团队能够找到众多问题的根本原因并优化系统性能。

最近,众多企业,例如AWS,以微服务,无服务或容器技术的形态实现了云原生基础设施架构。这些分布式系统中,事件溯源涉及到公有云,私有云或混合云中的数千个进程,因而传统的监控技术和工具很难准确的跟踪通信链路和相互间的依赖。

团队可以利用可观测性更有效地监控系统,发现和关联处于复杂关系链中的事件,从而追溯到根本原因。此外,系统管理员、IT 运营分析师和开发人员能够利用可观测性了解系统的整个架构。

在本文中,我们将仔细研究可观测性:可观测性的定义、怎么实现可观测性以及团队能从可观测性中获得什么?

01监控和可观测性有什么区别?

监控和可观测性是相互依赖的不同概念。监控是您为提高系统的可观测性而执行的一项操作。可观测性是该系统的属性,如功能或可测试性。

具体来说,监控是随着时间的推移观察系统性能的行为。监控工具收集和分析系统数据,并将其转化为可操作的经验。从根本上说,应用程序性能监控 (APM)等监控技术可以告诉您系统是正常还是宕机,或者应用程序性能是否存在问题。

对监控数据的聚合和关联还可以帮助您对系统做出更大的推断,例如,页面加载时间可以告诉开发人员有关网站或应用程序的用户体验的信息。

而可观测性是根据系统输出的外部数据来推断系统内部状态的一种方式。它使用监控产生的数据和经验来全面了解您的系统,包括其运行状况和性能。因此,系统的可观测性部分取决于监控指标能否很好的解释系统的性能。

另一个重要的区别是监控要求您预先知道重点监控什么。而可观测性让您可以通过观察系统随时间的变化来提出相关问题,从而得出结论什么是最重要的,需要被监控。

02为什么可观测性很重要?

可观测性之所以重要是因为您可以通过它更好地控制复杂系统。简单系统的运行模块较少,比较容易维护,通常通过监控 CPU、内存、数据库和网络状况就足以了解系统并解决部分线上问题。

分布式系统的互连组件数量要多得多,因此可能发生的故障数量和类型也更多。此外,分布式系统不断变更,每次更改都可能产生新的故障类型。在分布式环境中,理解正在发生的问题是一项巨大的挑战,主要是因为它比简单的系统产生更多的“不知道不知道”。由于传统监控需要“知道不知道”,因此通常无法充分解决这些复杂环境中的问题。

可观测性更适合分布式系统的不可预测性,主要是因为它允许您在问题出现时询问有关系统行为的问题。例如:“为什么X坏了?” 或“现在是什么导致延迟?” ,这些都是可观测性可以回答的问题。

03什么是容器和微服务中的可观测性?

容器和微服务中的可观测性暴露了线上应用程序的状态,所以开发人员可以更好地识别和解决性能问题。

容器服务(例如 Docker、Kubernetes 等)和微服务解决了与日俱增的业务中断风险,以及和巨石架构相关的问题:单个代码库的变更会影响整个应用程序及其依赖。容器和微服务将应用程序分解为独立的服务,允许开发人员修改和重新部署特定服务而不是整个应用程序。

然而,基于容器的架构带来了新的挑战。相互依赖的微服务通常分散在多个主机上,随着基础设施的扩展,线上的微服务数量也会增加。这使得开发人员很难知道线上正在运行什么,从而导致交付周期延长、宕机时间增长等问题。

可观测性解决了这些挑战,提供对分布式系统的可见性。开发人员可以利用可观测性更好地了解应用程序的性能和可用性。在发生故障时,它提供了快速发现、调试或修复问题所需的控制能力。

04可观测性中使用的主要数据是什么?如何使用?

可观测性中使用的主要数据是日志、指标和跟踪。它们通常被称为“可观测性的三大支柱”

日志:日志是在特定时间发生的事件的文本记录,包括事件发生的时间戳和上下文相关的有效信息。日志有三种格式:纯文本、结构化和二进制。纯文本是最常见的,但结构化日志——包括额外的数据和元数据,更容易查询——正变得越来越流行。当系统出现问题时,日志通常也是最先要被查看的。

指标:指标是在一段时间内测量的数值,包括时间戳、名称、KPI 和值等属性。与日志不同,指标默认是结构化的,这使得查询和存储优化变得更加容易,也可以保存更长时间。

跟踪:一个跟踪表示某请求通过分布式系统的端到端旅程。当请求通过主机时,在其上执行的操作称为“跨度”,每个跨度的编码里都包含了微服务执行操作时的重要信息。一个跟踪都包含一个或多个跨度。您可以通过跟踪查看请求通过分布式系统的全过程,从而确定性能瓶颈或故障的原因。

当系统使用多种工具生成三类数据,或者三类数据相互独立的被运用,并不能实现系统的可观测性。只有在一个完整解决方案中融合了日志、指标和跟踪数据,才能真正实现系统的可观测性,也只有这样,团队才可以利用可观测性了解问题何时发生,以及很快聚焦于分析问题为什么会发生。

05如何实现可观测性?

为了实现可观测性,需要利用合适的系统或工具来收集数据。不论你是自研,使用开源软件或购买商业可观测性解决方案,通常都需要涉及四个组件:

探针:这些探针从容器、服务、应用程序、主机和系统的任何其他组件采集数据,从而实现整个基础架构的可见性。

数据融合:对数据进行处理和关联,创建事件相关的上下文,以及为了实现时序可视化而必须具备的自动化或定制化的数据治理能力。

事件响应:自动化技术。基于事件处理流程和技术经验为相关人员还原中断现场数据。

AiOps:机器学习模型用于自动聚合、关联事件数据并确定其优先级,使您能够过滤掉告警噪音,检测可能影响系统的问题并在发生事件时加快事件响应速度。

06好的可观测性工具的标准是什么?

无论您选择构建自己的解决方案还是使用开源或商业解决方案,所有可观测性工具都应该:

系统集成:如果您的可观测性工具不适用于您当前的技术栈,您的可观测性工作将会失败。确保它们支持您的环境、容器平台、消息中间件和任何其他关键软件中的框架和语言。

对用户友好:如果您的可观测性工具难以学习或使用,它们将不会被添加到工作流中——这会让您的可观测性计划止步。

提供实时数据:您的可观测性工具应通过仪表板、报表和实时查询提供重要信息,以便团队能够了解问题及其影响以及如何解决。

支持先进事件处理技术:高效的可观测性工具能够从您的堆栈、技术和操作环境中收集所有与事件相关的信息,并提炼有价值的内容,为事件添加足够的上下文以便团队可以快速解决问题。

聚合数据的可视化:可观测性工具应以易于理解的格式显示内部状态,例如仪表板、交互式摘要和其他让用户快速理解的可视化方式。

提供上下文:当事件发生时,应能提供足够的上下文做支撑,以便您了解系统性能是如何随时间而变化的、发生变化的性能指标之间是否有关联、问题的范围以及受影响服务或组件之间的相互依赖关系。如果可观测性没有提供这种级别的上下文,事件响应就会瘫痪。

使用机器学习:应包括自动处理和管理数据的机器学习模型,以便更快地对异常和安全事件进行预测和响应。

交付业务价值:务必根据重要业务指标(例如部署速度、系统稳定性和客户体验)来评估可观测性工具。

07DevOps 中的可观测性有什么好处?

可观测性允许 DevOps 开发人员在任何时间了解应用程序的内部状态,并可以获取分布式环境中系统故障的更准确信息。主要好处如下:

●更好的可见性:庞大的分布式系统通常使开发人员很难了解线上的服务、应用程序的性能是否能够满足当前业务量、某项服务的相关责任人或系统在最近一次部署之前的样子。可观测性使他们能够实时了解线上系统,从而消除这些障碍。

●更好的告警:可观测性帮助开发人员更快地发现和修复问题,提供更深入的可见性,使他们能够快速确定系统中发生了什么变化,调试修复问题,并确定这些变化可能会引起的问题。

●更好的工作流程:可观测性允许开发人员查看请求的端到端旅程,以及有关特定问题的相关上下文数据,从而简化应用程序的研究和调试过程,优化其性能。

●更少的会议时间:过去,开发人员通过三方公司或应用程序记录下谁负责特定服务或系统在最近部署前几天或几周的样子。通过有效的可观测性,这些信息很容易获得。

●加快开发人员速度:可观测性使监控和故障排除更加高效,消除了开发人员的主要摩擦点。结果是交付速度加快,DevOps 员工有更多时间提出创新想法,以满足业务及其客户的需求。

08可观测性在软件工程中的好处是什么?

与 DevOps 一样,可观测性通过提供对整个基础架构的洞察力而使软件工程师受益,使他们能够看到它是如何因问题、部署新软件或业务规模扩大或缩小而发生变化的。

谁从可观测性中受益?

开发人员和软件工程师受益于可观测性,因为它提供了对其整个架构的可见性,包括第三方和自己研发的应用程序或服务。这不仅使他们能够更轻松地修复并最终预防问题,还有助于更好地了解系统性能以及它如何塑造更好的客户体验。然后,开发人员和工程师都有更多的时间来制定有利于业务的战略计划。

团队也受益,因为可观测性提供了环境的共享视图,随着时间的推移提供了对其架构、健康状况和性能的更全面的理解。可观测性使得开发人员、操作员、工程师、分析师、项目经理和其他团队成员对有关服务、客户和其他系统元素的达成一致认识。此外,可观测性可以创建更准确的事后审查,因为相关人员可以检查实时系统行为的书面记录,而不是将来自孤立的、单独的来源的事件拼凑在一起。数据 - 而不是意见 - 将帮助您的团队了解事件发生的原因,以便他们能够更好地预防和处理未来的事件。

最后,对业务的收益最大。可观测性允许您在不影响系统稳定性的情况下对应用程序和服务进行更改,方法是为您提供工具来了解哪些工作正常,哪些不工作,查明出现的任何问题并快速改进或解决它们。新功能与更少的宕机时间相结合,转化为更快乐的客户和更稳健的底线。

09底线:深入了解您的基础架构
可观测性不仅仅是一个流行词——它是了解整个基础架构状态的重要且有用的方法。云、容器化、微服务和其他技术使系统比以往任何时候都更加复杂。虽然这些技术的最终结果是积极的,但系统的故障排除和管理却充满了困难。更多的交互会导致更多的问题,当它们发生时,更难检测和修复。

幸运的是,这些分布式系统产生了大量的监控数据,如果您可以利用它,可以更清楚地了解它们的性能。有效的可观测性工具具备数据采集和上下文还原的能力,并为您提供适应现代分布式系统的持续发展所需的洞察力。

这篇关于Splunk深度专题:疫情下的可观测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/803038

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显