Observability 2.0
Observability 2.0 是业内对一种遥测数据思路的称呼,不是产品分类。它通常指保留宽事件,让使用者不必在采集数据时就预先确定所有分析问题。
GreptimeDB 的数据模型同时支持原生 metrics、logs、traces 和宽事件。本页只讨论通常与 Observability 2.0 相关的宽事件做法。GreptimeDB 支持这种实践,但不要求用户采用;metrics、logs、traces 仍然是一等能力。
三支柱的局限
Metrics、logs、traces 仍然是有效的抽象。问题不在三类信号本身,而在它们经常被不同系统隔开:
- 上下文分散:信号分开存储和查询时,需要额外操作才能把告警、日志和 trace 对应起来。
- 采集时就要确定 问题:预聚合 metrics 能高效回答已知问题,但无法找回没有记录的维度。
- 结构丢失:纯文本日志里往往包含有用字段,事后解析和索引的成本较高。
共同的 schema 概念、存储基础和查询工具可以减少这些边界。宽事件是保留更多上下文的一种做法,不是所有 metrics、logs、traces 的替代品。
宽事件
宽事件(wide event)是一条包含较多字段的结构化记录,用于描述一次操作或业务事件。它可以带有用户 ID、session ID、trace ID、请求属性等高基数字段。
什么是宽事件?
例如,一次 POST 请求对应的事件可以包含用户与订阅信息、数据库与缓存操作、HTTP 属性、执行结果和耗时:
{
"timestamp": "2026-08-12T08:15:30Z",
"method": "POST",
"path": "/articles",
"service": "articles",
"outcome": "ok",
"status_code": 201,
"duration": 268,
"user": {
"id": "fdc4ddd4-8b30-4ee9-83aa-abd2e59e9603",
"subscription": { "plan": "free", "trial": true }
},
"db": {
"query": "INSERT INTO articles (...)"
},
"cache": { "operation": "write" },
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
只采集确实有用、适合留存的上下文。凭证、个人数据、查询参数、prompt 和请求正文可能需要在写入前过滤或脱敏。
从宽事件派生不同视图
在这种思路下,一条宽事件可以形成多种视图:
- 按状态和时间窗 口聚合成 metric;
- 作为包含事件详情的日志检索;
- 通过 trace ID 和 span ID 展示为 trace 或 span。
这是一种分析模型,并不要求所有信号都从原始事件还原。固定聚合通常更适合原生 metrics;调用关系和延迟分析仍然适合标准 trace 数据。
AI Agent 为什么需要细粒度上下文
观测 AI 应用时,往往需要关联模型请求、响应、工具调用、延迟、token 用量、评估结果和应用状态。如果 instrumentation 采集了这些内容,结构化事件可以把上下文保留下来,供后续查询。
代价也同样直接:prompt 和响应可能很大或包含敏感信息,session ID 会带来高基数,不完整的 instrumentation 只能得到不完整的上下文。字段、留存周期和脱敏规则应由实际分析需求决定。
表语义层可以说明每张表代表的内容,让 agent 和工具不必根据列名猜测 signal type、source 或 metric type。