当前位置: 首页 > news >正文

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

通过检查系统输出来测量系统内部状态的能力称为可观察性。当可以仅使用输出信息(即传感器数据)来估计当前状态时,系统就变得“可观察”。您可以使用来自 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:一种开源分布式跟踪系统,用于监控请求流并识别延迟瓶颈。

结论

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

相关文章:

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

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

nginx浏览器缓存和上流缓存expires指令_nginx配置HTTPS

1.nginx控制浏览器缓存是针对于静态资源[js,css,图片等] 1.1 expires指令 location /static {alias/home/imooc;#设置浏览器缓存10s过期expires 10s;#设置浏览器缓存时间晚上22:30分过期expires @22h30m;#设置浏览器缓存1小时候过期expires -1h;#设置浏览器不缓存expires …...

硬件安全与机器学习的结合

文章目录 1. A HT Detection and Diagnosis Method for Gate-level Netlists based on Machine Learning摘要Introduction 2. 基于多维结构特征的硬件木马检测技术摘要Instruction 3. A Hardware Trojan Detection and Diagnosis Method for Gate-Level Netlists Based on Diff…...

腾讯云国际-如何使用对象存储COS在 CKafka 控制台创建数据异步拉取任务?腾讯云代充

操作场景 Datahub 支持接入各种数据源产生的不同类型的数据,统一管理,再分发给下游的离线/在线处理平台,构建清晰的数据通道。 本文以 COS 数据为例介绍如何在 CKafka 控制台创建数据异步拉取任务,并对任务进行修改配置&#xf…...

内存马概念

内存马概念 文章目录 内存马概念木马演变内存使用条件内存缺点JAVA Web三大组件Listener:监听器servelet请求流程内存马分类内存演示内存马植入方式案例shiro反序列化漏洞植入内存马 木马演变 内存使用条件 1. 禁止外联 2. 文件监控、查杀 3. spring Boot,不支持js…...

交换机基础(四):MSTP负载均衡配置案例

如图所示是某个企业内部核心网络的结构图,目前企业中有20个VLAN, 编号为VLAN1~VLAN20, 为了确保内部网络的可靠性,使用 了冗余链路和MSTP 协议。为了能更好地利用网络资源和带宽,现管理员希望通过配置MSTP 的负载均衡实现网络带宽…...

C# OpenCvSharp Yolov8 Face Landmarks 人脸特征检测

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_Yolov8_Demo {public partial class frmMain…...

计算机网络之数据链路层(全)

[复习提示] 王道:本章是历年考试中考查的重点。要求在了解数据链路层基本概念和功能的基础上,重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议、HDLC协议和PPP协议,特别是CSMA/CD协议和以太网帧格式,以及局域网的争用期和最…...

前端TypeScript学习-交叉类型与泛型

交叉类型和泛型是TypeScript中的两个重要概念。 交叉类型(&)可以用来组合多个接口,形成一个新接口。它类似于接口继承(extends),但有一些区别。交叉类型不会产生类型继承层次结构,而是将多…...

科聪协作(复合)移动机器人整体解决方案

协作(复合)移动机器人(AGV/AMR)相较传统工业机器人具有更加安全和简单的工作优势,具备较强的发展潜力。协作(复合)移动机器人安全性和操作的简洁性、灵活性不断提高,优势得到了充分发挥,在越来越…...

RTE(Runtime Environment)

RTE(Runtime Environment)是一个运行时环境,在这个环境里,你可以实现的功能是: 作为一个缓冲buffer给应用层和BSW层的接口(例如COM)用来存储数据,也就是说定义一个全局变量供上层和下…...

搭建自己的搜索引擎——oh-my-search使用

搭建自己的搜索引擎——oh-my-search使用 使用elasticsearch和search-ui搭建自己的搜索引擎,快速查找资源和文件。如果对代码感兴趣,相关代码已在github上开源,欢迎fork代码。 搭建elasticsearch 先搭建eleasticsearch再搭建kibana 搭建e…...

微信小程序实现文章内容详情

方案一、使用微信小程序官方提供的webview 前提已经在微信公众平台开发管理配置好了安全域名即: 方案二、把网页转成pdf直接展示 前提已经在微信公众平台开发管理配置好了安全域名即: 实现思路是发起网络请求拿到pdf下载地址,然后wx.download…...

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

目前大饼开始了震荡盘整,目前远离EMA21均线,预计会有大的回调动作。而MACD日线来看,昨日和今日开始呈现绿色空心柱,也在说明大饼在做震荡盘整。不排除大跌的可能性,大饼可以开始布局中长线空单,可以再35000…...

设计模式:桥接模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

上一篇《适配器模式》 下一篇《装饰器模式》 简介: 桥接模式,它是一种结构型设计模式,它的主要目的是将抽象部分与具体实现部分分离,使它们都可以独立地变化。…...

error: the following arguments are required: --model, --data 解决方法

错误原因:Windows下需要缺乏配置参数,需要进行相关参数配置。 解决办法:在Pycharm的编辑设置,加上–model--model ****,其中****为指定的模型名称,按照自己实际报错进行添加,比如我这里要跑的模型为bert&am…...

Kafka - 消息队列的两种模式

文章目录 消息队列的两种模式点对点模式(Point-to-Point,P2P)发布/订阅模式(Publish/Subscribe,Pub/Sub) 小结 消息队列的两种模式 消息队列确实可以根据消息传递的模式分为 点对点模式发布/订阅模式 这两…...

【Go】格式化字符串指令大全 Redis常用命令

【Go】格式化字符串指令大全 && Redis常用命令 原创:As.Kai 博客地址:https://blog.csdn.net/qq_42362997 如果以下内容对您有帮助,点赞点赞点赞~ 目录 格式化格式化字符串指令大全%s 用于插入字符串%d 用于插入整数%f 用于插入浮点数…...

Windows 和 Linux 这2个系统在进行编程实现的时候的一些区别:

很惭愧,学了很多年才意识到,噢,原来这两个系统实现一些功能的时候会使用到不同的库,使用不同的函数。 那么,也会延伸出一些问题: 比如,如何实现版本的迁移。一个在Linux上运行的代码如何可以比…...

[SQL开发笔记]SQL 别名:为表名称或列名称指定别名

一、功能描述: 通过使用 SQL,可以为表名称或列名称指定别名。基本上,创建别名是为了让列名称的可读性更强。 二、SQL 别名语法详解: (1)列的 SQL 别名语法: Select column_name AS alias_nam…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...