OpenTelemetry技术选型

449 阅读2分钟

OpenTelemetry技术选型

简介

OpenTelemetry用于从应用程序收集数据。由著名的 OpenTracing、 OpenCensus 两个产品在 2019 年合并而来。它是一组工具、API和SDK集合,我们可以使用他们来检测、生成、收集和导出遥测数据(指标、日志和追踪),以帮助分析应用的性能和行为。

小知识点:调用链 (traces)、日志 (logs)、监控指标 (metrics),三者合称 Telemetry

OpenTelemetry包括可观测性的三个支柱:追踪、指标和日志

  1. 分布式追踪:一种跟踪服务请求在分布式系统中从开始到结束的方法
  2. 指标:对一段时间内活动的测量,以便了解系统或者应用程序的性能
  3. 日志是系统或者应用程序在特定时间点发生的事件的文本记录(目前不够成熟)

github社区:github.com/open-teleme…

特点:

截图 2024-01-02 15-57-05.png

  1. 开源的、数据采集标准和工具集合

  2. 受到可观测领域行业领导者的采用和支持

  3. 一个CNCF项目:即k8s云原生社区全面支持

  4. 与供应商无关的

  5. 成熟度:

    1. 多语言支持:几乎市面上所有的编程语言都支持,如java、C++、python、go、js、dotnet等

    2. 目前主要语言几乎都实现了trace和metrics;

    3. log目前主流语言也都实现了,如java,c++;

    4. 提供了侵入式和非侵入式的多种方法,支持自动埋点和手动埋点

      1. 需要业务透传对应的 header 信息(从入向请求中获取对应的 header 信息、并在出向请求中添加响应 header 信息)。
      2. Sidecar 自动向监控系统发送Span信息。

图片1.png

  1. 周边生态:与多种工具结合

    1. prometheus(metrics&alert)
    2. deepflow(trace&visual)
    3. jaeger(trace)
    4. zipkin(trace)
    5. skywalking(trace)
    6. loki(log)
    7. ...
  2. 社区活跃程度:仅次于k8s社区

  3. 大厂实践

    1. AWS:AWS X-Ray1
    2. Google Cloud:Google Cloud Trace1
    3. Microsoft Azure:Azure Monitor1
    4. Datadog:Datadog APM1
    5. New Relic:New Relic One1
    6. Splunk:Splunk Observability Cloud2
    7. 阿里云
    8. 腾讯云和腾讯游戏
    9. ....
  4. 工程实践成本

    1. 资料获取容易,社区网站上即可提供较为全面的文档支持
    2. 演示示例:www.bilibili.com/video/BV1bF…

架构:

OpenTelemetry.webp

主要包含了以下几个部分:

  • Instrumentation: 包含自动方式API 、SDK 方式接入 OpenTelemetry。
  • OTLP: OpenTelemetry 定义的传输协议。
  • OpenTelemetry Collector: 提供厂商无关的解决方案,用于实现 数据的接收(receive), 处理(process)和 输出(export)的功能。