全部文档

数据模型与信号

Diting 的数据模型围绕一条时间线组织。所有信号共享时间戳与关联键,可以在页面之间互相跳转。

六类信号

信号 来源 主要关联键
指标 主机、容器、服务、数据库 host_id、service、pod
日志 文件、容器、journald、syslog host_id、service、trace_id
链路 eBPF、OTLP trace_id、span_id
Profile 主机与运行时采样 host_id、pid
会话 浏览器 RUM session_id、trace_id
数据库 协议解析 trace_id、instance、statement

关联

一次请求的完整上下文由三个键串起来:

  • trace_id:跨服务、跨主机的调用链
  • session_id:浏览器会话
  • host_id:主机身份

从链路可以跳到日志和会话,从会话可以回到链路和录像。跳转不丢时间范围与筛选条件。

写入路径

agent → gateway → Kafka → collector → ClickHouse。gateway 负责鉴权与限流,Kafka 负责削峰,collector 负责列式写入。

数据库语句的摘要走独立 topic db-query-digests,写入 diting.dwd_db_query_digest。

保留

不同信号可以配置不同保留期。热数据用于即时查询,冷数据用于回溯。具体天数由部署时的存储规划决定。

时钟

跨主机比较时间之前,先确认 NTP 同步。Diting 会做时钟校正,但校正不能替代正确的时间源。

OTLP

已有 OpenTelemetry 链路的团队可以直接发送到 gateway 的 OTLP 入口,不需要部署 agent。两种来源的数据使用同一套关联键。

相关文档:链路与拓扑、API 与 OTLP。