如何在Mac上通过opentelemetry-java-instrumentation将Collector作为代理启动
OpenTelemetry Collector Mac 环境部署指南
是否需要本地构建Collector?
不需要手动编译构建,Mac系统下可直接通过预编译版本快速安装使用。
安装Collector
推荐优先使用Homebrew包管理器安装,操作最简单:
- 执行安装命令:
brew install open-telemetry/opentelemetry-collector/otelcol - 安装完成后执行
otelcol --version,输出版本号即说明安装成功
如果不想用Homebrew,也可以直接下载对应Darwin架构的官方预编译二进制包,解压后即可直接调用。
基础配置(适配Java Instrumentation代理)
Java Instrumentation代理默认通过OTLP gRPC协议向4317端口发送数据,你可以使用如下最小配置完成适配,新建config.yaml文件:
receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 exporters: logging: loglevel: info service: pipelines: traces: receivers: [otlp] exporters: [logging] metrics: receivers: [otlp] exporters: [logging] logs: receivers: [otlp] exporters: [logging]
该配置会让Collector接收4317端口的OTLP数据,并且将所有采集到的数据打印到日志中,适合测试验证使用。如果需要导出到Jaeger、Prometheus等其他观测后端,只需修改exporters部分添加对应配置即可。
同步启动Collector和Java应用
开发测试场景临时启动
- 先在一个终端窗口启动Collector:
otelcol --config ./config.yaml - 保持该窗口运行,另开终端窗口启动你的Java应用,挂载javaagent即可:
java -javaagent:替换为你的opentelemetry-javaagent.jar路径 -jar 你的应用jar包路径.jar
单脚本同步启动
可以写一个一键启动脚本,省去多窗口操作,新建start-with-otel.sh:
#!/bin/bash # 后台启动Collector,日志输出到otelcol.log文件 nohup otelcol --config ./config.yaml > otelcol.log 2>&1 & # 启动Java应用 java -javaagent:替换为你的opentelemetry-javaagent.jar路径 -jar 你的应用jar包路径.jar
给脚本添加执行权限:chmod +x start-with-otel.sh,后续直接执行./start-with-otel.sh即可同步启动两个组件。
长期使用配置自动启动
如果不需要每次都手动启动Collector,可以用Homebrew服务管理配置开机自启:
- 执行命令:
brew services start otelcol - 配置后Collector会在开机时自动后台运行,启动Java应用时无需额外操作即可正常上报数据。
连通性验证
启动应用后,查看Collector的控制台输出或者otelcol.log日志,能看到上报的链路、指标数据即说明配置正常。
内容的提问来源于stack exchange,提问作者srock
相关产品推荐
相关产品推荐

