Datadog计数度量下降与多个容器

我在python中增加一个Datadog计数器:

from datadog import initialize from datadog import ThreadStats stats.increment('api.request_count', tags=['environment:' + environment]) 

并且已经将度量types设置为“计数”,并将该单位设置为度量的元数据中的“请求无”。

代码在Google云中的容器引擎中的kubernetes节点上的docker容器中运行…我在每个节点上都运行了docker-dd-agent( https://github.com/DataDog/docker-dd-agent )。

我可以将容器移动到任何节点,并且每分钟logging大约200个请求。 但只要我扩展并启动第二个容器,它每分钟只logging约100个请求。 如果我再次缩小到一个容器,它再次峰值到200转:

在这里输入图像说明

什么可能导致请求丢弃或从其他豆荚覆盖?

为什么不使用dogstatsd而不是threadstats? 如果您已经以您的容器可以访问的方式在节点上运行dd-agent,则可以使用datadog.statsd.increment()方法将度量标准通过statsd发送给代理,得到转发到您的datadog帐户。

Dogstatsd有更直接的好处,并且更容易麻烦,至less在debugging级别的日志logging。 Threadstats有时不需要dd-agent的好处,但是它很less(如果有的话)错误日志logging,所以很难排除像这样的情况。

如果你去了dogstatsd路线,你会使用下面的代码:

 from datadog import initialize from datadog import statsd statsd.increment('api.request_count', tags=['environment:' + environment]) 

从那里你可以用“rate”types和间隔“10”find你的度量标准元数据,你可以使用“as_count”函数将这些值转换为计数值。

在python脚本中,我正在使用api键进行初始化:

 from datadog import api from datadog import initialize from datadog import statsd options = { 'api_key':'#######' } initialize(**options) 

并发送一些事件

 api.Event.create(title=title, text=text, tags=tags) 

当我改变它初始化像这样,它开始与dd代理工作:

 initialize(statsd_use_default_route=True) 

我不需要链接命令( – 链接dogstatsd:dogstastd)。

使用该设置,现在可以在分段环境中工作,但不能在生产环境中工作。 :/