终极目标

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的关联。但这还是解决不了很多问题:

  1. 如何把Metrics和其他两者关联起来
  2. 如何提供更多维度的关联,例如请求的方法名、URL、用户类型、设备类型、地理位置等
  3. 关联关系如何一致,且能够在分布式系统下传播

在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的融合相关推荐

  1. Metrics, tracing 和 logging 的关系

    译者注 Peter Bourgon原作: Metrics, tracing, and logging 译者:吴晟 原作发表时间: 2017年2月21日 这是在OpenTracing和分布式追踪领域内广 ...

  2. Golang 微服务系列 go-kit(Log,Metrics,Tracing)

    go-kit Log & Metrics & Tracing 微服务监控3大核心 Log & Metrics & Tracing Log Log 模块源码有待分析(分析 ...

  3. SpringCloud(八) 微服务安全实战 Prometheus配置grafana可见性监控,ELK日志,pinpoint追踪(Tracing,Metrics,Logging)

    Metrics:按照时间维度聚合各个参数,以数字形式呈现出来(次高 -> 通过prometheus实现UI呈现) Logging:描述离散的,不连续的事件,以文字的形式呈现(重要 -> 通 ...

  4. 11|链路追踪:如何定制一个分布式链路跟踪系统?

    11|链路追踪:如何定制一个分布式链路跟踪系统 ? 你好,我是徐长龙,这节课我们讲一讲如何实现分布式链路跟踪. 分布式链路跟踪服务属于写多读少的服务,是我们线上排查问题的重要支撑.我经历过的一个系统, ...

  5. 《一文带你读懂:云原生时代业务监控》

    点击上方蓝字关注我们! 对业务来说,完备的应用健康性和数据指标的监控非常重要,通过采集准确的监控指标.配置合理的告警机制,我们能够提前或者尽早发现问题,并做出响应.解决问题,进而保证产品的稳定性,提升 ...

  6. 7.SpringCloud:Skywalking链路追踪和OpenTracing对接

    目录 一.概述 二.Skywalking介绍 三.内部传输协议 四.Skywalking服务端 五.Skywalking客户端 六.调整agent自带插件 七.定制化采集 方式A(customize- ...

  7. 【学习笔记】分布式追踪Tracing

    在软件工程中,Tracing指使用特定的日志记录程序的执行信息,与之相近的还有两个概念,它们分别是Logging和Metrics. Logging:用于记录离散的事件,包含程序执行到某一点或某一阶段的 ...

  8. 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 ...

  9. 当 .NET 5 遇上OpenTelemetry,会碰撞出怎样的火花?

    OpenTelemetry 介绍 我在之前的几篇文章都介绍了 OpenTelemetry, 你可以在这里找到 OpenTelemetry - 云原生下可观测性的新标准 深入研究.NET 5的开放式遥测 ...

  10. OpenTelemetry - 云原生下可观测性的新标准

    CNCF 简介 CNCF(Cloud Native Computing Foundation),中文为"云原生计算基金会",CNCF是Linux基金会旗下的基金会,可以理解为一个非 ...

最新文章

  1. Windows核心编程 第四章 进程(下)
  2. java网络编程(七)
  3. VC6 CImage 加载jpg png bmp
  4. 在nlog(n)时间里对单链表排序
  5. JavaScript get set方法 ES5 ES6写法
  6. ReactNative 使用SectionList时出现一个黄色警告VirtualizedList:missing keys for items解决方法
  7. 如何测试判断云服务器的稳定性?
  8. jsessionid的删除
  9. IGBT热模型基本原理及其建模方法
  10. MATLAB_图形学_形态学课程_5个车牌扣出车牌照片
  11. 解二元一次方程组程序
  12. 黑马程序员就业班第二天的总结以及自己的看法
  13. Animated详解
  14. CSP-J1 CSP-S1 第1轮 初赛 考前强化训练
  15. axis调用webservice不同参数的方法
  16. 基于WIFI定位的室内定位系统--WIFI室内定位--新导智能
  17. SAP 模块中文解释 英文全称
  18. ADRC自抗扰控制自学笔记(包含simulink仿真)(转载)
  19. input在python的意思_pythoninput是什么意思
  20. java面试之每天五题

热门文章

  1. 什么是CS、RS、ESD、EFT
  2. SSM高校疫情防控出入信息管理系统设计与实现.rar(论文+源码)
  3. 百度重度依赖者谈谈恶意点击
  4. Windows注册表下找不到指定路径,可能是注册表重定向问题。
  5. upnp 文件服务器,windows作为upnp服务器
  6. 淘宝官方订单API接口,商品分类属性
  7. springboot集成camunda
  8. Python3+Selenium3自动化测试 - 实例 - 登录QQ邮箱并自动发送邮件
  9. 人人都是产品经理——一切从Kick Off开始
  10. 《从零开始做运营(张亮)》读书笔记