这是我目前的设置。
我的团队的DevOps向我发出了EC2实例,并对EC2实例进行了一些配置。
据我了解,datadog-agent(版本6)正在我目前拥有的EC2实例上运行。运行sudo datadog-agent status
得到以下结果:
===============
Agent (v6.11.0)
===============
...
在EC2主机上运行以下代码(使用datadogpy
库)使我可以将自定义指标上传到datadog:
from datadog import statsd
statsd.gauge(CUSTOMISED_CPU_USAGE,
value=percentageCPUUse,
tags=[])
从本质上讲,该指标是从AWS提取的(然后进行操作),我对此没有任何问题。无需初始化。这是旧代码。
但是,一旦我在docker容器中尝试了相同的代码(使用基于Alpine的docker),指标就不会显示在Datadog上。换句话说,docker容器中未安装datadog。
这些是我尝试过的:
(1)使用docker bind
将/etc/datadog-agent/datadog.yaml
暴露给docker容器-更具体地说,-v /etc/datadog-agent/:/etc/datadog-agent/
允许docker容器访问{{ 1}}
(2)将docker基于datadog映像。但是,我的理解是,任何一次只能运行一个datadog-service。
(3)设置datadog.yaml
并按照此处的建议重新启动服务:datadog agent not reachable from inside docker container
我已经尝试调试了一段时间,这很头疼。