可观测性工具选择与分布式追踪全解析
1. 工具选择原则
在可观测性工具的选择上,追踪(Tracing)和日志(Logging)、指标(Metrics)各有优势。只要有可能,追踪通常比日志更可取,因为它能包含相同的信息,并且具有更丰富的上下文。当追踪和指标的功能重叠时,应优先使用指标,因为首要任务是了解系统何时不可用,后续再添加额外的遥测数据以帮助解决问题。添加追踪时,可从存在定时指标检测的地方开始,因为使用相同标签的超集进行追踪可能也很有价值。
2. 分布式追踪的组成
一个完整的分布式追踪是由多个单独的跨度(Spans)组成的集合,这些跨度包含了在满足最终用户请求时每个接触点的性能信息。这些跨度可以组装成一个“冰柱”图,展示每个服务所花费的相对时间。
跨度包含一个名称和一组键值标签对,这与指标检测类似。许多指标命名的原则同样适用于分布式追踪。例如,如果一个追踪跨度名为 http.server.requests ,那么标签可能会标识区域(从公共云的角度)、API 端点、HTTP 方法、响应状态码等。保持指标和追踪命名的一致性是实现遥测数据关联的关键。
与指标不同的是,Zipkin 跨度数据模型包含服务名称的特殊字段(用于 Zipkin 依赖关系视图,显示服务图),这相当于用应用程序名称标记指标,但大多数指标后端不会为这个概念预留标签名称。跨度名称也是 Zipkin 数据模型中的一个定义字段,两者都被索引以便查找,因此应避免跨度和服务名称的无界值集基数。
在存储方面,指标按唯一 ID(名称和键/值标签的组合)逻辑存储在行中,额外的测量值作为样本存储在现有行中,其成本是 ID 总数和每个 ID
超级会员免费看
订阅专栏 解锁全文
51

被折叠的 条评论
为什么被折叠?



