tjinjin's blog

インフラ要素多めの個人メモ

datadogでunboundのメトリクスを取得できるようにplugin作った

About

最近とあるサービスにunboundを導入してそのメトリクスを取るなんちゃってpluginを作りました。

そもそも

AWSDNSサーバは普通に使っている分には問題ないですが、以下の制限があります。

Amazon EC2 インスタンスAmazon が提供する DNS サーバーへ送信できるパケット数をネットワークインターフェイスあたり最大 1024 パケット/秒に制限しています。この制限を増やすことはできません。

VPC での DNS の使用 - Amazon Virtual Private Cloud

上記制限にひっかかるとレコードが引けず、アプリ側でエラーが出たりします。

unboundの監視

そこでキャッシュサーバとしてunboundを導入しました。細かい設定とか移行手順とかは気が向いたら書きます。unboundにはメトリクス取得用のコマンドがあって、そのコマンドを叩くと様々な情報を取得することが可能です。サービスでdatadogを使っているので、datadog上でメトリクスを見れるようにgoでpluginを作りました。

plugin

github.com

作りは簡単でunbound-control statsを叩いてその出力を拾ってきて、dogstatsDに投げている感じです。とりあえずcronで動かしているのでもうちょっと工夫したいなーと思っているところです。

まとめ

dogstatsD初めて使って見ましたが便利そうなので、もうちょっと使い倒していきたいというお話でした!