Quarkus项目配置OTLP导出至Elasticsearch APM遇阻求助
问题排查:Quarkus通过OpenTelemetry Collector无法将指标发送至Elastic APM
我正在尝试在Quarkus项目中接入Elasticsearch,计划通过OpenTelemetry实现指标上报,但目前无法将指标发送到Elastic APM。我采用了Collector配置方式,以下是我的配置文件,请求协助排查问题。
配置文件内容
docker-compose配置
services: collector: image: otel/opentelemetry-collector:latest container_name: collector hostname: collector volumes: - ./src/collector-config.yml:/etc/collector-config.yml command: [ "--config=/etc/collector-config.yml" ] ports: - "4317:4317"
collector-config.yml配置
receivers: otlp: protocols: grpc: endpoint: collector:4317 exporters: logging: otlp/elastic: endpoint: https://das812391jsadaqwd.apm.us-central1.gcp.cloud.es.io:499 headers: Authorization: "Bearer 78asd9sadnasd" service: pipelines: traces: receivers: [otlp] exporters: [logging, otlp/elastic] metrics: receivers: [otlp] exporters: [logging, otlp/elastic] logs: receivers: [otlp] exporters: [logging, otlp/elastic]
排查建议
- 调整Collector监听地址:当前OTLP Receiver的gRPC端点配置为
collector:4317,仅监听容器内部主机名。如果Quarkus应用不在同一Docker网络中,无法通过该地址访问Collector。建议修改为0.0.0.0:4317,让Collector监听所有网卡;同时确保Quarkus应用配置的OTLP导出端点指向Collector的可访问地址(如宿主机IP:4317)。 - 验证Elastic APM端点与授权信息:检查exporter中的
endpoint端口是否正确(Elastic APM默认OTLP端口为443或8200,配置的499可能存在错误);确认Bearer Token有效,无过期或权限不足问题。 - 查看Collector运行日志:执行
docker logs collector查看日志,排查是否存在连接Elastic APM失败、接收Quarkus指标异常等错误信息。 - 确认Quarkus OpenTelemetry配置:确保已启用Quarkus OpenTelemetry扩展,并配置正确的OTLP导出端点,示例配置如下:
若应用不在Docker网络内,需将地址替换为宿主机IP和端口。quarkus.opentelemetry.tracer.exporter.otlp.endpoint=http://collector:4317 quarkus.opentelemetry.metrics.exporter.otlp.endpoint=http://collector:4317 - 测试网络连通性:在Collector容器内执行
curl -v https://das812391jsadaqwd.apm.us-central1.gcp.cloud.es.io:499,验证是否能正常连接到Elastic APM端点。
内容的提问来源于stack exchange,提问作者Alberto Raúl Espejel González
相关产品推荐
相关产品推荐

