🎀OpenTelemetry探针介绍及使用
💖简介
OpenTelemetry
(简称 Otel
)是由 CNCF
主导的云原生可观测性标准框架,用于统一采集、处理和导出分布式系统中的遥测数据(如追踪、指标、日志)。其核心目标是通过标准化协议和工具集,解决传统监控体系中数据碎片化的问题,提供跨语言、跨平台的无缝集。
📖官网
👉核心功能
-
追踪(
Traces
):记录应用程序内或跨多个服务的请求流。 -
指标(
Metrics
):捕获关于应用程序性能和运行状况的数据点。 -
日志(
Logs
):记录应用程序产生的日志信息。
⚡主要组件
-
API
:定义了采集遥测数据的标准接口。 -
SDK
:提供了实现API
的具体逻辑,包括配置、处理数据等。 -
Exporters
:将数据发送到外部系统,如Jaeger
、Zipkin
、Prometheus
等。 -
Collector
:可选组件,用来接收、处理和转发遥测数据。
🔥模式
-
手动插桩:开发者需在代码中显式添加遥测逻辑,适用于高度定制化场景。
-
自动插桩:通过探针自动注入遥测代码,无需修改应用代码,适用于快速集成,尤其支持
Java
、Go
等主流语言。
⭐无侵入式接入
🌟下载并配置Java Agent
- 下载
Agent
:从OpenTelemetry
官方仓库获取最新版opentelemetry-javaagent.jar
。 - 启动参数配置:在
Java
应用的启动命令中添加Agent
及相关参数:
java -javaagent:/path/to/opentelemetry-javaagent.jar \ -Dotel.service.name=my-java-app \ -Dotel.exporter.otlp.endpoint=http://otel-collector:4317 \ -jar my-app.jar
关键参数说明:
-javaagent
:指定Agent
路径。
otel.service.name
:定义服务名称。
otel.exporter.otlp.endpoint
:设置OpenTelemetry Collector
的OTLP
接收端点
🌟Kubernetes
环境自动注入
应用部署在Kubernetes
,可通过 OpenTelemetry Operator
自动注入探针:
- 安装
Operator
:
kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml
- 创建
Instrumentation CRD
:定义探针的全局配置
apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: java-instrumentation spec: sampler: type: parentbased_traceidratio argument: "1" java: env: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: "http://otel-collector:4317"
- 为
Pod
添加注解
annotations: instrumentation.opentelemetry.io/inject-java: "true"
Operator
将自动注入初始化容器及环境变量,实现探针加载
🌈高级配置
- 环境变量扩展:支持配置采样率、资源属性等
-Dotel.traces.sampler=parentbased_traceidratio \ -Dotel.traces.sampler.arg=0.1 \ -Dotel.resource.attributes=deployment.environment=prod
- 集成后端系统:通过
OpenTelemetry Collector
将数据导出到Jaeger
、Prometheus
等后端
💥优势
-
无侵入性:无需修改代码即可支持主流框架(如
Spring Boot
、gRPC
)的自动埋点。 -
灵活性:支持多协议(
OTLP
/gRPC
/HTTP
)和多后端(如阿里云
、Jaeger
)的数据导出。 -
跨语言支持:除
Java
外,还提供Go
、Python
、.NET
等语言的Agent
或SDK
结束
本文作者:丿似锦
本文链接:https://www.cnblogs.com/zktww/p/18698920
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步