可观测性 可视化实验室
用交互式 SVG 呈现分布式追踪、Metrics、日志聚合、OpenTelemetry 等云原生可观测性核心技术。八个模块,纯原生实现。
分布式追踪 Trace / Span
一个请求穿过多个服务形成 Trace,由嵌套的 Span 组成树结构。下方为调用链路瀑布图,点击 Span 高亮其调用路径,播放可见请求令牌沿时间轴流动。
Trace 详情
点击任意 Span 查看其服务、耗时与所属调用路径;点击“播放”观察请求沿时间轴依次激活各 Span。
Metrics 类型:Counter / Gauge / Histogram / Summary
四种核心指标类型的采集与聚合形态。Counter 单调递增、Gauge 自由波动、Histogram 分桶统计分布、Summary 计算分位数。切换类型观察实时形态。
Counter
Counter 只增不减(除非重启归零),适合请求数、错误数等累计量。PromQL 用 rate() 计算速率。
结构化日志聚合
JSON 结构化日志便于聚合检索。下方为日志流,可按级别过滤、全文检索。结构化字段使日志可被索引、关联 Trace ID 并驱动告警。
日志聚合
结构化日志把每条记录编码为 JSON,字段如 trace_id、level、service 可被 Loki / Elasticsearch 索引。全文检索匹配消息体,级别过滤快速定位 ERROR,trace_id 可反向跳转到追踪系统。
OpenTelemetry 统一遥测
OpenTelemetry 用统一 API/SDK 生成 Traces、Metrics、Logs 三支柱遥测数据,经 Collector 处理后导出到任意后端。播放观察一次请求同时产出三类信号。
三支柱统一
OpenTelemetry 用同一个 context(trace context / baggage)把三支柱关联起来:一条 Span、若干 Metric 数据点、若干 Log 记录共享同一 trace_id,可在后端交叉跳转。切换支柱高亮对应数据流。
采样策略:头部 vs 尾部
头部采样在 Trace 开始时按概率决定,简单但可能丢弃有价值的事故;尾部采样在 Trace 完成后根据错误/延迟等规则决策,能保留关键链路。拖动滑块调节采样率。
采样对比
头部采样对每个 Trace 独立掷骰,错误链路同样可能被丢弃;尾部采样在 Span 全部到达后决策,可优先保留含错误或高延迟的 Trace,显著提升事故可观测性。
服务地图 Service Map
从追踪数据自动推断服务拓扑。节点为服务,边为调用关系;边宽表示流量,颜色表示错误率。点击节点查看其上下游与延迟分布。
服务拓扑
点击节点查看该服务的入向/出向调用、P95 延迟与错误率。边宽按 QPS 缩放,颜色按错误率分级。Service Map 由 Span 的 parent/child 关系自动构建。
异常检测与 SLO / 错误预算
基于时间序列的异常识别,叠加 SLO 与错误预算消耗。调节阈值观察检测灵敏度,播放生成新数据并注入异常点。
异常检测 + 错误预算
SLO 定义目标可靠性(如 99.9%),错误预算 = 1 − SLO。当实际错误率消耗预算过快(burn rate 高)即触发告警。异常检测在序列偏离基线(均值 ± 阈值×σ)时标记。
告警策略:降噪 / 聚合 / 升级
多级告警(P0-P3)经去重、聚合、抑制降噪后路由。模拟告警风暴观察分组如何压缩通知量,超时未确认则升级到下一级值班人。
告警生命周期
原始告警进入路由后:①去重(相同标签合并)②聚合(同服务同时间窗合并)③抑制(高级别抑制低级别)④分组通知。未在 ack 超时内确认则升级。点击“触发风暴”观察降噪效果。