2015年12月25日金曜日

ConoHaで自作Billing Alertを使っているはなし

このエントリーは ConoHa Advent Calendar 2015 の25日目のエントリーです。メリークリスマス!

22日目に既に ConoHaちゃんが好きすぎるので、WebAPIを叩くためのGemを(途中まで)作ってみた という記事がありますが、どう見てもカブっています本当にありがとうございました。
(わたしはConoHaちゃんが好きすぎて作ったわけではないですが)

TL;DR

すぐに落とせば大丈夫だと思ってConoHaの一番高いヤーツでベンチマークを流したら、消すのを忘れて痛い目を見た(巷で噂になっているアレほどではない)

ちなみに 論理削除Casual Talks のときの、「tpcc-mysqlを論理削除に魔改造したらどれくらい速く / 遅くなるか」というものすごくどうでもいいベンチマークに使いました。つらい。

使い方

$ git clone https://github.com/yoku0825/p5-conoha-api.git
$ cd p5-conoha-api
$ cpanm --installdeps .
$ ppit set conoha
---
"password": 'your_api_password'
"tenantId": 'your_tenantId'
"username": 'your_api_username'
$ bin/conoha-billing
775

( ゚д゚) あら簡単

自分用なので色々投げやりです。username, password, tenantIdはConfig::Pitに"conoha"で設定されているとハードコードしてあります。きっと車輪の再発明で、どこにでもいくらでもクライアントは転がってそうなんですが、調べるよりはHTTP::Tinyで書いた方が早いなと思って自分に必要なものだけbinに詰めた感じ。

基本的にTokenさえ取ってdefault_headersに詰めた後はどうにでもなるので、使いたいAPIが出てきてから拡張するのは難しくない、はず。

bin/conoha-billingは単に最新のinvoiceを取ってきて数字だけぬるっと返すので、cronに

$ crontab -l
0 10 * * * [ $(/home/yoku0825/git/p5-conoha-api/bin/conoha-billing) -gt 1000 ] && (echo "Billing alert!!" | mail -s "conoha billing alert" yoku0825@gmail.com)

としておくだけで、簡単に事故は防げるわけです。がんばれ、過去の俺。

yoku0825/p5-conoha-api



ちなみに普段、ConoHaのVPSは
* MroongaのDockerイメージをビルドしたりテストしたり
* rpmパッケージをビルドしたり
* MySQLのソースコード読むのに使ってたり
* Slackに定期的にポストを投げ込んでくれるbotがDockerコンテナーで動いてAPIの口を開けてたり
* GitBucketのDockerコンテナーが動いていたり
* MySQLが4つくらい起動していたり
* MySQL Routerがつらくなかったり
します。

グローバルIP持っててお安いのはいいですね(でもDockerとか色々詰め込んでるから、現プランのSSD 50GBより旧プランの100GBの方が良かったかな。。)

ちなみに3次元のこのはちゃんは初代の人がすきです :)


それでは、良いお年を。

0 件のコメント :

コメントを投稿