Datadogでマルチオーガニゼーションを利用しているが、Webコンソールでは使用量は表示されても料金が表示されず、また月ごとの料金を比べることもできないので、APIを呼び出して複数月の料金を月ごと・組織ごとに表示するツールを作った。
使い方
環境変数DD_API_KEY
DD_APP_KEY
を設定して、ddcostコマンドを実行すると以下のようにテーブル形式で料金を表示する。(tsv、json、csvにも対応)
$ 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アプリ化して運用している。