Skip to content

1.5 架构原则

学习目标

完成本节后,你将能够:

  1. 理解当前 repo 为什么向 v4 wide events 演进。
  2. 解释为什么列表视图和详情视图读不同形态的数据。
  3. 在修改数据模型时识别性能风险。

1.5.1 当前原则摘要

仓库内的 .agents/ARCHITECTURE_PRINCIPLES.md 给出了核心方向:

  • observation/event 是主要分析单位,trace 是相关性句柄。
  • 保留高基数上下文,方便探索 unknown unknowns。
  • 偏向宽事件,而不是后续再拼接 metrics/logs/traces。
  • 列表和聚合视图读 compact projection。
  • 大字段只在详情页或必要场景读取。
  • API contract 要有规模意识:时间窗口、字段选择、分页。

1.5.2 对代码结构的影响

这些原则直接解释了几个设计:

设计原因
events_full保留完整 input/output/metadata 和丰富上下文
events_core给列表和常见查询一个轻量投影
event-query-builder控制字段选择、排序、tenant filter
FilterState前端筛选语义需要能稳定 lower 到查询
ClickhouseWriter高吞吐写入需要批量、重试和错误处理

1.5.3 修改数据模型前的检查

问题为什么重要
这个字段是否属于宽事件决定是否进入 ClickHouse
列表页是否需要它决定是否进入 events_core
是否可能很大决定是否只存在 events_full 或 S3
是否用于过滤/排序决定是否要索引或列映射
是否跨租户必须带 project_id

下一节

Infra repo 阅读框架