LoginSignup
5
3

More than 5 years have passed since last update.

Kubernetesクラスタ上でDatadogフォワーダのリソース効率を劇的に改善するkube-veneur

Posted at

kube-collocated-pod-proxyの代わりに以下のようなsidecar containerをつけることで、メトリクスにnamespaceをタグ付してDatadogに送れるようになりました(たぶん
https://github.com/mumoshu/kube-veneur/blob/master/local-veneur.yaml#L19-L60

kube-collocated-pod-proxy

NginxによるUDPロードバランサのDaemonSetです。

Datadogエージェントをホスト毎に起動しつつ、Kubernetesの各Podから「いまこのPodがいるホストのDatadogエージェントに到達したい」という要件を満たすために開発しました。

veneur

Stripe社で開発されたOSSで、Go言語で書かれたDogStatsDの代替です。
https://stripe.com/blog/introducing-veneur-high-performance-and-global-aggregation-for-datadog

速度と、分散デプロイしたときに本家とは違って99percentileメトリクスが正しく取れる、というのが売りらしいです。これならcollocated-pod-proxyの代用として使ってもそんなにリソースが無駄にならない・・と期待。

使い方

メトリクスによって、
1.sidecar containerから直接datadogに送ったり(そのためにAPIキーが必要っぽい?namespaceがタグ付けされる)、
2.global/central veneurを経由してからdatadogに送ったり(こうすると本家dogstatsdと違って、percentileがちゃんと計測できるらしい)、
3.同じホストのdogstatsd経由でdatadogに送ったり(今まで通り+namespaceがタグ付けされる)
と、送り方が変わる感じになってます。

設定:

VENUE_KEY環境変数にDatadogのAPIキーが必要です
https://github.com/mumoshu/kube-veneur/blob/master/local-veneur.yaml#L33
VENEUR_FORWARD_ADDRESSはglobal/central veneurのホスト名+ポートです
VENEUR_DEBUGは動作確認できたら基本falseがよいです(ログが増えるので

一応、global/central veneurは以下にあります
https://github.com/mumoshu/kube-veneur/blob/master/global-veneur.yaml
が動作確認はまだです!とりあえず、percentileメトリクスを送らないと使われない模様なので必須ではないです。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3