Datadogの支払い/コストを削減するtips集
AWSといったクラウドプロバイダへの支払いを100とすると、Observabilityベンダーとの支払いは、おおよそ15〜30程度となります。
この記事では大まかな方針を記載し、削減余地が大きいログ、APM、Infra Hostについては詳述します。
金額と明細を可視化する
Admin以外の権限のユーザーだと利用量は参照できますが、具体的な金額が見えません。Standard RoleなどにDatadogのBillingを参照できる権限をつけるとよいでしょう。まずは金額と明細をメンバーに共有しましょう。
Usage Attributionで明細を可視化する
契約プラン次第ですが各チームに自分で調査してもらうのに便利です。
ログを削減する
LambdaのSTART / ENDログを転送抑制する
Lambdaでは必ずSTART / ENDログが出力されますが、このログは情報量が少ないです。特にトレースを導入しているなら不要でしょう。除外するとログが半分以下になることも。
設定方法は以下の通り。転送ルートがLambda Extensions経由でもDatadog Forwarder経由でも有益です。
REPORTログはlambda enhanced metricsとしてduration計算などに使われます。一方、送信しingestとして取り込みさえできればログindexには不要です。indexから除外も検討しましょう
どのログが多いのかログ画面のTree Mapで可視化する
ログ画面でTree Mapを使い、カテゴリごとに量を可視化しましょう。同時に複数のカテゴリでグルーピングできます。アカウント、サービス、Hostあたりが便利です。
どのログが多いのかメトリクスから探る
メトリクスを使うなら、datadog.estimated_usage.logs.ingested_bytesからおおよそ可視化できます。
メトリクスの強みはSplit Graph機能です。グラフをカテゴリで分割できるので見やすく助かります。
ログPatterns機能で不要なログパターンを探る
Patterns機能は過小評価されています。不要なパターンのログ、おかしいログが出てないか、コスト削減の観点では量が多いものを探してみましょう。
Statusで絞る
WARN、ERRORといったログが大量に出ているのは良くない傾向です。整理整頓しましょう。アプリケーションも改善できる可能性があります。
二重出力を確認する
たまに二重に出力されています。Datadogの設定ミスの可能性が高いです。
サンプリングする
代わり映えのないログはサンプリングを検討しましょう
転送量を削減すれば、AWS内ならDatadog ForwarderのLambda実行コスト、転送コストも削減可能です。Datadog ForwarderのLambdaとしてのコストは地味に嵩みます。
APMを削減する
可視化する
方法はログと同じです。上記を参照ください。
プロキシ的なサービスを除外する
安定しているサービスはAPMの対象から除外すると良いでしょう。
サンプリングする
トレース全体をサンプリングする方法と、トレース内の特定のアクセスだけをサンプリングする方法があります。DD_TRACE_SAMPLING_RULESにより、例えばDBアクセスだけをサンプリングすることが可能です。
二重出力を確認する
たまに二重に出力されています。Datadogの設定ミスの可能性が高いです。
Infra Hostを削減する
AWS Integrationから除外する
Datadog Agentを入れていないEC2ホストもAWS Integrationを設定していると課金対象となります。EC2全部について監視不要ならAWS Integration画面からEC2連携を除外しましょう。
CloudWatch Metric Streamsを設定しているときは追加作業が必要です。AWS側で名前空間からEC2を除外し、Datadogに流れないようにしましょう。
その他利用量の削減
API テストを減らす
実行回数で課金されるため、1分に1回のチェックだと1時間に1回のチェックに比べ60倍の金額となります。開発環境なら長くても良いでしょう。ワークロードに応じて間隔を空けましょう。
ロケーション数とも金額が比例するため、東京だけに絞るのも一つの方法です。
他のDatadog機能と連携をしないなら別のサービスに切り替えたほうが安いことも。
時間帯によって間隔を変更できると便利ですが、標準機能には今のところ存在しないため、行うならDatadog APIで随時設定する仕組みを準備しましょう。
Sensitive Scannerを削減する
Lambdaの標準ログはSensitiveデータが入りようがないのでSTART / END / REPORTログを除外しましょう。
条件の変更
カード払いから領収書払いに切り替えることもできます。有利かどうかは経理部門やファイナンス部門に確認しましょう。
コミットメントや各種プランも適宜見直しましょう。
最後に
以下の記事でも述べた通り、特にログの部分はAWSコストと連動しています。一石二鳥を狙うとよいです。