无法从作为 ECS 容器运行的 Datadog 代理向 datadog 发送指标

问题描述

我在 ECS Fargate 上运行我的核心业务服务。我添加了“datadog-agent”作为 sidecar 容器,将 ECS fargate 上运行的服务的指标发送到 datadog。

但是,问题是我没有从 ECS 容器中获取有关 Datadog 本身的任何指标。

以下是我用于 datadog-agent 的环境变量:

  • DD_API_KEY
  • DD_PROXY_HTTP
  • DD_PROXY_HTTPS
  • DD_PROXY_NO_PROXY
  • DD_SITE
  • ECS_FARGATE

我使用这些代理环境变量是因为我必须通过 Squid 代理服务器传递指标。我已经检查了一切可能但仍然收到以下错误

2021-04-30 14:30:33 UTC |核心 |错误 | (pkg/forwarder/worker.go:174 处理中) |端点错误太多 'https://app.datadoghq.us/api/v1/check_run?api_key= { "DD_API_KEY": "*******************************xxxx" } ': 稍后重试

2021-04-30 14:30:29 UTC |核心 |错误 | (pkg/collector/runner/runner.go:292 工作中) |运行检查时出错 领事: [ { "message": "400 客户端错误:对 url 的错误请求:http://xx.xx.xx.xx:8500/v1/status/leader",

如何在 Datadog 上成功获取指标?我尝试了不同的方法并研究了很多,但没有运气。

解决方法

您分享的第一条错误消息显示代理无法向 Datadog 平台发送有效负载。

显示的第二个错误是 ECS 代理连接到 consul 实例以检查其状态的错误 - 这是一个不同的问题。

您能否举例说明 DD_PROXY_NO_PROXY 中传递的值?

根据您的描述,Datadog 代理旨在通过 Squid 代理进行出站呼叫 - 而代理配置可能会阻止出站呼叫。

此处更详细地记录了代理配置详细信息:https://docs.datadoghq.com/agent/proxy/?tab=agentv6v7