You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Spring Boot 3+OpenTelemetry Collector示例正常运行?

问题解答与排查建议

1. 示例使用的数据库

官方该示例默认使用MySQL,你手动启动PostgreSQL的操作与示例配置不匹配,可能导致遥测链路数据不完整,甚至Collector无法正常接收数据。

2. 是否需要使用docker-compose.yml

必须使用示例提供的docker-compose-otel.yml(而非基础版docker-compose.yml)。该配置文件已整合OpenTelemetry Collector、Jaeger(遥测数据可视化工具)、MySQL等依赖服务,手动单独启动数据库会破坏服务间的网络连通性,这也是你执行docker-compose down时提示网络资源占用的原因之一——手动启动的PostgreSQL容器可能仍挂载在该网络上。

3. 能否在浏览器查看遥测数据

可以。示例的docker-compose-otel.yml包含Jaeger服务,默认端口为16686,直接访问http://localhost:16686即可在浏览器中查看链路追踪、指标等遥测数据。

4. 异常排查与修复步骤

针对Collector无法正常接收数据、docker-compose网络占用问题,按以下步骤修复:

  • 停止并删除手动启动的PostgreSQL容器:
    docker stop <你的PostgreSQL容器ID>
    docker rm <你的PostgreSQL容器ID>
    
  • 强制清理docker-compose关联的网络与残留资源:
    docker-compose -f docker-compose-otel.yml down -v --remove-orphans
    
  • 重新启动完整的docker-compose服务栈:
    docker-compose -f docker-compose-otel.yml up -d
    
  • 验证Collector的OTLP/HTTP端点状态:
    用curl测试端点是否正常监听:
    curl -I http://localhost:4318/v1/traces
    
    返回200或405状态码说明端点正常。
  • 检查Spring PetClinic应用配置:
    确保应用配置文件(如application.properties)中,数据库配置指向docker-compose内的MySQL服务(而非手动启动的PostgreSQL),同时OpenTelemetry导出配置正确指向http://localhost:4318。

内容的提问来源于stack exchange,提问作者Kris Swat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:07:34