OpenTelemetry(OTel)是一个统一的可观测性框架,用于采集应用程序的日志、指标和链路追踪,并可将数据发送到不同后端进行存储和分析

概览

  • Logs: 应用程序日志
  • Traces:日志追溯码
  • Metrics:应用程序监控指标

流程图

flowchart LR
    A[应用程序] -->|OTel SDK| B[OTel Collector]
    B --> C[日志存储 Loki / ES]
    B --> D[指标存储 Prometheus]
    B --> E[链路追踪存储 Tempo / Jaeger]
    C --> F[可视化 & 查询 Grafana]
    D --> F
    E --> F

Otel SDK

要使用 Otel 需要在应用里嵌入对应语言的 SDK 来产生可观测数据, 导出到对应的 Collector

Collector

Collector:用于采集应用程序的 日志、指标和链路追踪,并可以统一处理和转发到不同后端

流行的 Collector

  • OpenTelemetry Collector(OTel Collector):官方推荐,支持多协议输入、处理和导出
  • Vector:高性能日志和指标采集器,支持多种后端
  • Fluentd / Fluent Bit:主要用于日志采集,也可与 OTLP 配合

Storage Backend

在 Otel 中,存储后端(Storage Backend) 是用于持久化存储并分析应用产生的可观测性数据的系统

实际生产中,一个存储后端可能只负责一种数据类型,也可能(如 ClickHouse)同时承载多种数据。

流行的存储后端

  • Logs (日志存储)

    • Loki
    • ClickHouse
    • Elasticsearch
  • Metrics (指标存储)

    • Prometheus
  • Traces (链路追踪)

    • Tempo
    • Jaeger
    • Zipkin

标签: none

添加新评论