App::Monitor::Simpleをcpanに上げた
昔書いた記事
http://d.hatena.ne.jp/tori243/20120609/1339255200
最近cronで使う機会増えてて、cpanあったほうが楽だなーと思ってcpanizeしました。
ついでにMinilla化したのはいいんですが、なんか怖くて普通にtarballでアップロードしました。。。
今回、いらない依存を削除したんですけど
なんでAnyEvent使ってたのか思い出せない。。*1
*1:普通にAnyEvent使いたかっただけだろうなー
YAPC::Asia 2013 に参加してなんか書いてたというお話
なんだかんだで今年で4回目のYAPC::Asia。
なんか、いろいろ下書きしたんですが
グダグダな記事になりそうだったので一言でまとめますと、
最高
でした!!!
会場、ネットワーク環境、トーク(はずれなし)、懇親会(しかも無料!DeNA++)、どれをとっても最高。
としか言い用がありません。今年も存分に楽しませて頂きました。
Perl置かれている現状や来年のYAPC::Asiaなど、心配事は多々あるわけですが
自分はグダグダ言わずにコード書いて
Perlに貢献していくしかないかなーなどと思っています。
というわけでYAPC会場で暇を見つけてこんなの書いてました。
redis-stats
redis-stats > fluentd > GrowthForecast
というところまでやりたかったんですが、
redis-stats書くまでしか行けませんでした。書くの遅。
今回1000人超規模というとても大きなイベントになり
運営されていたスタッフの方々は例年にもまして大変だったと思います。
本当にお疲れ様でしたそしてありがとうございました!
VM::EC2でIAMロール認証を行う
VM::EC2でもIAMロール認証したくて、
VM::EC2にプルリクでもしようかなとコード眺めてたところ
「あれ、別にコード変えなくても今のままで行けるんじゃね?」
と気付いてしまった。
use strict; use warnings; use VM::EC2; # dummy instance my $ec2_dummy = VM::EC2->new( -access_key => 'a', # 空だと怒られる。。。 -secret_key => 'b', # 空だと怒られる。。。 ); # get iam token my $token = $ec2_dummy->instance_metadata->iam_credentials; # get ec2 instance my $ec2 = VM::EC2->new( -security_token => $token, ); # api access... print $ec2->describe_instances();
一度ダミーインスタンスを作って、iam_credentialsを取得。
そのトークンを用いて再認証したらいけた。
Redisのメモリ設定とファイル設定のdiff取るスクリプト書いた
※2013/07/25 スクリプトと概要をUpdateしました
次期バージョンであるRedis 2.8ではこの問題を少しでも解決しようと、 CONFIG REWRITE というコマンドで、redis.confの書き換えを行えるらしい、 が、結局それを忘れたら同じことなのでこの問題の解決にはなるかは微妙なところだ。 メモリ上にしか反映されていない設定があるかどうかをなんらかの方法でチェックすることができれば監視するなどできると思うのだが…。
http://unknownplace.org/archives/twilio-redis-incident.html
書き捨てっぽいですが、差分をとるスクリプトをペロッと書いてみました。
概要
以下のようなことをしています。
- 値が空のキーはデフォルト値を設定
- 単位(K/M/G)を最小単位に戻す
- メモリ上のキーを正とします*1
- メモリにのみキーが存在する場合、ファイルのキーにデフォルト値を追加設定
- ファイルにのみキーが存在する場合、ファイルのキーを削除
- 上記ハッシュをテキスト化してdiff取る
- 差分がないと「0」、差分があると「1」をステータスコードとして返します
チェックスクリプトとしてお使いください〜
*1:そうしないとチェックしようがないため
redis-topにMax値との比率を出すオプションを追加しました
CONFIG GET で取れる値(maxmemoryやmaxclientsなど)を使って使用率が確認できるとより便利かなぁと思います
Redisの監視/分析系ツールまとめ
なるほど。そうしましょう!
しました
https://github.com/toritori0318/p5-App-RedisTop
まだGithubのみ。
※2013/7/17 追記
さらに--slowlogオプションも追加しました。
オプションで--memoryperと--connperと--slowlogを追加しています。デフォルトでは表示されません。
ただ、maxmemoryとmaxclientsは
redis.confに明示的に指定しておかないとCONFIG GETで値取れないんですよねー*1
そこだけ注意しましょう。
しばらく様子見て問題無さそうならCPAN上げようかと思います
*1:--memoryや--connとあえて別にしているのもその理由
Yogafire 0.0.4 release!
ChangeLog
- instance-type で表示していた価格を http://aws.amazon.com/ec2/pricing/pricing-on-demand-instances.json から取得するようにした
- instance-type に 「view-detail」「region」「platform」オプション追加
instance-type で表示していた価格
http://aws.amazon.com/ec2/pricing/pricing-on-demand-instances.json から動的に取得するようにしました。
これで常に最新価格情報を表示してくれるようになった!
instance-type に 「view-detail」「region」「platform」オプション追加
regionを個別に指定できるようにしました。
またplatformは「linux/mswin」のいずれかを指定出来ます。
また view-detail を追加し、更に詳細な情報を表示するようにしました。
具体的には「ebs_optimized」「instance_storage」「price_month」を表示項目に追加しました。
補足
検索フィルタも機能追加しようとしていましたが、
結構面倒な上そんなに需要ないかなと思い実装していません。
時間があれば実装するかも。。。
Yogafire 0.0.3 release!
vpc-infoコマンド追加
yoga vpc-info
vpcを選択すると、vpcに関連する情報をダラダラと表示します。
例としてVPC Wizardの「vpc with public and private subnets」で作ったVPCで試してみました。こんな感じ。
vpc-graphコマンド追加
yoga vpc-graph
vpcを選択すると、vpcに関連するリソースのリレーション図をテキストで表示します。
さらに、オプションを指定すると詳細に表示できたりします。
yoga vpc-graph --route-table --detail
cmd / get / put コマンドで concurrencyオプション追加
並列オプションを指定できるようにしました。わーい
# 3並列でuptimeをリモート実行 yoga cmd 'www*' 'uptime' -c 3 # 5並列でファイルをput yoga put 'db*' ./hoge.conf /path/to/conf/ -c 3
ぼんやりと
- Chef連携出来ないかな〜。
- APIを更に整理した Yogaflame モジュール考察中。