gcp

Rewrite SQL for GCP billing export v1

先日課金情報エクスポート機能の正式版が発表され、課金情報のテーブルのスキーマが変更されました。 GCP billing export機能のGA版がリリースされて作成されるカラム名等が変わった GCP の課金情報を Google BigQuery へ送り Redash で可視化しているので、このための SQL を書き直す必要があります。 Visualize GCP Billing Data 書き換えた箇所 こんな感じで毎月の Billing 情報を集計しています。 これのための SQL を書き換えていきます。 before SELECT SUM(cost) AS sum_cost,

gcp

GCP billing export GA version has released

Google BigQueryへGCPのBilling情報を送っています。 Export GCP Billing data to Google BigQuery このbilling export機能について、先日メールで案内が配信されました。 内容は、billing export機能がGA(正式版)になり、それにともなってスキーマが変わるから移行してね、というものでした。ざっくり要約すると以下のような内容です。 暫くの間は新しいスキーマと古いスキーマ両方作成される 2018年1月に古いスキーマの作成が行われなくなるのでそれまでに既存のワークフローの更新が必要 具体的には以下のような変更があるとのことです。 productカラムがservice.descriptionにリネーム resource_typeカラムがsku.descriptionにリネーム start_timeとend_timeカラムがusage_start_timeとusage_

mackerel

Post GCP Billing data to Mackerel with Node.js

Node.jsのBigQueryライブラリを使ってGCPのBillingを取得してみました。 Get GCP Billing with Node.js 次はこのBillingの情報をMackerelにサービスメトリックとして送ってみます。 Mackerel側のインターフェースの確認 サービスメトリックは以下のデータ形式で送れば良いみたいです。 [ <metricValue>, <metricValue>, … ] 詳細はこちら。 サービスメトリック - Mackerel API ドキュメント (v0) つまり、今回の場合は以下のようなデータを送れば良いみたいです。 [ {name: "gcp.monthly_cost", time:

gcp

Get GCP Billing with Node.js

Node.jsのBigQueryクライアントライブラリを使ってみました。 Node.js client library for Google BigQuery 今回はこれを使ってGCPのBillingデータを取得してみます。 ※ GCPのBillingデータをBigQueryに送る方法は以下。 Export GCP Billing data to Google BigQuery 以下のようなコードを書いてみます。 // Imports the Google Cloud client library // Instantiates a client var bigquery = require('@google-cloud/

gcp

Report GCP billing and Referral domain everyday

少し前から、個人Slackに個人で利用しているGCPの使用料金とブログのリファラを集計して日時レポートとして出すようにしています。 Slack × Re:dash 以下のように、毎日午前11時にredash-reportチャンネルにレポートが届きます。 忘れないうちに良かったと感じたことをメモしておきます。 よかったこと GCPの使用状況を毎日意識することができる 月ごとのグラフを出すようにしたので推移がわかり良い感じ…! 2月から跳ね上がっている(といっても料金的には微量ですが)のはmackerelでGCP料金をホストメトリックに取り始めたからですね(毎分クエリ叩いてる&サーバの情報じゃないのでサービスメトリックに移行しなきゃあかん) ← みたいなことがわかったり どこから自サイトへのアクセスが多いのか毎日意識することができる アドベントカレンダー強いな… もう5月になるやぞ 楽しい 日々変化するデータが可視化され、それを労力をかけずに観察できるのが楽しい サーバのメトリックとはちがう「集計されたユーザの生のデータ」というのも楽しさを感じている要因と思う slackのチャンネルを遡って履歴を辿れるのも良い やりたいこと 以下のデータも出してみたいと思っています。 攻撃っぽいアクセスの集計 syslogをBigQueryに送ってssh試行失敗数とそのアクセス元のIPアドレスを集計して表示とか ✨

gcp

Hello Google Cloud Functions

AWSのLambda的なものがGoogleにもあった(α版)ので使ってみました。 α版への利用登録 Google Cloud Functionsはまだα版なので利用登録が必要です。 Google Cloud Functions - Alpha Sign Up 1月前半に申請したのですが、2月後半に「あなたのメールアドレスをホワイトリストに追加したので使ってどうぞ」的なメールが来て使えるようになりました。 APIを有効にする GCP管理画面のAPI Managerから有効にします。非公開APIなので、ホワイトリストに登録されてないと表示すらされないのかな? gcloudコマンドからGoogle Cloud Functionsを使えるようにする gcloudコマンドからα版の機能を使うためのコンポネントをインストールします。 functionをGoogle Cloud Functionsにデプロイするために使います。 gcloud components install

gcp

Send GCP Billing metrics to Mackerel

Google BigQueryへエクスポートしたGCP Billingデータを使ってmackerelにGCP Billingのメトリクスを送ってみます。 メトリクスを送るためのプラグインは夜な夜な作りました。オプションにプロジェクトIDとデータセット名とテーブル名を指定すると現日付けの月の合計のBillingデータを取得することが出来るプラグインです。早く使ってみたい! GitHub - Lorentzca/mackerel-plugin-gcp-billing: GCP billing costom metrics plugin for mackerel 準備 このプラグインは実行するための条件がいくつかあります。 テーブルに以下のスキーマが必要 cost(FLOAT型) start_time(TIMESTAMP型) 課金データのエクスポート機能でGoogle BigQueryにデータを送っていれば特に考えることはないはず。 サーバ上で実行するにはGoogle BigQueryに対する権限を持っている認証アカウントのjsonキーが必要 そのjsonキーへのpathを入れた環境変数経由でGoogle BigQueryに対し認証を行います サーバー中心のフローのための認証情報取得

bigquery

Export GCP Billing data to Google BigQuery

Google BigQueryを使うようになって暫く経ちました。 bigquery - Page 1 - ゆるふわキャンパー そこで気になるのはGCPの使用料金です。Billingアラートを5ドルに設定したり、使いすぎないように気を使ってはいますが、どうせならちゃんとトラッキングしたいものです。 というわけでBillingの情報をGoogle BigQueryに記録する設定を有効にしてみました。 Export billing data to BigQuery - Cloud Platform Console Help この機能、割と最近のもの?らしいですね。BillingデータをGoogle BigQueryに送る方法で調べると、いったんバケットにファイルとしてエクスポートしてそれをごにょごにょしてGoogle BigQueryに保存している記事が散見されました。 やりかた 「お支払い」