Datadogのログ管理コストをフィルター機能で削減をする

yokoo daichi

2022.6.28

こんにちは、Sreake事業部の横尾です。

今回は、Datadogの料金体系に関するお話と、実際の案件で発生したコスト削減の対応を行ったお話をご紹介していきたいと思います。

Datadog料金体系

まず、Datadogの料金に対してざっくりとご紹介いたします。

Datadogの料金体系は、月に一定額の支払いが必要な固定料金制及び、利用した容量に応じた定額従量制がサービス毎に振り分けられています。

例えば、アプリケーションのログをDatadogで監視する場合には、以下の費用が最低限必要となります。 ※記載している金額は記事執筆時点のものとなります。

Datadogインフラストラクチャー Pro:$15

ログ管理 取り込み:$0.1 (1GBあたり)

ログ管理 保持または復元:$1.06(保存3日間、100万ログイベントあたり)

取り込みや保持期間は従量課金となりますので、クラウドサービス等で既におなじみかもしれませんが、注意が必要です。

その他、詳しい費用については、公式ページをご参照ください。

ログコストの削減

さて、料金体系について簡単にイメージを掴んでいただけたかと思いますが、ここからは案件で運用コストが膨らんでしまった事象のお話をしていきます。

少し特殊な事例とはなりますが、簡単に前提を羅列すると以下の2つの点が挙げられます。

  • インスタンス稼働時は、常に処理が発生しているJavaアプリケーションのログを、Datadog Agentを使用してDatadogに転送している
  • デバッグログの一部のログを監視する必要があったため、アプリケーションはログはデバッグレベルで出力していた

上記のアプリケーションの監視をDatadogを使用して行っていたところ、膨大な量のデバッグログがDatadogへ転送され、運用コスト削減に向け対応することとなりました。

料金形態でお話をしたとおり、ログの取り込みは1GB単位あたりの従量課金となります。

そのため、これまでは全てのログをDatadogに転送していたものを、Datadog Agentのフィルター機能を用いて、監視に必要なログのみを取り込むよう対応することになりました。

ログの絞り込み

Datadog Agentの取り込みログのフィルター方法は、除外であるexclude_at_matchと対象のみを取り込むinclude_at_matchが用意されています。

また、正規表現についてはGo言語の構文で指定する必要があります。

今回の事象では、監視対象のログのみを取り込むため、include_at_matchを採用し、インスタンス上で以下の作業を行い検証を行いました。

$ sudo su -
$ vi /etc/datadog-agent/conf.d/java.d/conf.d.yaml
# 以下に書き換え
logs:

  - type: file
    path: /var/log/app/*log
    service: test
    source: java
    log_processing_rules:
    - type: include_at_match
      name: include_multiple_condition
      pattern: "pattern:a|Pattern:b"
$ systemctl restart datadog-agent

実施していることとしては、Datadog Agentの設定ファイルの編集及び、設定の反映のため、datadogサービスの再起動を行っています。

一致するパターンとして記載しているものは、pattern:apattern:bを含むログのみがDatadog Agentを介してDatadogへの転送されるようにしています。

また、複数行をわかりやすく管理する場合には、””/を使用して以下のように記載することも可能です。

logs:

  - type: file
    path: /var/log/app/*log
    service: test
    source: java
    log_processing_rules:
    - type: include_at_match
      name: include_multiple_condition
      pattern: "pattern:a\\
|Pattern:b"

※実際に対応を行ったものはこちらとなります。

ただ、こちらは注意点があり、ダブルクォートの中で空白でyamlのインデントに則ろうとすると、そちらも条件の対象として認識されてしまい、うまく条件として機能しなくなってしまいます。

さいごに

ここまでお読みいただきありがとうございました。

実際に取り組んだものは、記載していた条件より多いものとなりますが、こちらの対応を行ったことで、対象のアプリケーションログは80%程度のコスト削減を実現することができました。

案件としては開発フェーズであり、アプリケーションのDebugログを出力しているという少しだけ特殊な事例ではありましたが、みなさんがDatadogへログを取り入れる際には、コスト面を意識し、想定外の運用コストが発生しないよう気をつけていただければと思います。

Datadogの導入、活用ついてのご質問・ご相談などお気軽にお問い合わせください

Datadog

場所や規模に関係なく、あらゆるスタック/アプリケーションの内部を監視できるDataDogの導入、構築を支援いたします。

資料請求・お問い合わせはこちら

ブログ一覧へ戻る

お気軽にお問い合わせください

SREの設計・技術支援から、
SRE運用内で使用する
ツールの導入など、
SRE全般についてご支援しています。

資料請求・お問い合わせ