Google Cloud Monitoring でカスタムメトリクスを投げてみました。
2種類のカスタムメトリック
下記の2つがあります。
- lightweight Custom Metrics
一言でいうと普通のやつ。AWSのCloudWatchのカスタムメトリック相当 - labeled Custom Metrics
1つのグループ?ディメンジョン?の中に複数のラベルを付けられるメトリック。これも説明しにくいので、スクリーンショット貼っておきます。
サンプルがあるので、サクッと両方共動かします。
apiの有効化
見た感じだとカスタムメトリックのコールでAPI使用数を消費しているので、この工程は必須では無いかと。前の記事にSS貼っておきました。
Google Cloud Monitoringを試し、そしてビビる - 続 カッコの付け方
インスタンス起動時の scopes
まず、GCEのインスタンス起動時にscopeというものを指定します。解釈としては、EC2の IAMロールとおなじ。ここは まだDevelopers console で出来ないので、gcloud
コマンドでインスタンス作成する必要があります。。
gcloud compute --project "<Project>" \ instances create cm-example-vm --image centos-6 \ --zone asia-east1-b \ --scopes https://www.googleapis.com/auth/monitoring \ https://www.googleapis.com/auth/devstorage.read_only \ --machine-type g1-small
この scopes
は、 Developers console上からも指定できることはできますが、 Cloud Monitoringのエンドポイントが指定出来ないようです。よって、gcloud
必須。また、残念なことにこのscopesは後付け不可能です。ここもできれば改善してほしい。
インスタンス上でサンプル動かす準備
# yum install python-setuptools # easy_install pip # pip install --upgrade google-api-python-client
サンプルはこちら
Example: Using a Lightweight Custom Metric - Google Cloud Monitoring — Google Cloud Platform
pidをグラフ化ですので、あくまでデモ用
Example: Using a Labeled Custom Metric - Google Cloud Monitoring — Google Cloud Platform
こちらは店舗のシャツの在庫をグラフ化、シャツの色とサイズでラベル付け
グラフ化
ダッシュボードに貼り付けたらこんな感じ。
lightweightはいいとして、labeledはこんな感じで表示をカスタム出来ます。
まとめ
- インスタンス起動時にしか
scopes
を指定出来ない。 - 多分 Cloud Monitoring の APIキーを使えば、
scopes
に頼らなくともできるはず。 - labeledでインフラ以外のものもグラフ化するのもいいかも。
今回はサンプル通りにやりましたが、pythonで組み込みとかやらなくても行けると思う、たぶん。それとscopes
は無理だけどカスタムメトリックの後付けはできるはず。