🎀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
结束
🎀OpenTelemetry探针介绍及使用的更多相关文章
- OpenTelemetry架构介绍
OpenTelemetry: 经得起考验的工具 摘自:https://blog.newrelic.com/product-news/what-is-opentelemetry/ 目录 OpenTele ...
- 【七】Kubernetes 探针介绍 - 存活、就绪探针案例测试
一.探针概述 探针是有 kubelet 对容器执行的定期诊断,并不是由 Master 节点发起的探测,而是由每一个 Node 所在的 kubelet 进行探测,这样可以减轻 Master 节点系统负载 ...
- 009.OpenShift管理及监控
一 资源限制 1.1 pod资源限制 pod可以包括资源请求和资源限制: 资源请求 用于调度,并控制pod不能在计算资源少于指定数量的情况下运行.调度程序试图找到一个具有足够计算资源的节点来满足pod ...
- 记一次k8s pod频繁重启的优化之旅
关键词:k8s.jvm.高可用 1.背景 最近有运维反馈某个微服务频繁重启,客户映像特别不好,需要我们尽快看一下. 听他说完我立马到监控平台去看这个服务的运行情况,确实重启了很多次.对于技术人员来说, ...
- 🏆【Java技术专区】「探针Agent专题」Java Agent探针的技术介绍(1)
前提概要 Java调式.热部署.JVM背后的支持者Java Agent: 各个 Java IDE 的调试功能,例如 eclipse.IntelliJ : 热部署功能,例如 JRebel.XRebel. ...
- Java探针技术-retransformclasses的介绍
retransformclasses void retransformclasses(class... classes) throws unmodifiableclassexception 重转换提供 ...
- .NET无侵入自动化探针原理和主流实现
前言 最近,我在微信公众号和博客园分享了一篇关于.NET微服务系统迁移至.NET 6.0的故事的文章,引起了许多读者的关注.其中,许多人对基于 OpenTelemetry .NET 的观测指标和无侵入 ...
- 聊聊并发(八)——Fork/Join框架介绍
作者 方腾飞 发布于 2013年12月23日 | 被首富的“一个亿”刷屏?不如定个小目标,先把握住QCon上海的优惠吧!2 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件分享 ...
- 开源APM系统skywalking介绍与使用
介绍 SkyWalking 创建与2015年,提供分布式追踪功能.从5.x开始,项目进化为一个完成功能的Application Performance Management系统.他被用于追踪.监控和诊 ...
- 深入浅出Java探针技术1--基于java agent的字节码增强案例
Java agent又叫做Java 探针,本文将从以下四个问题出发来深入浅出了解下Java agent 一.什么是java agent? Java agent是在JDK1.5引入的,是一种可以动态修改 ...
随机推荐
- 从Linux零拷贝深入了解I/O
转载&学习文章:从Linux零拷贝深入了解I/O 本文将从文件传输场景以及零拷贝技术深究 Linux I/O 的发展过程.优化手段以及实际应用. 前言 存储器是计算机的核心部件之一,在完全理想 ...
- 舞台已就位!坐等AI玩家集结!
舞台已就位!坐等AI玩家集结!
- Apache Camel系列(4)----Akka Camel
Akka是一个高性能,高容错的的分布式框架,并且对Camel也提供了很好的支持,下面创建一个Akka Camel的demo,运行环境:CentOS7 + IntelliJ + JDK8.这个demo分 ...
- 用DeepSeek写程序之一:编写在linux终端窗口右上角动态显示时间的c++程序
一. 简单需求 早前有个需求当SSH进入linux时,希望在终端窗口动太显示当前的时间,原来是用脚本解决的 while sleep 1;do tput sc;tput cup 0 $(($(tput ...
- 操作系统发展历史与Linux
操作系统发展历史与Linux 随着计算机技术的迅猛发展,操作系统作为计算机系统的核心软件,经历了从单一到多样.从封闭到开放的演变过程.从最初的批处理系统,到分时操作系统的兴起,再到个人计算机操作系统的 ...
- RabbitMQ(三)——简单模式
RabbitMQ系列 RabbitMQ(一)--简介 RabbitMQ(二)--模式类型 RabbitMQ(三)--简单模式 RabbitMQ(四)--工作队列模式 RabbitMQ(五)--发布订阅 ...
- npm i 下载太慢
1.在项目内部进入终端 2.输入:npm config set registry https://registry.npmmirror.com 修改npm下载地址为淘宝 3.然后再执行 npm i 进 ...
- Win10、Win11老游戏运行补丁(cnc-ddraw),适用于红色警戒、帝国时代等经典游戏
Win11.Win10老游戏运行补丁(cnc-ddraw),适用广泛,红色警戒(红警),直接复制到游戏目录,然后即可畅玩.再也不需要修改:管理员运行,兼容性运行,更改DPI.cnc-ddraw 可以修 ...
- WPF无边框的一个方案(保留默认窗口的拖动、阴影等效果)
使用 WindowStyle="None" AllowsTransparency="True" 的方式达成无边框的效果有很多无法忽视的缺陷,比如失去了拖动效果. ...
- 【自荐】Catime v1.0.4 一款贼好用的计时器
Github: https://github.com/vladelaina/Catime 仅1.3MB!!!!! 特点 极简设计: 透明界面.点击穿透.可调大小和位置.多语言支持 丰富字体: 47种字 ...