10

Amazon Linux ec2 に dd-agent をインストールしました。Python スクリプトをホスト マシンで直接実行すると (「dogstatsd-python」という名前の SDK を使用しました)、すべてのメトリックを datadog に送信できます (datadoghq.com にログインし、そこでメトリックを確認しました)。スクリプトは次のようなものです:

from statsd import statsd
statsd.connect('localhost', 8125)
statsd.increment('mymetrics')

ただし、docker コンテナーを起動し、コンテナー内から同じスクリプトを実行します。

from statsd import statsd
statsd.connect('172.14.0.1', 8125)
statsd.increment('my metrics')

「172.14.0.1」は、コマンドで抽出されたホストの IP です。

netstat -nr | grep '^0\.0\.0\.0' | awk '{print $2}'

メトリクスは datadog にまったく送信されませんでした.....

おそらく、「アドレスバインディング」などの構成の問題が原因であると推測しています。ホストにインストールした dd-agent は、「localhost」からしかメトリックを受信できない可能性があります。

誰かが私を助けてくれることを願っています。前もって感謝します。

4

3 に答える 3

11

non_local_traffic: yesファイルに設定する必要があり/etc/dd-agent/datadog.confます。そうしないと、エージェントはコンテナーからのメトリックを拒否します。

設定後、変更を有効にするためにエージェントを再起動する必要がありますsudo /etc/init.d/datadog-agent restartsudo service datadog-agent restart

docker -dd-agentイメージはnon_local_traffic: yesデフォルトで有効になります。

于 2016-02-01T14:31:05.463 に答える
0

この場合、実際にはホストの IP を使用したくありません。docker dd-agent を実行している場合、利用できる環境変数が 2 つあります。

statsd.connect(DOGSTATSD_PORT_8125_UDP_ADDR, DOGSTATSD_PORT_8125_UDP_PORT)

これでうまくいくはずです。そうでない場合は、Datadog ドキュメントのこのセクションで、問題に関連する情報を見つけることができるはずです。

また、Datadog がドキュメントで示している唯一の Python ライブラリはdatadogpyであることも指摘しておく必要があります。

于 2016-09-22T12:43:05.770 に答える