下图Peter Bourgon在 2017 Distributed Tracing Summit后发表的一篇博文,简洁扼要地介绍了Metrics、Tracing、Logging三者的定义和关系。这三种数据在可观察性中都有各自的发挥空间,每种数据都没办法完全被其他数据代替。
Tracing:提供了一个请求从接收到处理完毕整个生命周期的跟踪路径,通常请求都是在分布式的系统中处理,所以也叫做分布式链路追踪。
Metrics:提供量化的系统内/外部各个维度的指标,一般包括Counter、Gauge、Histogram等。
Logging:提供系统/进程最精细化的信息,例如某个关键变量、事件、访问记录等。
OpenTelemetry的终态就是实现Metrics、Tracing、Logging的融合,作为CNCF可观察性的终极解决方案。
这三者在可观察性上缺一不可:基于Metrics的告警发现异常,通过Tracing定位问题(可疑)模块,根据模块具体的日志详情定位到错误根源,最后再基于这次问题调查经验调整Metrics(增加或者调整报警阈值等)以便下次可以更早发现/预防此类问题。
常规的故障定位如下所示,先是收到告警,然后查看监控大屏,发现某些指标异常,查看对应的日志,最后查看调用链,最终解决问题。
整个链路非常冗长,需要童鞋们登录到多个平台,综合各种信息才能解决问题。为此OpenTelemetry 这个项目的目标就是将这三种监控数据关联整合到一起。
这里的核心就是这个 OpenTelemetry collector,它能够将多种指标进行关联,比如我们可以将 日志和 监控 都打上相同的标签label,然后通过label 去关联查询。不过OpenTelemetry目前还处于发展的初期。目前Promethues、Loki等项目已经积极参与,未来还会有更多的项目支持OpenTelemetry。
页面更新:2024-05-15
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号