首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >观测性缺口:为什么你的监控策略不足以应对未来

观测性缺口:为什么你的监控策略不足以应对未来

原创
作者头像
点火三周
修改2025-09-03 11:04:37
修改2025-09-03 11:04:37
1900
举报
文章被收录于专栏:Elastic Stack专栏Elastic Stack专栏

去过伦敦的人都听过地铁里的提醒:“Mind the gap”。在可观测性(Observability)领域,也正出现一条“裂缝”——系统复杂度火箭般上升,而我们的监控/可观测能力却在原地踏步。我就经历过这种痛苦:曾经,分布式系统一切顺畅,告警量可控,仪表盘一目了然,出故障也能在合理时间内定位问题。

但 3–5 年后,一切变了:我们上了 Kubernetes,拥抱了微服务,甚至还加了些 AI 驱动的功能。结果呢?遥测数据激增,告警疲劳加剧,跨服务排障压力山大——这就是 “observability gap”。本文将讨论这条裂缝为何出现、为何越拉越大,以及如何用现代可观测性手段把它补上。

复杂度火箭已然升空

先直视现实:基础设施的规模与复杂度并非线性增长,而是指数级。过去是单体应用跑在物理服务器上,如今是数百个微服务在 K8s 集群里自动伸缩,连 AI 算法都能自主做伸缩决策。

这股趋势短期内不会停止。AI 辅助编码让迭代更快,Kubernetes 也在向预测式伸缩迈进——我们的基础设施不仅复杂,而且是“动态复杂”。

而我们的可观测性工具?大多停留在“我知道自己有几台服务器,可以手动对时间戳做日志和指标关联”的时代。

Observability Gap part 2
Observability Gap part 2

遥测数据爆炸(采样并非银弹)

规模变大后,最先感受到的往往是观测费用飙升。常见的“止血”方式是采样:降采样指标、头采样(head-sample)链路、去重日志……这些技术有其价值,但与未来的方向背道而驰。

Data Management: Reduce fidelity of data
Data Management: Reduce fidelity of data

要知道,ML 和 AI 系统最需要的就是丰富、上下文完整的数据。你采样掉的“噪声”往往恰是用来发现模式、预测故障的信号。与其问 “怎样收集更少的数据?”,不如问 “怎样以可承受的成本存储并处理全部数据?”

现代化存储架构(对象存储 + ZStandard 等高效压缩)让“既要全量留存,又要成本可控”成为可能。关键是:把相关数据尽快归档到便宜的存储层,同时保持可查询性。

Data Management: Make Storage Cheaper
Data Management: Make Storage Cheaper

当然,并非所有应用都需要全量保留。第一步是识别关键业务流,优先保证它们的遥测数据“最富态”。不要为了省钱一刀切采样;该用手术刀,就别抡大锤。

OpenTelemetry (OTel):现代可观测性的地基

如果让我选职业生涯里最具变革性的可观测性技术,那一定是 OpenTelemetry。它并不“炫酷”,却从根本上解决了多年顽疾。

在 OTel 之前,埋点=绑定厂商。想从供应商 A 换到 B?重写全量埋点吧。想把同一份遥测发到多个后端?维护多套 Agent 配置吧。

What is OpenTelemetry
What is OpenTelemetry

OTel 彻底改变了局面,核心价值有三:

  1. Vendor Neutrality(去厂商化):同一段 OTel SDK 代码,可发送到任意兼容后端。
  2. Semantic Conventions(语义规范):日志、指标、链路、Profile、wide-events 等共享统一元数据,如 service.name、resource.*、trace context。
  3. Auto-Instrumentation(自动埋点):主流语言/框架几乎都能“零代码”采集丰富遥测。

此外,手工埋点也变得“投入少、收益大”。只需一行:

代码语言:python
复制
# 在认证服务中
baggage.set_baggage("customer.id", "alice123")

从此,customer.id 会沿着调用链自动流转:数据库查询、日志、链路……全系统都能按 customer.id 检索。

趋势很明确:数年内,OTel 会像今天的 Kubernetes 一样“无处不在”。运行时默认集成,云厂商托管 OTel Collector,框架开箱自带埋点。

Correlation:让一切顺滑的“神奇调料”

Why do we need correlation?
Why do we need correlation?

收到高延迟告警 → 看指标仪表盘,95th 百分位飙升 → 切到 Trace,发现某些请求变慢 → 再去日志系统,看到同一时间段的报错……接下来,乐趣来了:哪个日志对应哪个 Trace?它们跟那条指标有没有关系?

这场“上下文切换梦魇”正是 Correlation 要消灭的。当遥测共享标识(如 Trace ID、统一 service.name、同步时间戳、customer.id 等),你就能无缝在不同信号间跳转而不丢上下文。

更进一步,按 customer.id 查日志、Trace、指标,可秒级定位用户旅程;按 deployment.version 过滤全栈数据,可瞬间评估一次发布影响。

How does this work?
How does this work?

连指标也能关联:用 OTel Exemplars。以 Python 为例:

代码语言:python
复制
# 开启基于 Trace 的 metrics exemplars
from opentelemetry.sdk.metrics import (
    ExemplarFilter,
    ExemplarReservoir,
)

exemplar_filter = ExemplarFilter(trace_based=True)

exemplar_reservoir = ExemplarReservoir(
    exemplar_filter=exemplar_filter,
    max_exemplars=5
)

这样,指标样本就能“带上”对应 Trace,真正打通信号链。

真的需要“Correlation”吗?

听起来不错,但你可能想:既然要大费周章做 Correlation,干脆把数据合成一种结构,不就无需再“对应”了?业界近来热议的 wide-events 正是如此。

wide-events 本质上是“超结构化日志”:把指标、链路、日志数据塞进同一条宽表记录。好处显而易见:

  1. 查询、聚合无需 Join,性能与成本更优。
  2. 信息密度高,对 AI 友好——单条记录内就有足够上下文,LLM 不必跳转多库。

LLM 最爱“上下文”,一次端上“全餐”,排障耗时大减。

AI 驱动的排障

现代可观测性:从「减少告警噪声」到「加速问题调查」

过去几年,可观测性(Observability)工具在「告警疲劳」和「仪表盘泛滥」这两个痛点上已经有了长足进步。

• 通过告警关联(alert correlation)等技术,重复噪声被大量消除。

• SRE 团队更倾向于以 SLO 为中心,而不是单纯依赖底层技术指标。

因此,仅就「收到合适的告警并定位到问题」这一阶段而言,SRE 的工作体验已经好了很多。

调查阶段才是时间黑洞

然而,告警只是战争打响的一声枪响。真正耗时、且最容易让人焦虑的环节,是在事故期间进行的 Root Cause 调查。

当生产环境出现故障,SRE 的认知负荷往往达到峰值,时间压力也空前巨大。

好消息是:

  1. 如果我们已经通过「关联」「加富数据(enrichment)」和「Wide-Event」等方式,把原始数据清洗、整合并以全量保真(full-fidelity)的形式存储;
  2. 那么,最新的 LLM 与 Agentic AI 就可以在调查阶段为我们节省大量时间。

LLM 的价值:用上下文驱动推理

LLM 的推理效果高度依赖上下文。如果能够一次性喂给它尽可能多、且结构化良好的上下文,它就能用更少的提示(prompt)完成更深入的分析,从而压缩调查时间。下面通过一个示例来说明。

场景 1:只有一条基础日志

假设我们只有下面这条非常简陋的日志。LLM 唯一能得出的结论是「数据库挂了」。

一条基础日志
一条基础日志

场景 2:使用 Wide-Event 的丰富日志

现在看看 Wide-Event 视角下的同一事件。注意以下几点改进:

  1. 我们只需要查看一个节点的日志——承担该请求的节点。
  2. 无需额外翻找下游日志;但如果确实要向下钻取,也仍然可以利用现成的 Correlation ID。

这些都大幅降低了 LLM 的思考难度:它不必再自己去拼接多条日志、Trace 和 Metrics。

Wide-Event 日志
Wide-Event 日志

进一步加富:多维上下文

除 Wide-Event 本身外,如果还能把以下信息一并提供给 LLM,分析效率会更高:

字段

LLM 的用法

trace_id / parent_span_id

线程级关联,无需解析文本

status.code / error.*

精准失败类型

db.*

直接暴露数据库原因

user.id / cloud.region

立刻算出爆炸半径

deployment.version

快速关联新版本

结构化 ≠ 舍弃自由文本。原始 error message 仍是宝贵上下文;LLM 对非结构化文本解读能力强,正好双剑合璧。

未来三大趋势

  1. OTel 语义规范成为 wide-events 标准:像今天写日志一样自然。
  2. Logs + LLM = “自动富化”日志:提高数据质,缩短排障。
  3. AI 必不可少:系统复杂度已超人脑极限,AI 辅助将成标配。

及早拥抱 OTel、丰富可观测数据、试水 AI 调试的团队,将在未来竞争中占据主动。

下一步行动

  1. 审视日志:信息够丰富吗?LLM 能补足哪些上下文?
  2. 试水 OTel:新服务先用 OTel & semantic conventions 产出 wide-events。
  3. 添“高价值”上下文:customer.id、session.id、deployment.version …… 少量字段即可极大提升排障效率。
  4. 换“存储思维”:别再盲目采样,研究对象存储 + 压缩等现代方案,为关键服务保留全量数据。

复杂度火箭已起飞,唯有主动进化,才能睡个好觉。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 复杂度火箭已然升空
  • 遥测数据爆炸(采样并非银弹)
  • OpenTelemetry (OTel):现代可观测性的地基
  • Correlation:让一切顺滑的“神奇调料”
  • 真的需要“Correlation”吗?
  • AI 驱动的排障
  • 现代可观测性:从「减少告警噪声」到「加速问题调查」
    • 调查阶段才是时间黑洞
    • LLM 的价值:用上下文驱动推理
      • 场景 1:只有一条基础日志
      • 场景 2:使用 Wide-Event 的丰富日志
      • 进一步加富:多维上下文
    • 未来三大趋势
    • 下一步行动
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档