前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >互联网十万个为什么之什么是可观测

互联网十万个为什么之什么是可观测

作者头像
linus_lin
发布于 2024-10-21 03:13:24
发布于 2024-10-21 03:13:24
1383
举报

可观测(Observability)作为现代运维理念,强调系统在运行时应具备全面的、深入的、可理解的状态获取能力。通过收集和分析系统的各种可观测数据,构建一个全方位、立体化的监控与分析体系,运维团队能够在复杂、动态的 IT 环境中实时了解系统内部的健康状况、性能表现以及故障原因,并基于这些信息做出准确的决策,实现快速问题定位、预防性维护以及持续优化。

可观测的主要数据类型包括:

  • 指标数据(Metrics)

指标通常指系统性能相关的可量化数据,如 CPU 使用率、内存占用、网络带宽利用率、数据库查询速率、服务响应时间等。这些实时或周期性收集的数据可用于监控系统性能、资源利用率、容量规划、系统可用性。

  • 链路数据(Tracing)

链路数据常用于跟踪一个请求在多个服务间的调用路径及其耗时。通过收集每个服务节点上的跨度(Span)信息,形成完整的请求链路视图,便于深入理解跨服务边界的服务交互性能和问题定位。

  • 日志数据(Logging)

日志是系统在运行过程中生成的记录信息,包括错误消息、警告、调试信息及用户操作事件等。通过对日志进行收集、存储、搜索和分析,运维人员能够了解系统的执行历史、发现异常情况并诊断问题。

通过对这些数据的收集、聚合、关联和分析,运维团队能够更深入地理解系统运行状态,快速定位和解决问题,进而提升系统的稳定性和可靠性。在复杂分布式系统中,可观测是保证服务质量和进行有效运维的关键手段之一。

为什么需要可观测?

可观测是现代IT系统的核心需求之一,它对于构建稳定可靠、高效灵活的技术基础架构至关重要。可观测的必要性主要体现在以下几个方面。

  • 故障诊断与问题解决

通过实施可观测,运维团队能够实时收集并分析系统的日志、指标、事件以及分布式追踪数据,从而快速定位到系统中的异常或故障点,并采取相应措施进行修复。这有助于减少服务中断时间,提升系统的可用性和稳定性。

  • 性能监控与优化

可观测使得运维人员能够深入了解系统的实时性能表现,包括延迟、吞吐量、资源利用率等重要指标。这些信息可以帮助识别出性能瓶颈及其原因,进而制定优化策略以提高系统性能和效率。

  • 业务连续性和服务质量

为了确保业务流程顺畅运行,满足服务水平协议(SLA)的要求,需要依赖对系统状态的准确掌握。可观测提供了全面的视角来监测系统健康状况,帮助您及时发现潜在风险,保障业务连续性和用户体验。

  • 自动化运维与自愈能力

结合可观测数据与自动化运维工具,可以实现自动化的故障检测、恢复及弹性伸缩等功能,进一步提升运维响应速度和准确性,降低人为干预带来的延误,甚至错误。

  • 安全性与合规性

可观测也有助于安全审计和合规要求,通过记录和分析系统行为,能更有效地检测和防止安全威胁,同时为法规遵从提供必要的数据支持。

  • 决策支持与前瞻性管理

基于历史和实时的可观测数据,管理者能够做出基于数据驱动的决策,预见未来可能的问题,提前进行资源规划和技术架构调整。

可观测和监控的区别是什么?

可观测和监控在 IT 运维和系统管理中都是非常重要的实践。监控是针对系统健康状况的常规监护,而可观测则是对系统深层次内在逻辑的理解与解读,它通过获取更多元、更丰富的数据来提升系统管理和维护的效率与准确性。您可以从以下维度理解两者之间的关键差异。

  • 数据收集与分析的广度
    • 监控通常关注预先定义的关键性能指标(KPIs),如 CPU 使用率、内存消耗、网络流量等,以及服务的可用性和响应时间。监控工具会定期或连续地收集这些指标,并通过设定阈值触发警报。所以监控主要用于发现问题并触发警报。
    • 可观测则强调对系统的深入理解,需要更全面的数据集来推断系统内部的状态和行为。除了基础的性能指标外,可观测还包括日志记录、分布式追踪、应用程序运行时数据等多维度信息,以便在出现问题时能够分析根本原因。
  • 目标与深度
    • 监控的目标主要是发现异常情况并及时通知运维人员,其重点在于发生了什么和何时发生的。更多依赖于预先设定好的表面现象或外部表现,对于复杂系统可能无法揭示深层次的问题。
    • 可观测的目标更加深远,要求系统能生成足够丰富的数据以便了解其内部工作原理,旨在帮助运维团队了解系统为什么以某种方式运行,从而可以更快地定位问题,预防潜在风险,优化系统性能,并支持持续改进。可观测追求的是回答为什么的问题,而不仅仅是表面现象。
  • 主动性与被动性
    • 监控通常是一个相对被动的过程,依赖预配置的规则和检查点。
    • 可观测更具主动性,因为它鼓励从多种角度探索系统的行为模式,即使没有明显的故障信号也能揭示潜在的问题,特别是在快速迭代和复杂的微服务架构下。
  • 决策支持
    • 监控提供的数据主要用于实时发现和报告异常情况等即时决策,比如是否需要重启服务、调整资源分配等应急措施。
    • 可观测提供更丰富、更具洞察力的数据,进行深入分析和诊断,不仅限于紧急响应,还能够支持长期策略制定和技术架构优化。
  • 技术栈与工具
    • 监控工具通常包括仪表盘、图表、警报系统等,用于实时显示系统状态。
    • 可观测工具则可能包含日志聚合平台、分布式追踪系统、时序数据库、APM(应用性能管理)工具以及利用机器学习进行智能分析的组件。

可观测有哪些实际应用?

可观测在实际应用中的表现形式丰富多样,以下为部分典型应用场景。

故障排查

当系统出现性能瓶颈、错误或故障时,运维人员可以通过分析日志记录、系统指标以及分布式追踪数据,快速定位问题发生的具体服务节点和请求链路。

性能优化

利用可观测技术,企业可以深入了解应用程序和基础设施的性能特征,如识别出资源利用率低效的服务、发现响应时间过长的操作等,从而针对性地进行性能调优。

容量规划与预测

根据历史及实时观测到的资源使用情况(CPU、内存、存储、网络流量等),运维团队可以准确预测未来系统的资源需求,并作出相应的扩容或缩容决策,确保业务稳定性的同时降低成本。

安全与合规审计

安全事件发生时,可观测数据可以帮助追踪攻击路径,揭示潜在的安全漏洞。同时,对于满足合规要求,如跟踪操作行为、记录变更历史等,可观测也能提供必要的审计依据。

DevOps 流程改进

可观测将开发、测试、运维紧密联系起来,通过反馈实时的系统运行状态数据,在 CI、CD 流程中快速迭代和持续优化。即时获知代码部署后的真实效果,迅速做出调整。

微服务架构服务治理

在复杂微服务架构中,可观测是理解和控制整个系统的基石。通过统一收集和分析各个服务之间的调用关系和性能数据,能够实现对大规模分布式系统的有效管理和治理。

用户体验保障

对于依赖云计算平台的企业来说,可观测有助于提高服务质量,保证用户获得流畅且无中断的体验。通过对系统全面的监测,及时发现并解决影响用户体验的问题,从而提升品牌口碑和客户满意度。可观测广泛应用于IT运维、软件工程、安全管理等多个领域,它增强了组织对自身系统和业务流程的认知能力,帮助其做出更明智的决策,以应对快速变化的技术环境和业务需求。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRE云原生实践之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
3 条评论
热度
最新
解决。我眼睛有问题。。。sorry。 没注意
解决。我眼睛有问题。。。sorry。 没注意
11点赞举报
OK
OK
回复回复点赞举报
没有clone 的ball 啊 点了也没发射 是不是漏了 什么代码?
没有clone 的ball 啊 点了也没发射 是不是漏了 什么代码?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
unity官方案例精讲(第三章)--星际航行游戏Space Shooter
导入的工程包中,包含着一个完整的 _scene---Main场景,创建一个全新场景,会在其中实现大部分功能
酱紫安
2020/10/15
3.4K0
unity官方案例精讲(第三章)--星际航行游戏Space Shooter
Unity入门教程(上)
一、介绍 目的:通过尝试制作一款使用玩家角色把小球弹飞的简单小游戏,熟悉使用Unity进行游戏开发的基本流程。 软件环境:Unity 2017.3.0f3,Visual Studio 2013 二、创建新项目 1,启动Unity后将出现一个并列显示Projects和Getting started的窗口。点击窗口中央的New Project按钮或者右上方的NEW文本标签,窗口下半部分内容将发生改变,出现Project Name文本框等内容。 2,如果Unity曾经被启动过(比如我),窗口中央将不再显示New
Zoctopus
2018/06/04
3.5K0
【Unity面试篇】Unity 面试题总结甄选 |Unity基础篇 | ❤️持续更新❤️
答:Awake —> OnEnable —> Start —> FixedUpdate —>Update —> LateUpdate—> OnGUl —> OnDisable —> OnDestroy
呆呆敲代码的小Y
2023/07/24
3K0
【Unity面试篇】Unity 面试题总结甄选 |Unity基础篇 | ❤️持续更新❤️
Unity零基础到入门 ☀️| 学会这些Unity常用组件,Unity中必备组件技能学习!
⭐️组件Component ????前言 ????简介 ????Unity工程结构 ????几种常用组件介绍 ????Transform组件 ????Mesh Filter(网格过滤器)和Mesh R
呆呆敲代码的小Y
2021/08/20
3.2K0
Unity零基础到入门 ☀️| 学会这些Unity常用组件,Unity中必备组件技能学习!
Unity和C#游戏编程入门:创建迷宫小球游戏示例
当涉及到Unity和C#游戏编程入门时,以下是一些示例代码,可以帮助初学者更好地理解这个领域的基础概念。我们将展示一个简单的示例,创建一个在Unity中控制的小球,并使用C#脚本来控制其运动。请确保你已经按照前文的步骤安装了Unity和学习了基础的C#编程知识。
海拥
2023/09/13
7130
如何用python制作3d游戏_【教程】12个步骤让你快速学会制作3D游戏
Unity3D不仅是一款功能强大且易于上手的游戏引擎,更重要的是,它还可以被免费下载(它还有一个功能更强大的付费版,但其实你可以使用免费版本完成绝大部分工作)。
全栈程序员站长
2022/09/02
3.8K0
【Unity+C#】Unity手把手入门基础演示,并实现一个翻滚的球球小游戏
先安装好Unity环境,此步骤省略。目前我安装两个Unity编辑器,一个是最新版2023.1.x,一个是最新LTS版本的2022.3.x
Wesky
2024/08/27
5270
【Unity+C#】Unity手把手入门基础演示,并实现一个翻滚的球球小游戏
一键完成对话需求?这款插件你不能错过(Unity3D)
Dialogue System是一个分支式的统一会话系统。它不需要任何脚本,但它是设计为易于由程序员扩展。
恬静的小魔龙
2022/08/07
5K0
一键完成对话需求?这款插件你不能错过(Unity3D)
Unity【Colliders碰撞器】和【Rigibody刚体】的应用——小球反弹效果
一、给地板floor添加碰撞器,这里我们不添加刚体Rigibody,因为会使地板因为重力而下落。
用户11315985
2024/10/16
4080
Unity【Colliders碰撞器】和【Rigibody刚体】的应用——小球反弹效果
2.5D游戏是如何做出来的呢,2.5D游戏快速制作教程
2.5D游戏 是一种介于二维和三维之间的游戏形式。它通常在二维平面上展示游戏内容,但利用三维技术来实现更加逼真的图像效果。
呆呆敲代码的小Y
2023/08/10
2.8K0
2.5D游戏是如何做出来的呢,2.5D游戏快速制作教程
unity3d的入门教程_3D网课
一、Unity下载与安装 参考博客:Unity Hub、unity、PlasticSCM安装
全栈程序员站长
2022/09/22
4.1K0
unity3d怎么挖坑_unity游戏教程
1、rigidbody.addforce(Vector3 * speed) (见roll-a-ball)
全栈程序员站长
2022/09/29
3K0
unity3d怎么挖坑_unity游戏教程
【Unity 3D 游戏开发】Unity3D 入门 - 工作区域介绍 与 入门示例
scence视图简介 : 展示创建的游戏对象, 可以对所有的游戏对象进行 移动, 操作 和 放置;
韩曙亮
2023/03/27
2.3K0
【Unity 3D 游戏开发】Unity3D 入门 - 工作区域介绍 与 入门示例
Unity3D游戏开发初探—3.初步了解U3D物理引擎
  四个世纪前,物理学家牛顿发现了万有引力,并延伸出三大牛顿定理,为之后的物理学界的发展奠定了强大的理论基础。牛顿有句话是这么说的:“如果说我看得比较远的话,那是因为我站在巨人的肩膀上。”
Edison Zhou
2018/08/20
1.7K0
Unity3D游戏开发初探—3.初步了解U3D物理引擎
Unity基本操作以及Roll A Ball窗口界面以及菜单Roll A Ball
第一个手部图标,可以拖动物体,对准物体点击就可以拖动。第二个就是指针图标,可以选择物体的移动方向。可以选择x,y,z三个方向进行移动。第三个就是旋转图标,可以对物体进行任意方向的旋转。第四个可以改变物体的大小。 这个时候按住鼠标右键可以对场景查看,全景查看。按下w,s可以对镜头远近调节,a,d可以左右位移,如果仅仅是鼠标左右移动那就仅仅只能旋转而已。
西红柿炒鸡蛋
2018/12/06
1.1K0
Unity 脚本入门
在 Unity 中脚本是必不可少的组成部分,因为它将定义游戏的各种行为。Unity 推荐使用的编程语言是 JavaScript,但是 C# 或 Boo 同样也可以。下面介绍 JavaScript 的基本使用及脚本的 API 。
hrscy
2018/08/30
1.5K0
Unity 脚本入门
官方案例--Survival Shoot(一)
导入Survival Shooter.unitypackage,里面有个完整了,新版本导入的时候,需要简单的修改一下代码;
酱紫安
2021/11/30
4750
官方案例--Survival Shoot(一)
从零开始制作Roll-a-ball tutoria滚动的小游戏(Unity3D)
  大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧。
恬静的小魔龙
2022/08/07
1.6K0
从零开始制作Roll-a-ball tutoria滚动的小游戏(Unity3D)
unity3d新手入门必备教程
   Unity3D入门教程中文版    Unity3D基本操作、    用Unity3D创建简单漫游... 1    基本设置... 1    修改视角控制键为右键... 9    如何取消浏览窗口上的右键菜单... 10    植物效果设置... 10    水面效果的设置... 15    烘培光影贴图的处理... 16    如何制作连续加载的场景漫游... 29    用Unity3D 创建简单漫游    1.      建模中使用的图片、文件、文件夹
py3study
2020/01/08
6.6K0
mirror--tankWar
一、创建离线场景 1、创建新项目,导入mirror,创建场景重命名为OfflineScenes 2、从Prefabs文件夹中,将预制体LevelArt拖拽到场景中,LevelArt有光源,删除场景中自带的光源 4、从models文件夹中,将Tank拖拽到场景中,调试好合适的位置,也可以拖拽其他的模型布置场景 5、创建canvas,修改UI Scale Mode选项为:scale with screen size,下面的尺寸根据自己的需求更改,我打包出来的是4:3的界面,创建输入框--输入姓名,3个滑杆
酱紫安
2022/05/10
1.4K0
mirror--tankWar
推荐阅读
相关推荐
unity官方案例精讲(第三章)--星际航行游戏Space Shooter
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档