背景
こんにちは、キュービックでSREをやっているYuhta28です。キュービック内のテック技術について発信します。
以前の記事でも紹介しましたが、弊社ではDatadog1を使って監視運用をしています。Datadogは機能が豊富でログやホスト監視に活用していますが、SaaSなので監視対象が増えるほどコストも増加していきます。
特にログに関しては取得できるログすべてをDatadogに収集しようとするととんでもない金額になりますので、ある程度取り込むログを選別して一月あたりのログ量をコントロールしています。
ただ、ログの取り込み量についてチェックはしておらず、月末が近づくとUsage&Costページ2で今月どれくらいログが取り込まれたのかざっくり確認する程度の運用でした。先日ログの取り込み量が想定以上に増え、普段の金額よりもコストが高くなったのでDatadogのコストそのものを監視できる仕組みづくりを検討することにしました。
今回はDatadogコストの監視をどのように取り組んでみたのか紹介いたします。
対象読者
- Datadogを利用している
- 監視コストについて関心がある
推定使用量メトリクス
Datadogには使用したDatadog自身のリソース量をリアルタイムで算出してくれる推定使用量というメトリクスがあります。
ドキュメントからの引用になりますが推定使用量メトリクスによって以下のことが可能になります。
メトリクスなのでモニタリング設定したり、ダッシュボードに保存して複数グラフの可視化もできます。
ダッシュボード構築
しかしホスト台数の監視を波線グラフで測定するとわかりにくかったので棒グラフに変更しました。また弊社はDatadogのPro+というプランを利用しており一ヶ月で使うリソース費用を事前に申請することでオンデマンドで使うよりも安くなるプランを利用しております。このとき、オートスケーリングで動的に変わる監視ホスト台数の数が事前に申請したリソース分よりも増えていたらすぐわかるようなダッシュボードを作ることで次月以降の監視ホストリソースを見直しやすくしました。
またログの取り込み量メトリクスですがこのままでは一ヶ月の累計取り込み量が不明で、同様に事前コミットしたリソースまであとどれくらいなのかわかりにくいという課題があります。
そんなときに有効なのが累積合計関数です。
こちらは特定期間内のメトリクスの累積合計値をグラフとして可視化してくれる関数です。
そんなこんなで試行錯誤してできたDatadogのコスト監視ダッシュボードがこちらになります。
あまり公開できる情報がないためモザイクや塗りつぶし部分が多くなってしまいましたが、ログの取り込み量やホスト監視台数、Datadog Cloud SIEM3のログ分析サイズ量の使用リソースを可視化してみました。
このダッシュボードのおかげで毎週のチーム定例の振り返りの中でDatadogのコストに異常がないか定期的に確認できるようになりました。そしてログの取り込み量が一定数超えるとSlackへ通知してくれます。
まとめ
推定使用量メトリクスを活用したDatadogのコスト監視ダッシュボードを構築しました。ログ量や監視ホスト台数が事前に定めた一定値を超えるとSlackに通知がいき、定期的なDatadogコストの見直しや定例内での振り返り会を作ることができました。
昨今のサービス開発において監視は大事な要素ですが、コストを意識した実装が求められます。SaaSを利用していると想定以上のコストが発生する場合もありますので監視サービスのコストそのものをウォッチできる仕組みを皆さんもぜひ作ってみてください。
お知らせ!!
キュービックでは、一緒に働いてくれる仲間を募集しています。興味がある方はカジュアル面談Webエンジニアから応募をお願いします。ご応募お待ちしております。 herp.careers
また、エンジニアチームが運営しているYoutubeチャンネル【TEC TV】があるので、こちらでどんな人が働いているかを見ることができます!