datadogでunboundのメトリクスを取得できるようにplugin作った
About
最近とあるサービスにunboundを導入してそのメトリクスを取るなんちゃってpluginを作りました。
そもそも
AWSのDNSサーバは普通に使っている分には問題ないですが、以下の制限があります。
各 Amazon EC2 インスタンスは Amazon が提供する DNS サーバーへ送信できるパケット数をネットワークインターフェイスあたり最大 1024 パケット/秒に制限しています。この制限を増やすことはできません。
VPC での DNS の使用 - Amazon Virtual Private Cloud
上記制限にひっかかるとレコードが引けず、アプリ側でエラーが出たりします。
unboundの監視
そこでキャッシュサーバとしてunboundを導入しました。細かい設定とか移行手順とかは気が向いたら書きます。unboundにはメトリクス取得用のコマンドがあって、そのコマンドを叩くと様々な情報を取得することが可能です。サービスでdatadogを使っているので、datadog上でメトリクスを見れるようにgoでpluginを作りました。
plugin
作りは簡単でunbound-control stats
を叩いてその出力を拾ってきて、dogstatsDに投げている感じです。とりあえずcronで動かしているのでもうちょっと工夫したいなーと思っているところです。
まとめ
dogstatsD初めて使って見ましたが便利そうなので、もうちょっと使い倒していきたいというお話でした!