Datadogの月ごとの料金を表示するツールを作った

Datadogでマルチオーガニゼーションを利用しているが、Webコンソールでは使用量は表示されても料金が表示されず、また月ごとの料金を比べることもできないので、APIを呼び出して複数月の料金を月ごと・組織ごとに表示するツールを作った。

github.com

使い方

環境変数DD_API_KEY DD_APP_KEYを設定して、ddcostコマンドを実行すると以下のようにテーブル形式で料金を表示する。(tsv、jsoncsvにも対応)

$ export DD_API_KEY=...
$ export DD_APP_KEY=...
$ ddcost -v sub-org -s 2022-12
       ORG       |       PRODUCT       | CHARGE TYPE | 2022-12 | 2023-01 | 2023-02 | 2023-03 | 2023-04
-----------------+---------------------+-------------+---------+---------+---------+---------+----------
  organization1  | fargate_container   | committed   |    1.00 |    1.00 |    1.00 |    1.00 |    1.00
                 |                     | on_demand   |    2.00 |    2.00 |    2.00 |    2.00 |    2.00
                 |                     | total       |    3.00 |    3.00 |    3.00 |    3.00 |    3.00
                 | logs_indexed_15day  | committed   |    0.00 |    0.00 |    0.00 |    0.00 |    0.00
                 |                     | on_demand   |    0.50 |    0.50 |    0.50 |    0.50 |    0.50
                 |                     | total       |    0.50 |    0.50 |    0.50 |    0.50 |    0.50
                 | total               |             |    3.50 |    3.50 |    3.50 |    3.50 |    3.50
                 |                     |             |         |         |         |         |
  organization2  | infra_host          | committed   |   10.00 |   10.00 |   10.00 |   10.00 |   10.00
                 |                     | on_demand   |   20.00 |   20.00 |   20.00 |   20.00 |   20.00
                 |                     | total       |   30.00 |   30.00 |   30.00 |   30.00 |   30.00
                 | logs_indexed_15day  | committed   |    1.00 |    1.00 |    1.00 |    1.00 |    1.00
                 |                     | on_demand   |    1.50 |    1.50 |    1.50 |    1.50 |    1.50
                 |                     | total       |    2.50 |    2.50 |    2.50 |    2.50 |    2.50
                 | total               |             |   32.50 |   32.50 |   32.50 |   32.50 |   32.50

-v summaryで親オーガニゼーションのサマリ、-v sub-orgで親・子オーガニゼーションごとの内訳を表示する。

また、APIで前月の料金を取得できるのが当月の9日以降ぐらいになるので、--estimateで見積もり料金を表示できるようにした。こちらは過去二ヶ月分まで。

Webアプリ化

経理の方からDatadogの明細を見たいという話があったので、社内ではWebアプリ化して運用している。

その他

関係ないけどAWSのコスト集計にはawscostを使っている。便利