Metrics、Tracing、Logging的融合
终极目标
OpenTelemetry的终态就是实现Metrics、Tracing、Logging的融合,作为CNCF可观察性的终极解决方案。
Tracing:提供了一个请求从接收到处理完毕整个生命周期的跟踪路径,通常请求都是在分布式的系统中处理,所以也叫做分布式链路追踪。
Metrics:提供量化的系统内/外部各个维度的指标,一般包括Counter、Gauge、Histogram等。
Logging:提供系统/进程最精细化的信息,例如某个关键变量、事件、访问记录等。
这三者在可观察性上缺一不可:基于Metrics的告警发现异常,通过Tracing定位问题(可疑)模块,根据模块具体的日志详情定位到错误根源,最后再基于这次问题调查经验调整Metrics(增加或者调整报警阈值等)以便下次可以更早发现/预防此类问题。
Metrics、Tracing、Logging融合的关键
实现Metrics、Tracing、Logging融合的关键是能够拿到这三者之间的关联关系.其中我们可以根据最基础的信息来聚焦,例如:时间、Hostname(IP)、APPName。这些最基础的信息只能定位到一个具体的时间和模块,但很难继续Digin,于是我们就把TraceID把打印到Log中,这样可以做到Tracing和Logging的关联。但这还是解决不了很多问题:
- 如何把Metrics和其他两者关联起来
- 如何提供更多维度的关联,例如请求的方法名、URL、用户类型、设备类型、地理位置等
- 关联关系如何一致,且能够在分布式系统下传播
在OpenTelemetry中试图使用Context为Metrics、Logging、Tracing提供统一的上下文,三者均可以访问到这些信息,由OpenTelemetry本身负责提供Context的存储和传播:
- Context数据在Task/Request的执行周期中都可以被访问到
- 提供统一的存储层,用于保存Context信息,并保证在各种语言和处理模型下都可以工作(例如单线程模型、线程池模型、CallBack模型、Go Routine模型等)
- 多种维度的关联基于Tag(或者叫meta)信息实现,Tag内容由业务确定,例如:通过TrafficType来区别是生产流量还是压测流量、通过DeviceType来分析各个设备类型的数据...
- 提供分布式的Context传播方式,例如通过W3C的traceparent/tracestate头、GRPC协议等
转载于:https://www.cnblogs.com/aguncn/p/11511758.html
Metrics、Tracing、Logging的融合相关推荐
- Metrics, tracing 和 logging 的关系
译者注 Peter Bourgon原作: Metrics, tracing, and logging 译者:吴晟 原作发表时间: 2017年2月21日 这是在OpenTracing和分布式追踪领域内广 ...
- Golang 微服务系列 go-kit(Log,Metrics,Tracing)
go-kit Log & Metrics & Tracing 微服务监控3大核心 Log & Metrics & Tracing Log Log 模块源码有待分析(分析 ...
- SpringCloud(八) 微服务安全实战 Prometheus配置grafana可见性监控,ELK日志,pinpoint追踪(Tracing,Metrics,Logging)
Metrics:按照时间维度聚合各个参数,以数字形式呈现出来(次高 -> 通过prometheus实现UI呈现) Logging:描述离散的,不连续的事件,以文字的形式呈现(重要 -> 通 ...
- 11|链路追踪:如何定制一个分布式链路跟踪系统?
11|链路追踪:如何定制一个分布式链路跟踪系统 ? 你好,我是徐长龙,这节课我们讲一讲如何实现分布式链路跟踪. 分布式链路跟踪服务属于写多读少的服务,是我们线上排查问题的重要支撑.我经历过的一个系统, ...
- 《一文带你读懂:云原生时代业务监控》
点击上方蓝字关注我们! 对业务来说,完备的应用健康性和数据指标的监控非常重要,通过采集准确的监控指标.配置合理的告警机制,我们能够提前或者尽早发现问题,并做出响应.解决问题,进而保证产品的稳定性,提升 ...
- 7.SpringCloud:Skywalking链路追踪和OpenTracing对接
目录 一.概述 二.Skywalking介绍 三.内部传输协议 四.Skywalking服务端 五.Skywalking客户端 六.调整agent自带插件 七.定制化采集 方式A(customize- ...
- 【学习笔记】分布式追踪Tracing
在软件工程中,Tracing指使用特定的日志记录程序的执行信息,与之相近的还有两个概念,它们分别是Logging和Metrics. Logging:用于记录离散的事件,包含程序执行到某一点或某一阶段的 ...
- 1.1、VIFB: A Visible and Infrared Image Fusion Benchmark(一个可见光与红外图像融合Benchmark)文章阅读
VIFB: A Visible and Infrared Image Fusion Benchmark CVPR2020 GitHub - xingchenzhang/VIFB: Visible an ...
- 当 .NET 5 遇上OpenTelemetry,会碰撞出怎样的火花?
OpenTelemetry 介绍 我在之前的几篇文章都介绍了 OpenTelemetry, 你可以在这里找到 OpenTelemetry - 云原生下可观测性的新标准 深入研究.NET 5的开放式遥测 ...
- OpenTelemetry - 云原生下可观测性的新标准
CNCF 简介 CNCF(Cloud Native Computing Foundation),中文为"云原生计算基金会",CNCF是Linux基金会旗下的基金会,可以理解为一个非 ...
最新文章
- Windows核心编程 第四章 进程(下)
- java网络编程(七)
- VC6 CImage 加载jpg png bmp
- 在nlog(n)时间里对单链表排序
- JavaScript get set方法 ES5 ES6写法
- ReactNative 使用SectionList时出现一个黄色警告VirtualizedList:missing keys for items解决方法
- 如何测试判断云服务器的稳定性?
- jsessionid的删除
- IGBT热模型基本原理及其建模方法
- MATLAB_图形学_形态学课程_5个车牌扣出车牌照片
- 解二元一次方程组程序
- 黑马程序员就业班第二天的总结以及自己的看法
- Animated详解
- CSP-J1 CSP-S1 第1轮 初赛 考前强化训练
- axis调用webservice不同参数的方法
- 基于WIFI定位的室内定位系统--WIFI室内定位--新导智能
- SAP 模块中文解释 英文全称
- ADRC自抗扰控制自学笔记(包含simulink仿真)(转载)
- input在python的意思_pythoninput是什么意思
- java面试之每天五题