こんにちは。オブザーバビリティの世界へようこそ。
Datadogは魔法の杖ではありません。適切に設定しなければ、あなたの財布を猛烈な勢いで蝕む「ブラックホール」になり得ます。しかし、アーキテクチャの急所を理解していれば、コストを劇的に抑えつつ、システムの「鼓動」を完全に掌握することが可能です。
今日は、Datadogの請求書を見て青ざめる前に知っておくべき、「コスト最適化の神髄」を伝授します。
—
1. なぜDatadogの料金は「爆発」するのか?
Datadogのコスト構造を支配しているのは主に2つ。「カスタムメトリクス(高カーディナリティ)」と「ログのインジェスト量」です。
初心者がやりがちなミスは、`user_id`や`request_id`のような「一意の値(カーディナリティが高い)」をタグとしてメトリクスに詰め込むこと。これを行うと、Datadogは無限に新しい時系列データを生成し、請求額は指数関数的に跳ね上がります。
—
2. コスト削減のための「5つの鉄則」
① タグのカーディナリティを「爆破」しない
「すべてのリクエストにユニークなIDをタグ付けしよう」という誘惑を捨ててください。メトリクスは「集計の単位」です。性別、地域、OSなど、有限のグループ分けに留めるのが鉄則です。
② ログの「Exclusion Filters」でゴミを捨てる
すべてのログをDatadogに送る必要はありません。
- `200 OK`のヘルスチェックログ
- デバッグ用の詳細すぎるトレースログ
これらはDatadogの「Exclusion Filters」でインジェスト(取り込み)自体を拒否しましょう。
③ ログのサンプリング(Sampling)を活用する
アクセスログが1秒間に1,000件あるなら、10%をサンプリングするだけで統計的な傾向は掴めます。全てを保存するのは無駄です。
④ メトリクスの「Drop」設定
使っていないダッシュボードのために課金されていませんか?`datadog.yaml`で不要なインテグレーションを明示的に無効化しましょう。
⑤ ログの「Indexing」を賢く使う
Datadogには「保存する(Indexing)」と「アーカイブする(Cold Storage)」という概念があります。頻繁に検索しないログは、S3などの安価なストレージへ直接流し込み、Datadog上のインデックスからは外すのが賢者の選択です。
—
3. 【実践】まずはここから!HelloWorld的セットアップ
Datadogの真価を体感するために、まずは必要最小限のAgent設定を行いましょう。
ステップ1: Agentのインストール
サーバーにSSHでログインし、公式のコマンドを叩きます(詳細はDatadogダッシュボードのAgentページを参照)。
ステップ2: `datadog.yaml` の極意(設定の最適化)
`/etc/datadog-agent/datadog.yaml` を開き、ログの収集設定を絞ります。
ログ収集を有効化
logs_enabled: true
logs_config:
# 必要なログだけをインジェストするための除外フィルタ設定
# 例: 200 OKのログは取り込まない
processing_rules:
- type: exclude_at_match
name: exclude_health_checks
pattern: ‘”status”:200’
ステップ3: 動作確認(ログの流し込み)
手動でテストログを送り、Datadog上で正しく「除外」されているか確認します。
ターミナルからテストログを送信
echo ‘{“message”: “Health check”, “status”: 200}’ | logger
DatadogのLog Explorerで、このログが表示されなければ成功です。無駄なコストを1件削れましたね。
—
4. 最後に:オブザーバビリティの真理
「監視」とは、ただデータを集めることではありません。「何が起きているかを知るために、最小限のコストで最大限の視界を得ること」です。
最初は難しく感じるかもしれませんが、一度この「取捨選択」の感覚を掴めば、あなたは単なるオペレーターから、システム全体を見通す「オブザーバビリティ・アーキテクト」へと進化できます。
まずは今日、一番容量を食っているログストリームを一つ特定し、それを「除外」することから始めてみてください。その小さな積み重ねが、半年後のあなたのチームの予算を救うことになります。
応援していますよ。困ったことがあれば、またいつでも聞きに来てください。