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

GrowthBook集成OTEL对接Prometheus Pushgateway失败问题排查

问题解答

1. @opentelemetry/auto-instrumentations-node 引入后,指标的暴露/推送方式

@opentelemetry/auto-instrumentations-node 仅负责自动注入Node.js生态常见库的埋点逻辑(如Express、MongoDB等),本身不决定指标的传输方式,指标的暴露或推送完全由你配置的OpenTelemetry导出器决定:

  • 若配置了OTLP导出器(通过OTEL_EXPORTER_OTLP_ENDPOINT环境变量开启),指标会以主动推送的方式发送到指定OTLP端点;
  • 若使用Prometheus导出器(需额外安装@opentelemetry/exporter-prometheus),指标会暴露在特定HTTP端点(默认/metrics),等待Prometheus主动拉取;
  • 若未配置任何导出器,指标仅临时存储在进程内存中,既不推送也不对外暴露。

你当前设置了OTEL_EXPORTER_OTLP_ENDPOINT,说明启用了OTLP主动推送模式,但核心问题是:Prometheus Pushgateway不支持OTLP协议。

2. 推送模式失败的可能原因

结合你的403/404报错和场景,主要原因如下:

  • 协议不兼容:OTLP导出器发送OTLP格式请求(基于gRPC或HTTP/JSON),而Prometheus Pushgateway仅支持接收Prometheus文本格式请求,协议完全不匹配,直接对接必然报错;
  • 路径不匹配:Pushgateway接收指标的合法路径为/metrics/job/<job_name>(必须指定job名),而OTLP导出器默认推送路径是/v1/metrics,该路径在Pushgateway上不存在,触发404;
  • 权限认证问题:若Pushgateway配置了访问控制(如Basic Auth、TLS证书验证),但你未在OTEL环境变量中配置对应认证信息(比如OTEL_EXPORTER_OTLP_HEADERS设置Basic Auth头),会返回403;
  • 环境变量配置细节错误:比如OTEL_EXPORTER_OTLP_ENDPOINT未添加http://或https://前缀,或端口配置错误(即便curl能通,OTel的请求格式错误仍会触发报错)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:37:54