Get GCP Billing with Node.js
Node.jsのBigQueryクライアントライブラリを使ってみました。
今回はこれを使ってGCPのBillingデータを取得してみます。
※ GCPのBillingデータをBigQueryに送る方法は以下。
以下のようなコードを書いてみます。
// Imports the Google Cloud client library
// Instantiates a client
var bigquery = require('@google-cloud/bigquery')({
projectId: 'GCPのプロジェクトID',
keyFilename: 'BigQueryへアクセスするためのjsonキーのpath'
});
// Query
var query = 'SELECT SUM(cost) AS sum_cost, 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 HAVING month = LEFT (CURRENT_DATE(), 7)'
// Run query
bigquery.query(query, function(err, rows) {
var monthly_cost = rows[0]["sum_cost"];
console.log(monthly_cost);
});
クエリが1行で分かりづらいですが以下のようなクエリです。当月のcostの合計を出しています。
SELECT
SUM(cost) AS sum_cost,
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
HAVING
month = LEFT (CURRENT_DATE(), 7)
Node.jsのライブラリを使ってBilling情報が取れました。 ✨
$ node ./gcp_monthly_cost.js
0.15688500000000002
感想
次はmackerelのサービスメトリックにBilling情報を投稿するところまでやる!