Visualize GCP Billing Data
GCPのBillingデータをGoogle BigQueryに送り始めました。
早速re:dashで可視化してみます。
可視化する内容
Google BigQueryへ送られるデータの詳細は以下です。この中からてきとうに使えそうなものを拾っていきます。
今回は、
- X軸は月
- Y軸はコストの合計
- また、Y軸にプロダクトの種類(BigQuery, Computing Engineなど)も含める
みたいな感じで集計してみます。
クエリ
こんなクエリでやってみる。
SELECT SUM(cost) AS sum_cost, product,
LEFT (FORMAT_UTC_USEC(
UTC_USEC_TO_MONTH(TIMESTAMP_TO_USEC(start_time))), 7)
AS month
FROM
billing.gcp_billing_export_00AA78_858318_441716
GROUP BY month, product
月の計算が自分でも混乱しそうなのでメモする。
start_time
はTIMESTAMP型で格納されている(2017-01-23 08:00:00 UTC
)TIMESTAMP_TO_USEC
関数でμ秒単位のUNIXタイムスタンプに変換する(1485158400000000
)UTC_USEC_TO_MONTH
関数でその日付の月の最初の日付に変換する(1485158400000000
->1483228800000000
)2017-01-23 08:00:00
->2017-01-01 00:00:00
の意
FORMAT_UTC_USEC
関数でμ秒単位のUNIXタイムスタンプから人間が読める形式のタイムスタンプに変換する(2017-01-01 00:00:00
)- 最後に
LEFT
で左7文字を抽出する(2017-01
)
日付/時刻関数ドキュメントを参考にした。
start_time
とend_time
で月をまたいだ場合なども考慮したいところですがめんどくさいので今回は考えていません!!
さっそくre:dashで使ってみる
グラフの設定はこんな感じにしました。
カラムの設定。
X軸の設定。
Y軸の設定。
わくわく。
りそう
げんじつ
感想
しょぼいグラフになった。
コストは400マイクロドルという見たこともないしょぼい値だし、今月から始めたからX軸1つしか無いし、BigQueryしか使ってないから青一色だし、これが現実。
これだとクエリがほしい値を取ってきてくれてるのかもよくわからん!
というわけなので引き続き業務でも取り入れて活用していきたい所存です。