OpenTelemetry #
OpenTelemetry 是一套 API、SDK 和工具的集合。您可以使用它来检测、生成、收集和导出遥测数据(指标、日志和跟踪),以帮助您分析软件的性能和行为。 OpenTelemetry 现已在多种语言中普遍可用,适用于生产环境。
OpenTelemetry(也被称为OTel)是一个供应商中立的开源可观察性框架,用于检测、生成、收集和导出遥测数据,如跟踪、指标和日志。
作为行业标准,OpenTelemetry 受 40 多个可观察性供应商支持,并被许多库、服务和应用程序集成,并被众多最终用户采用。
部署 #
部署架构 #
OpenTelemetry Collector由OpenTelemetry K8S Operator管理,并以DaemonSet的形式部署在Kubernetes集群的各个节点上。即每个K8S节点上都有一个OTEL Collector Agent进程负责收集并处理本节点上微服务Pod实例的Logs, Traces, Metrics数据,并将Logs, Traces数据发送到后端的日志存储(Loki或ES)、Traces数据存储(Jaeger或Tempo),同时将Metrics数据暴露给Prometheus。
Helm Chart #
- opentelemetry-operator helm chart - opentelemetry-operator-x.y.z.tgz
- 升级向导
- 镜像
ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:x.y.z
- opentelemetry-collector-releases
otel/opentelemetry-collector-contrib:x.y.z
otelcol-contrib_x.y.z_linux_amd64.tar.gz
opentelemetry-operator 0.56版本之后的helm chart会负责自动安装下面3个CRD:
1kubectl get crd -o custom-columns=NAME:.metadata.name,KIND:.spec.names.kind \
2 -l app.kubernetes.io/name=opentelemetry-operator
3
4NAME KIND
5instrumentations.opentelemetry.io Instrumentation
6opampbridges.opentelemetry.io OpAMPBridge
7opentelemetrycollectors.opentelemetry.io OpenTelemetryCollector