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

Docker部署OpenTelemetry Collector对接GCP时遇ADC项目未找到错误

解决OpenTelemetry Collector发送数据到GCP时的"no project found with application default credentials"错误

核心原因

你的ADC(应用默认凭证)要么未关联正确的GCP项目ID,要么OpenTelemetry的Stackdriver Exporter无法从凭证中自动读取项目信息。

具体解决办法

1. 显式指定GCP项目ID(最直接有效)

有两种方式可以指定:

  • 方式一:在docker-compose中添加环境变量
    在environment块里增加GOOGLE_CLOUD_PROJECT变量,替换为你的GCP项目ID:

    environment:
      - GOOGLE_APPLICATION_CREDENTIALS=/etc/otel/key.json
      - GOOGLE_CLOUD_PROJECT=your-gcp-project-id
    
  • 方式二:在OpenTelemetry配置文件中直接指定项目
    在exporters下的stackdriver配置里添加project字段:

    exporters:
      stackdriver:
        project: "your-gcp-project-id"
        logs:
          default_log_name: "your-log-name"
        # 其他metrics/tracing相关配置
    

    这种方式优先级最高,会覆盖环境变量里的项目设置。

2. 确保ADC凭证关联正确的项目

执行以下步骤更新你的ADC凭证:

  1. 本地终端设置默认GCP项目:
    gcloud config set project your-gcp-project-id
    
  2. 重新生成ADC凭证:
    gcloud auth application-default login
    
  3. 重启docker-compose容器,进入容器检查凭证内容确认project_id字段正确:
    docker exec -it monitoring-collector cat /etc/otel/key.json
    

3. 验证账号权限

确保生成ADC凭证的Google账号拥有以下必要权限:

  • 写入指标:roles/monitoring.metricWriter
  • 写入日志:roles/logging.logWriter
  • 写入追踪数据:roles/cloudtrace.agent
    可在GCP控制台的IAM与管理员页面给该账号添加这些角色。

4. 检查容器配置正确性

  • 确认volumes里的凭证挂载路径正确,容器内/etc/otel/key.json存在且内容完整。
  • 确认GOOGLE_APPLICATION_CREDENTIALS环境变量指向的路径与挂载路径完全一致,无拼写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:41:00