了解可观察性指标:类型、黄金信号和最佳实践

作者:来自 Elastic Elastic Observability Team

可观察性指标提供了对应用程序、系统和基础设施的性能、行为和健康状态的洞察 ------ 使可观察性实践成为可能,这就是通过检查数据来了解系统内部状态的方式。随着组织不断收集越来越多的数据,可观察性指标是可观察性的重要遥测信号。

在现代应用程序开发中,可观察性是指从各种来源收集和分析遥测数据 ------ 日志指标追踪 ------ 以便深入了解在环境中运行的应用程序的行为。可观察性指标是帮助组织理解其运营并创建主动监控过程的遥测信号。

通过利用可观察性指标,组织可以全面了解其技术堆栈的性能,改善问题诊断和解决时间。有效使用时,可观察性指标能提供有价值的业务洞察,推动增长,并使组织能够专注于创新。

可观察性的三大支柱

可观察性的基础通常被描述为三大支柱:指标、日志和追踪。它们共同提供对系统性能和行为的关键可见性。随着技术的不断进步和可观察性需求的增加,第四个支柱正在出现:分析(profiles)。

指标

指标是从硬件、软件和网站收集的原始数字数据点。在衡量已知的已知情况下,指标用于监控资源使用、性能和用户行为。换句话说,指标告诉监控和可观察性团队他们的系统中发生了什么。

可观察性指标的核心类型

可观察性是一种实践,它为组织提供对其环境和运营的 360 度视图。为此,可观察性依赖于这些核心类型的指标:

  • 应用程序指标 :应用程序指标是由应用程序生成并与技术堆栈中的应用程序相关的遥测数据。一些常用的指标包括响应时间、吞吐量、请求率和错误计数。这些指标使工程师能够监控应用程序的性能和可用性。应用程序指标也用于应用程序性能监控(APM)

  • 系统指标 :系统指标,也称为基础设施指标,反映了硬件和操作系统的健康状况,包括像 Kubernetes 这样的关键组件。示例包括 CPU 使用率、磁盘 I/O、网络吞吐量、内存使用、实例正常运行时间、容器资源使用和服务可用性。这些指标提供了对云资源、虚拟机、容器和其他底层组件性能的洞察。

  • 业务指标:业务指标将技术和运营性能与业务结果联系起来。例如,像转化率、平均交易价值和用户留存率等指标帮助将系统性能与组织目标相关联。

一个有效的可观察性解决方案确保了可靠性、有效的资源分配、合规性和安全性。它还帮助规划容量、优化性能、改善用户体验并控制成本。核心指标使有效的可观察性成为可能,并最终实现数据驱动的决策,从而带来更好的业务成果。这些指标通常会被聚合并在仪表板中可视化,以进行实时性能监控。

日志

日志是由系统、应用程序、网络和基础设施生成的特定事件的带时间戳的条目。它们提供事件的详细信息和上下文,帮助工程师理解问题发生的原因。

网络设备、应用程序、操作系统、物联网设备和第三方应用程序会发出不同类型的日志,包括(但不限于):

  • 系统日志:包括连接尝试、错误和配置更改等事件。

  • 应用程序日志:记录软件更改、CRUD 操作、应用程序身份验证和其他事件,帮助诊断问题。

  • 网络日志:记录网络或设备上发生的事件的数据,包括网络流量、安全事件和用户活动。

日志以结构化非结构化格式记录,这代表了存储上的挑战。由于日志数据通常被孤立在各种系统中且未自动关联,它们也可能很难分类。

追踪

追踪是遥测信号,让工程师从用户会话的角度查看应用程序和服务。分布式追踪收集穿越分布式架构的请求的追踪数据。

追踪允许工程师监控和调试应用程序,发现瓶颈。换句话说,追踪告诉 DevOps 团队问题发生的位置。它们是主动监控的基础。通过分析追踪,工程师可以发现与特定问题相关的指标或日志,从而减少未来问题的发生。

例如,帮助识别慢速过程的追踪包括 API 查询、前端 API 流量、服务器间的工作负载以及内部 API 调用。

尽管指标、日志和追踪为用户提供了宝贵的应用程序和系统性能数据,但这些信号并不总是提供解决代码问题和性能调优所需的详细信息。这就是分析发挥作用的地方。

分析 - profiles

分析是收集和分析堆栈追踪,帮助识别与数据结构、代码可见性和内存分配相关的问题,涵盖内核和用户级别。

分析有助于在代码层面发现系统中的瓶颈,这是现代可观察性的另一个关键好处。OpenTelemetry 也正在将分析作为一种信号。因此,分析正在成为可观察性的第四个也是最新的支柱。

关键可观察性指标:SRE 团队的四个黄金信号

虽然每个组织的监控需求都独特,但某些可观察性指标是普遍重要的。这些指标在站点可靠性工程(SRE)社区中有时被称为四个黄金信号。

  • 延迟

    延迟衡量数据从一个点到另一个点所需的时间。延迟会反映潜在的性能问题。高延迟会通过增加加载时间、导致应用错误以及挑战用户预期,降低用户体验。

  • 流量

    流量指标跟踪应用程序处理的请求或交易的数量。它们帮助团队了解用户行为并预测扩展需求。

  • 错误

    错误指标提供对失败请求或操作的可见性。监控错误率并识别模式有助于解决重复发生的问题。

  • 饱和度

    饱和度指标指示系统接近其容量限制的程度。监控资源利用率可以确保工程师在性能受到影响之前主动解决瓶颈问题。

这四个黄金信号是有效可观察性实践的关键,因为它们提供了对 IT 系统健康状况和性能的洞察。当监控、关联和分析这些指标时,它们帮助 IT 团队获得可操作的洞察,从而使他们能够采取更积极的姿态,进行站点可靠性和性能监控。

下载电子书

实施可观察性指标的最佳实践

实施可观察性指标的主要挑战在于筛选噪声 ------ 许多信号会产生大量的遥测数据,而这些数据并非全部有用。此外,SRE 团队经常面临数据异构性问题。如何将各种不同类型的数据关联起来,以便更容易地进行故障排除?

从这些挑战中,我们可以确立一些实施可观察性指标的最佳实践。

  • 定义明确的目标:成功实施可观察性指标 ------ 并应对数据过载 ------ 从确定目标开始。定义这些目标时,问问自己需要这些指标告诉你什么。你不需要监控所有内容;你只需要监控对你的组织和系统至关重要的内容。

  • 使用开放标准为应用程序监控 :监控是从应用程序中生成和收集遥测数据的过程。为了避免在加装应用程序时受到供应商锁定的影响,可以考虑使用像 OpenTelemetry (OTel) 这样的供应商中立框架。OTel 提供了一个标准化框架,使你能够收集和比较来自多个来源的遥测数据。

  • 利用自动化:自动化数据收集、分析和警报,以减少手动操作并提高响应速度。

  • 定制可视化:为了实现你定义的目标,最好定制你的仪表板。默认的仪表板仅在一定程度上有用 ------ 自定义如何可视化你的环境是成功实现可观察性的关键。

使用 Elastic 的可观察性指标

Elastic 可观察性提供了一个统一的解决方案,用于收集、监控和分析整个技术堆栈中的可观察性指标。通过 Elastic 可观察性,你可以从任何来源收集、存储和可视化可观察性指标,并通过我们的 Search AI 平台加速问题解决。

Elastic 可观察性通过基于搜索的相关性、防止停机、无妥协的数据保留、提高操作效率和降低成本,以及面向未来的投资,帮助加速问题解决。借助一个开放的、优先支持 OTel 的解决方案,你可以在最广泛的数据源中获得快速、上下文相关和统一的洞察,并与不断发展的技术生态系统无缝集成。

了解更多关于 Elastic 的可观察性信息

本文中描述的任何功能或功能的发布和时机完全由 Elastic 决定。任何目前不可用的功能可能无法按时或完全交付。

原文:Understanding observability metrics: Types, golden signals, and best practices | Elastic Blog

相关推荐
老纪的技术唠嗑局11 分钟前
告别OpenClaw配置丢失——Mindkeeper内测版邀测
大数据·elasticsearch·搜索引擎
Elasticsearch16 分钟前
使用 Elasticsearch + Jina embeddings 进行无监督文档聚类
elasticsearch
勇哥的编程江湖3 小时前
flinkcdc streaming 同步数据到es记录过程
大数据·elasticsearch·flink·flinkcdc
曾阿伦3 小时前
Elasticsearch 7.x 常用命令备忘录
大数据·elasticsearch·搜索引擎
斯特凡今天也很帅4 小时前
Elasticsearch数据库专栏(二)DSL语句总结(更新中)
大数据·elasticsearch·搜索引擎
要记得喝水4 小时前
适用于 Git Bash 的脚本,批量提交和推送多个仓库的修改
git·elasticsearch·bash
二十七剑4 小时前
Elasticsearch的索引问题
大数据·elasticsearch·搜索引擎
A__tao12 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
A__tao14 小时前
Elasticsearch Mapping 一键生成 Proto 文件(支持嵌套 + 注释过滤)
大数据·elasticsearch·jenkins
Devin~Y14 小时前
高并发电商与AI智能客服场景下的Java面试实战:从Spring Boot到RAG与向量数据库落地
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag