如何连接容器中运行的 Django 和主机中运行的 Datadog 代理

如何连接容器中运行的 Django 和主机中运行的 Datadog 代理

我按照 datadog 中的所有说明操作,但无法使其正常工作。到目前为止我已完成的步骤:

我按照跟踪 Docker 应用程序,并使用如下内容配置我的 Django:

DATADOG_TRACE = {
    'DEFAULT_SERVICE': 'my-app',
    'TAGS': {'env': 'production'},
    'AGENT_HOSTNAME': subprocess.check_output("/sbin/ip route | /usr/bin/awk '/default/ { print $3 }'", shell=True).strip(),
}

请注意,我找到了一种从命令中获取主机 IP 的方法ip route

但我收到以下错误:

ERROR:cannot send spans to 172.18.0.1:8126: [Errno 111] Connection refused

答案1

所以,我终于搞明白了。Datadog 代理拒绝连接,因为它仅绑定到本地主机。我编辑了文件/etc/datadog-agent/datadog.yaml并更改了以下内容:

use_dogstatsd: true
bind_host: 0.0.0.0

现在它运行得非常好!

相关内容