Files
nexus/wiki/concepts/OpenTelemetry.md

91 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "OpenTelemetry"
type: concept
tags: [DevOps, Observability, Cloud-Native, CNCF, AWS]
sources: [public-cloud-learning-sessions-observability-with-opentelemetry-20240402-160113, ctp-topic-67-cloud-native-observability-using-opentelemetry]
last_updated: 2026-04-27
---
# OpenTelemetry
**OpenTelemetry**OTel是云原生计算基金会CNCF的可观测性框架提供跨语言的统一遥测数据采集标准涵盖 Traces链路追踪、Metrics指标和 Logs日志三种信号。
## Core Components
| Component | Role | Description |
|-----------|------|-------------|
| **OTLP Protocol** | 标准化传输 | OpenTelemetry Protocol遥测数据的标准化传输格式 |
| **Language SDKs** | 应用集成 | 11 种语言提供统一 SDKJava/Python/Go/Node.js/.NET 等) |
| **Collector** | 数据处理管道 | 标准化和转换遥测数据,包含 Receivers/Processors/Exporters/Extensions |
| **Auto-Instrumentation** | 零侵入注入 | 自动检测应用语言并注入遥测代码,无需修改业务代码 |
## Three Signals Model三信号模型
可观测性依赖三种互补的遥测信号:
| Signal | 用途 | 特点 |
|--------|------|------|
| **Metrics** | 聚合统计 | CPU/内存/请求率等数值指标,适合告警和趋势分析 |
| **Logs** | 根因定位 | 离散的事件记录,包含时间戳和上下文,用于问题排查 |
| **Traces** | 全链路追踪 | 单一请求在分布式系统中的完整路径,每个 trace 包含多个 span |
## OpenTelemetry Collector Architecture
```
Receivers接收器→ Processors处理器→ Exporters导出器
↑ ↓
Extensions扩展 目标后端OpenSearch/Grafana/CloudWatch 等)
```
- **Receivers**接收数据AWS-specific 或开源标准)
- **Processors**:过滤和转换数据
- **Exporters**导出至后端AWS Native / Open Source / Third-party
- **Extensions**辅助功能SIGV 授权、健康检查)
## AWS Distribution for OpenTelemetry
AWS 提供的 OpenTelemetry 统一发行版,在 CNCF OpenTelemetry 基础上增加了 AWS 集成:
- **统一代理**:同时收集 Traces/Metrics/Logs无需分别部署多种 Agent
- **EKS Operator**:自动检测应用语言并创建预配置 Collector实现零侵入式自动注入
- **Pod 级 IAM**:通过 Pod Identity Associations 实现 Pod 级权限控制,无需修改 ServiceAccount
- **日志支持**:最新版本支持日志采集,完善了可观测性三信号覆盖
- **Managed Collector for Prometheus**:无服务器、无代理的 Prometheus 指标自动发现和抓取
## EKS Integration Pipeline
典型 EKS 环境下的端到端可观测性管道:
```
应用容器 (Auto-Instrumented by OTel SDK)
Fluent Bit (DaemonSet) → 采集容器日志
↓ (端口 55681)
OpenTelemetry Collector (Sidecar/Deployment)
↓ (OTLP)
Amazon OpenSearch Service / CloudWatch / Prometheus / Grafana
```
## Key Claims
- OpenTelemetry 是 CNCF 毕业项目,提供 vendor-agnostic厂商无关的统一可观测性方案
- 解决了微服务架构下不同组件使用不同 SDK 和工具的碎片化问题
- OTLP 是 OpenTelemetry 的标准化数据传输协议,所有主流可观测性后端均支持
- AWS Distribution for OpenTelemetry 简化了 AWS 环境(尤其是 EKS的部署复杂度
- 自动注入Auto-Instrumentation实现零侵入式集成无需修改业务代码
## Related Concepts
- [[ELK-Stack]]OpenTelemetry 常与 OpenSearch/Elasticsearch 配合作为日志后端
- [[Cloud-Monitoring]]:可观测性是云监控的核心组成部分
- [[Amazon-EKS]]OpenTelemetry 在 AWS EKS 环境下的典型部署场景
- [[Fluent-Bit]]EKS 环境中常用的日志采集器,与 OpenTelemetry 配合使用
- [[Grafana]]OpenTelemetry 常用的可视化后端
- [[Prometheus]]OpenTelemetry Metrics 的常用后端
- [[Observability可观测性]]OpenTelemetry 服务的核心目标
## Sources
- [[public-cloud-learning-sessions-observability-with-opentelemetry-20240402-160113]]
- [[ctp-topic-67-cloud-native-observability-using-opentelemetry]]