🎀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引入的,是一种可以动态修改 ...
随机推荐
- Kotlin基础语法
- sqlserver grouping函数和with rollup的使用
--使用WITH ROLLUP 生成的结果集显示所选列中值的某一层次结构的聚合,GROUPING()函数判断是否根据当前字段进行了求和的行SELECT sjxm, (CASE WHEN GROUPIN ...
- 从拼积木到最长连续序列:一道别出心裁的数组题目|LeetCode 128 最长连续序列
LeetCode 128 最长连续序列 点此看全部题解 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中) 生活中的算法 你小时候一定玩过数字积木吧?一堆写着不同数字的积木块散落 ...
- shell 变量的运算、保存硬件信息脚本
变量的数学运算 方法一:expr ##加减乘除 [root@localhost ~]# num1=10[root@localhost ~]# num2=16[root@localhost ~]# ex ...
- P6108 [Ynoi2009] rprsvq 积分题解
给 EI 题解写注 qwq.. 化简方差: \[\frac{1}{n}\sum(a_i-\overline a)^2\\ =\frac{1}{n}(\sum a_i^2-2\overline {a}\ ...
- spring的事务管理有几种方式实现
一.事务的4个特性: 原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做,要么全部做. 一致性:数据不会因为事务的执行而遭到破坏. 隔离性:一个事务的执行,不受其他事务 ...
- 一键部署+限免体验!盘点如何在华为云上体验DeepSeek
本文分享自华为云社区<一键部署+限免体验!盘点如何在华为云上体验DeepSeek>,作者:华为云社区精选. 还在为DeepSeek深度思考出现"服务器繁忙"而头疼?华为 ...
- 解决微信小程序原生云开发退款报错“特约子商户商户号未授权服务商的产品权限”的问题
背景:微信小程序云开发支付没问题,退款时就会报这个错. 现象: 解决方法流程: 1.打开微信小程序开发者工具上面的云开发界面: 2.进入设置: 3.其他设置: 需要授权退款API权限,我这里已经授权了 ...
- DeepSeek文本和编程测试
2025年春节期间,能直面电影<哪吒2>锋芒的,也就只有号称"国运级"的大模型DeepSeek了. 在科技圈里,这句话也可以反过来说. DeepSeek为什么能爆火,自 ...
- donet 常用命令汇总......
dotnet new: 用于创建新的.NET项目. 示例:创建一个名为 "MyConsoleApp" 的控制台应用程序项目. dotnet new console -n MyCon ...