可观察性支柱:探索日志、指标和跟踪

news2024/11/13 10:09:36

通过检查系统输出来测量系统内部状态的能力称为可观察性。当可以仅使用输出信息(即传感器数据)来估计当前状态时,系统就变得“可观察”。您可以使用来自 Observability 的数据来识别和解决问题、优化性能并提高安全性。

在接下来的几节中,我们将仔细研究可观察性的三大支柱:指标、日志和跟踪

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

“如果没有监控,可观察性就不可能实现。”

监控是与可观察性密切相关的另一个术语。监控和可观察性之间的主要区别在于,后者是指 深入了解系统内部运作的能力,而前者是指收集有关系统性能和行为的数据的行为。

除此之外,监控并没有真正考虑最终目标。它专注于预定义的指标和阈值来检测与预期行为的偏差。可观察性旨在提供对系统行为的深入理解,从而允许探索和发现意外问题。

在视角和思维方式方面,监控采用“自上而下”的方法,并根据已知标准预定义警报。可观察性采用“自下而上”的方法,鼓励开放式探索和适应不断变化的需求。

监控可检测异常情况并提醒您潜在的问题。然而,可观察性可以检测问题并帮助您了解其根本原因和潜在动态。

可观察性的三大支柱

可观察性建立在三大支柱(指标、日志、跟踪)之上,围绕“事件”的核心概念。事件是监控和遥测的基本单位,每个事件都带有时间戳且可量化。事件的区别在于它们的上下文,尤其是在用户交互中。例如,当用户在电子商务网站上单击“立即付款”时,此操作预计会在几秒钟内发生。

在监控工具中,“重大事件”是关键。它们触发:

  • 自动警报:通知 SRE 或运营团队。
  • 诊断工具:启用根本原因分析。

想象一下服务器的磁盘容量接近 99%;这很重要,但了解哪些应用程序和用户导致了这种情况对于采取有效行动至关重要。

1. 指标

指标作为数字指标,提供对系统健康状况的洞察。虽然 CPU、内存和磁盘使用率等一些指标是明显的系统运行状况指标,但许多其他关键指标可以揭示潜在问题。例如,操作系统句柄的逐渐增加可能会导致系统速度变慢,最终需要重新启动才能访问。现代 IT 基础设施的各个层面都存在类似的有价值的指标。

在确定要持续收集哪些指标以及如何有效分析它们时,仔细考虑至关重要。这就是领域专业知识发挥关键作用的地方。虽然大多数监控工具都可以检测明显的问题,但最好的监控工具可以更进一步,提供检测和警报复杂问题的见解。确定作为即将发生的系统问题的主动指标的指标子集也很重要。 例如,操作系统句柄泄漏很少突然发生。

跟踪使用中的句柄数量随着时间的推移逐渐增加,可以预测系统何时可能变得无响应,从而可以进行主动干预。

2. 日志

日志通常包含有关应用程序如何处理请求的复杂详细信息。这些日志中出现的异常情况(例如异常)可能表明应用程序中存在潜在问题。监视日志中的这些错误和异常是任何可观察性解决方案的一个重要方面。解析日志还可以揭示有关应用程序性能的宝贵见解。

日志通常包含在使用 API(应用程序编程接口)或查询应用程序数据库时可能难以捉摸的见解。许多独立软件供应商 (ISV)不提供访问日志中可用数据的替代方法。因此,有效的可观测性解决方案应该支持日志分析并促进日志数据的捕获及其与指标和跟踪数据的关联。

3. 跟踪

跟踪是一个相对较新的发展,特别适合当代应用程序的复杂性。它的工作原理是从应用程序的不同部分收集信息并将其组合在一起以显示请求如何在系统中移动。

跟踪的主要优点在于它能够解构端到端延迟并将其归因于特定层或组件。虽然它不能准确地告诉您出现问题的原因,但它对于找出要查找的位置非常有用。

集成跟踪过去很困难,但有了服务网格,现在变得毫不费力。服务网格在代理级别处理跟踪和统计数据收集,提供整个网格的无缝可观察性,而不需要其中的应用程序进行额外的检测。

上面讨论的每个组件都有其优点和缺点,尽管人们可能想全部使用它们。

可观察性工具

可观测性工具收集和分析与用户体验、基础设施和网络遥测相关的数据,以主动解决潜在问题,防止对关键业务关键绩效指标 (KPI) 产生任何负面影响。

一些流行的可观察性工具选项包括:

  • Prometheus:领先的开源监控和警报工具包,以其可扩展性和对多维数据收集的支持而闻名。
  • Grafana:一个可视化和仪表板平台,通常与 Prometheus 一起使用,提供对系统性能的丰富洞察。
  • Jaeger:一个开源分布式跟踪系统,用于对基于微服务的架构进行监控和故障排除。
  • Elasticsearch:一种搜索和分析引擎,与 Kibana 和 Beats 配合使用时,形成用于日志管理和分析的 ELK Stack。
  • Honeycomb:一种事件驱动的可观察性工具,可提供对应用程序行为和性能的实时洞察。
  • Datadog:一个基于云的可观察性平台,集成了日志、指标和跟踪,提供端到端可见性。
  • New Relic:提供应用程序性能监控(APM)和基础设施监控解决方案来跟踪和优化应用程序性能。
  • Sysdig:Sysdig 专注于容器监控和安全,提供对容器化应用程序的深入可见性。
  • Zipkin:一种开源分布式跟踪系统,用于监控请求流并识别延迟瓶颈。

结论

日志、指标和跟踪是重要的可观察性支柱,它们共同提供分布式系统的完整视图。战略性地合并它们,例如在入口和出口点放置计数器和日志,以及在决策关口使用跟踪,可以实现有效的调试。将这些信号关联起来可以增强我们在分布式系统中导航指标、检查请求流和解决复杂问题的能力。

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

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

相关文章

幸狐LuckFox Pico RV1103微型Linux开发板 上手教程分享—02:SDK 环境部署

续上01教程分享,今天主要分享Luckfox Pico SDK 的环境部署 LuckfoxPico-SDK是基于Ubuntu LTS 系统开发测试的,在开发过程中,主要是用Ubuntu 18.04版本, 为了不必要的麻烦,我们推荐用户使用…

别再吹 GPT-4V 了!连北京烤鸭都不认识,你敢信??

夕小瑶科技说 原创 作者 | 智商掉了一地、ZenMoore GPT-4 被吹的神乎其神,作为具备视觉能力的 GPT-4 版本——GPT-4V,也被大众寄于了厚望。但如果告诉你,GPT-4V 连图片上的“北京烤鸭”和“广西烤鸭”都分不清楚,你是否觉得大跌眼…

电子邮件发送接收原理(附 go 语言实现发送邮件)

前言 首先要了解电子邮件的发送接收,不是点到点的。我想给你传达个消息,不是直接我跑到你家里喊你:“嘿,xxx,是你的益达,快拿走”。 而是类似快递的发送收取方式,是有服务器的中转的。我先将我…

1个月5次发版:测试人的模块测试策略分类归纳

笔者所在项目经历了一个月开发周期,该项目有5名开发人员,1名项目经理,1名测试人员,涵盖OA系统8个模块,在短短1个月中进行了5次发布。 现进行模块测试策略分类归纳。 已有模块 配置项优化 对于已有模块的配置项优化&…

【Python】collections.Counter

Python内置模块collections中的Counter是字典子类。Counter不是字典,但很像字典。 Counter具有字典的键和值,键是各个元素,值为该元素出现的次数。 Counter相当于计数器。常用于哈希映射(哈希表)。 from collection…

Unity Inspector编辑器扩展,枚举显示中文,枚举值自定义显示内容

记录!Unity Inspector面板编辑器扩展,枚举显示中文,枚举值自定义显示内容,显示部分选项。效果如下: 枚举类代码: using System.Collections; using System.Collections.Generic; using UnityEngine;public…

从顺序表表中删除具有最小值的元素(假设不唯一)并由函数返回被删元素值

从顺序表表中删除具有最小值的元素(假设不唯一),并由函数返回被删元素值 空出的位置由最后一个元素填补,若顺序表为空,则显示出错误信息并退出运行 //顺序表定义及初始化 #define _CRT_SECURE_NO_WARNINGS #include&l…

SpringMVC Day 01:入门案例

前言 在我们的日常工作和学习中,Web 开发是一个无法回避的重要环节。而在 Java Web 开发领域,SpringMVC 无疑是一个重量级选手。它以其灵活性、强大功能和清晰的 MVC 结构,赢得了大量开发者的青睐。但是,对于初学者来说&#xff…

云表:【建议收藏】什么是低代码?一分钟掌握低代码开发

IT圈的风口总是轮番上演,但只有在浪潮退去后,真正具有社会价值的产品才能脱颖而出。同样地,这个规则也适用于“低代码”这个赛道。 云表平台认为,低代码将成为未来企业数字化转型中不可或缺的重要元素之一。随着市场竞争的不断加剧…

Qt 窗口的尺寸

本文通过多个案例,详细说明关于Qt窗体尺寸的一些重要问题 默认尺寸 对于一个Qt的窗口(继承于QWidget),获取其窗体尺寸的方法size(); 以一个Qt创建Qt Widgets Application项目的默认生成代码为基础,做如下…

安科瑞电能计量管理系统

安科瑞 崔丽洁 随着国家电网改革政策的逐步推进和落实,Acrel-3000WEB电能管理解决方案运用互联网和大数据技术,为电力运维公司提供电能管理解决方案。该平台作为连接运维单位和用电企业的纽带,全方面监视用户配电系统的运行状态和电量数据&am…

分享一款基于 AI 的 Chrome 插件

最近使用大模型比较多,公司虽然提供了免费的 ChatGPT 但是需要跳转特定页面才能访问,比较麻烦,于是就想到是否可以开发一款类似于有道词典一样的 Chrome 插件,可以在任意页面使用,虽然市面上也有类似的插件&#xff0c…

2023中国物流系统集成商百强榜研究报告(附下载)

随着智能物流建设的不断深入,企业应用了越来越多的自动化、智能化物流设备与管理软件。但各物流功能之间的效益背反问题如何解决? 各品牌与类型物流设备的接口各异如何统一调度? 各物流设备与管理软件之间的数据如联通传输? 乃至物流设备与生产设备、物流管理软…

如何新建一个一台交换机下连两个PC的拓扑

文章目录 1.效果如下1.新建一个空白拓扑页选择设备类型向工作区添加设备如何选择链接线如何使设备之间链接上启动设备 1.效果如下 1.新建一个空白拓扑页 选择设备类型 向工作区添加设备 如何选择链接线 如何使设备之间链接上 同理右侧设备也是这样链接的 启动设备 同理PC1和P…

nohup命令后台启动jar包

使用jps命令查看后台启动的进程 kill -9 218729 杀掉进程,如果没有启动过就不用了,忘了的话就会有两个jar的进程,都杀掉然后重新启动jar包然后进入到jar包对应的目录下使用nohup命令启动jar包 命令:nohup java -jar xxx.jar >c…

轻量级仿 SpringBoot=嵌入式 Tomcat+SpringMVC

SpringBoot 嵌入了 Web 容器如 Tomcat/Jetty/Undertow,——这是怎么做到的?我们以 Tomcat 为例子,尝试调用嵌入式 Tomcat。 为了说明如何打造轻量级的 SpringBoot,本文分为“嵌入式 Tomcat”、“增强 SpringMVC”和“打包/部署”…

LDO基础知识

LDO基础知识 线性稳压器基本上由输入IN、输出OUT、GND引脚所构成 可变线性稳压器则在输出增加输出电压的反馈(feed back)引脚 (通过分压电阻来进行调节输出电压的大小) LDO 线性稳压器内部电路如下图所示。 基本上由误差放大器(误差检测用…

行情分析——加密货币市场大盘走势(10.25)

目前大饼继续上涨,还没有看到震荡盘整的迹象。从MACD日线来看,连续绿色实心柱已经10天。现在有点上涨无力了,而现在入场做空性价比更高,看反弹到33000-32000。如果谨慎点,可以继续等待。 以太目前来看和大饼一样那个也…

MySQL中的Base64函数

编码函数to_base64() select to_base64("123") 解码函数from_base64() select from_base64("MTIz")

leetcode:1662. 检查两个字符串数组是否相等(python3解法)

难度:简单 给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。 示例 1: 输入:word1 […