可观察性支柱:探索日志、指标和跟踪
通过检查系统输出来测量系统内部状态的能力称为可观察性。当可以仅使用输出信息(即传感器数据)来估计当前状态时,系统就变得“可观察”。您可以使用来自 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 控制台创建数据异步拉取任务,并对任务进行修改配置…...

内存马概念
内存马概念 文章目录 内存马概念木马演变内存使用条件内存缺点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…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...