当前位置: 首页 > news >正文

OpenTelemetry Agent直接到Jaeger链路跟踪

OpenTelemetry Agent直接到Jaeger链路跟踪

目录

  1. 方案概述
  2. 环境准备
  3. 架构设计
  4. Jaeger容器配置
  5. Spring Boot应用配置
  6. 部署步骤
  7. 验证测试
  8. 故障排除
  9. 与现有方案对比
  10. 维护建议

方案概述

技术目标

实现OpenTelemetry Java Agent直接发送traces数据到Jaeger,使用Jaeger原生接收器,并将数据持久化存储到Elasticsearch,提供专业的链路跟踪可视化界面。

核心优势

  • 简化架构:去除OpenTelemetry Collector中间层,减少故障点
  • 专业UI:Jaeger提供专业的链路跟踪分析界面
  • 原生协议:使用Jaeger原生导出器,性能更优
  • 开箱即用:无需复杂的Elasticsearch索引模板配置
  • 自动发现:自动生成服务拓扑图和依赖关系

环境准备

系统要求

  • 操作系统: Windows 11 + Docker Desktop
  • Java版本: Java 17 JDK
  • Elasticsearch: 8.14.3 (HTTP模式)
  • Jaeger: 1.74.0 (All-in-One容器)
  • opentelemetry-javaagent.jar 最高到 1.32.1(包含) 版本支持直接用 Jaeger exporter

必需文件

D:/soft/
├── opentelemetry-javaagent.jar           # OpenTelemetry Java ,Agent
└── springboot3.jar                       # Spring Boot应用JAR包

架构设计

整体架构图

┌─────────────────┐    Jaeger Native     ┌─────────────────┐
│  Spring Boot    │    Protocol          │     Jaeger      │
│  Application    │─────────────────────→│   All-in-One    │
│  (Port: 9013)   │  :14268/api/traces   │   (Docker)      │
└─────────────────┘                      └─────────────────┘││ ES Client API▼┌─────────────────┐│  Elasticsearch  ││ (192.168.3.4:   ││     9200)       ││   Traces存储     │└─────────────────┘▲│┌─────────────────┐│   Jaeger UI     ││(localhost:16686)││ 链路追踪可视化     │└─────────────────┘

数据流说明

  1. 应用层: Spring Boot应用集成OpenTelemetry Java Agent
  2. 传输层: 使用Jaeger原生协议直接发送traces数据
  3. 收集层: Jaeger All-in-One容器接收和处理traces
  4. 存储层: Elasticsearch持久化存储traces数据
  5. 展示层: Jaeger UI提供专业的链路跟踪分析界面

架构优势对比

特性 原架构 (Agent→Collector→ES) 新架构 (Agent→Jaeger→ES)
架构层次 3层(复杂) 2层(简单)
故障点 Collector单点故障 减少故障点
配置复杂度 高(需要复杂配置) 低(开箱即用)
UI体验 Kibana通用查询 专业链路跟踪UI
服务发现 手动构建 自动生成
性能分析 复杂聚合查询 内置性能指标
维护成本

Jaeger容器配置

推荐配置 - gRPC协议(高性能)

docker run -d --name jaeger \-p 16686:16686 \-p 14250:14250 \-p 14269:14269 \-e SPAN_STORAGE_TYPE=elasticsearch \-e ES_SERVER_URLS=http://192.168.3.4:9200 \-e ES_USERNAME=elastic \-e ES_PASSWORD=YkH8KP_iCJCKMMVjM1+X \-e ES_TLS_ENABLED=false \jaegertracing/all-in-one:latest

备选配置 - HTTP协议(兼容性好)

docker run -d --name jaeger \-p 16686:16686 \-p 14268:14268 \-p 14269:14269 \-e SPAN_STORAGE_TYPE=elasticsearch \-e ES_SERVER_URLS=http://192.168.3.4:9200 \-e ES_USERNAME=elastic \-e ES_PASSWORD=YkH8KP_iCJCKMMVjM1+X \-e ES_TLS_ENABLED=false \jaegertracing/all-in-one:latest

端口映射说明

gRPC配置端口
  • 16686:16686 - Jaeger UI Web界面
  • 14250:14250 - Jaeger gRPC接收器端口(推荐,高性能)
  • 14269:14269 - 健康检查和管理端口
HTTP配置端口(备选)
  • 16686:16686 - Jaeger UI Web界面
  • 14268:14268 - Jaeger HTTP接收器端口(兼容性好)
  • 14269:14269 - 健康检查和管理端口

环境变量配置

存储配置
  • SPAN_STORAGE_TYPE=elasticsearch - 使用Elasticsearch作为后端存储
  • ES_SERVER_URLS=http://192.168.3.4:9200 - Elasticsearch服务器地址
  • ES_TLS_ENABLED=false - 禁用TLS(因为ES使用HTTP协议)
认证配置
  • ES_USERNAME=elastic - Elasticsearch用户名
  • ES_PASSWORD=YkH8KP_iCJCKMMVjM1+X - Elasticsearch密码

关键特性

  • 协议选择: 支持gRPC(高性能)和HTTP(高兼容性)两种协议
  • 原生接收器: 使用Jaeger原生接收器,无需OTLP协议转换
  • 自动索引管理: Jaeger自动在ES中创建和管理索引结构
  • 高效存储: 专为链路跟踪数据优化的存储格式

Spring Boot应用配置

推荐配置 - gRPC协议(高性能)

java -Dspring.profiles.active=local \-javaagent:D:/soft/opentelemetry-javaagent.jar \-Dotel.service.name=springboot3 \-Dotel.traces.exporter=jaeger \-Dotel.exporter.jaeger.endpoint=http://localhost:14250 \-Dotel.exporter.jaeger.protocol=grpc \-Dotel.metrics.exporter=none \-Dotel.logs.exporter=none \-jar D:/soft/springboot3.jar

备选配置 - HTTP协议(兼容性好)

java -Dspring.profiles.active=local \-javaagent:D:/soft/opentelemetry-javaagent.jar \-Dotel.service.name=springboot3 \-Dotel.traces.exporter=jaeger \-Dotel.exporter.jaeger.endpoint=http://localhost:14268/api/traces \-Dotel.metrics.exporter=none \-Dotel.logs.exporter=none \-jar D:/soft/springboot3.jar

关键参数说明

OpenTelemetry基础配置
  • -javaagent:D:/soft/opentelemetry-javaagent.jar - 指定OpenTelemetry Java Agent路径
  • -Dotel.service.name=springboot3 - 定义服务名称
Jaeger导出器配置
  • -Dotel.traces.exporter=jaeger - 核心配置:使用Jaeger原生导出器
  • -Dotel.exporter.jaeger.endpoint=http://localhost:14250 - Jaeger接收端点(gRPC推荐)
  • -Dotel.exporter.jaeger.protocol=grpc - 使用gRPC协议(性能更优)
备选HTTP配置
  • -Dotel.exporter.jaeger.endpoint=http://localhost:14268/api/traces - HTTP接收端点(兼容性好)
http://www.dtcms.com/a/520608.html

相关文章:

  • Monorepo系列:Pnpm Workspace 搭建 Monorepo
  • 有没有专门做字体排版设的网站实时热点新闻事件2021
  • 【开题答辩全过程】以 基于BS模式的图书馆管理系统为例,包含答辩的问题和答案
  • Java循环结构全解析:从基础用法到性能优化(含经典案例)
  • C 位域:核心地带,引领技术前沿
  • 鹤壁专业做网站公司前端培训心得
  • python-87-Pyinstaller打包在没有安装Python的电脑上运行
  • 海北高端网站建设多少钱网站后台登陆密码破解
  • CrewAI 核心概念(Knowledge)篇
  • 预检查和表单提交
  • [MySQL] 数据库设计
  • 数据处理像搭乐高?详解 RAGFlow Ingestion Pipeline
  • 模仿网站属于侵权吗做网站视频是什么专业
  • 汽车转向控制 / 线控转向介绍——控制技术——智能驾驶专栏
  • 基于KSP密钥管理系统的汽车 ECU JTAG 调试接口动态授权与安全管控
  • 世界经理人网站手机版学生网页网站制作软件大全
  • 企业网站带新闻发布功能的建站wordpress文章显示颜色
  • SpringBoot-Web开发之Web原生组件注入
  • Spring Cloud - Spring Cloud 本地配置(本地配置概述、本地配置实现)
  • 青岛商城网站建设长春建设平台网站的公司
  • 这几年做网站怎么样wordpress adsense主题
  • 做视频网站服务器怎么选择12306网站开发时间
  • 如何做家教网站赚钱如何申请国外网站
  • 淄博做网站建设云南网站建设方案
  • 实用指南--多账号矩阵防封控
  • 前端框架Vue(Vue 的挂载点与 data 数据对象)
  • pycharm 远程连接服务器添加github copilot
  • 金融智能体的技术底座解析:AI Agent如何实现“认知+执行”闭环?
  • PostgreSQL 选择数据库:深入解析与最佳实践
  • 木材模板.网站黄山网站建设推广