春はすぐそこ
2013年 2月 の投稿一覧
黙々
朝から病院に行ったり図書館行ったりしていた。図書館ではこの本を借りた。
午後からREMPの開発。REMP自体に幾つか機能を追加しようとしていて黙々とAPI開発など。
結構面白い機能になりそうなので、ささやかにご期待ください。
雪
朝、軽く外が白くなっていましたが、すぐに素敵な青空。*1
*1:久しぶりにものすごくどうでもいいことを書いた
ImpasというAPIサービスを作った
個人でささやかにWebサービスを運営されている方向けにImpasというAPIサービスを作りました。
このサービスは「twitter上でのツイート数、facebook上でのいいね数、はてなブックマークでのブックマーク数で簡単にランキングを生成する」ことができるAPIサービスです。
以下、概要図。
Webアプリケーション開発者はImpasのAPIを使ってImpasにランキング対象にしたい(各種ソーシャルパラメータを計測したいURL)を登録することで定期的にImpasがURLをクロールしてパラメータを取得して記録します。その記録を利用してImpasはランキングを生成するので、再びWebアプリケーション開発者はAPIを通じてランキングを取得することができます。
RubyクライアントをGem(impas-client)で用意していますので、以下の様な形で利用することができます。
URLの登録例
# クライアントの設定 require 'impas-client' client = Impas::Client.new() # URLを集計対象へ追加 IMPAS_GRP_KEY = ****** client.add_url( IMPAS_GRP_KEY, "http://www.youtube.com/watch?v=2HQkugdXyHY" ) # ランキング取得 fbRank = client.ranking IMPAS_GRP_KEY, "fb" twRank = client.ranking IMPAS_GRP_KEY, "twitter" hatenaRank = client.ranking IMPAS_GRP_KEY, "hatena"
あるいは、以下の様に直接POSTやGETリクエストでURLの登録やランキング情報の取得もできます。以下ははてなブックマークのトップ10ランキングを取得する場合。
http://impas-hideack.sqale.jp/api/ranking/IMPAS_GRP_KEY/hatena/10
ランキングはJSONで取得されます。
{ "result": "ok", "explain": "", "description": { "ranking": [ { "callcount": 16, "fb": 0, "hatena": 809, "tw": 17643, "url": "http://www.youtube.com/watch?v=MGt25mv4-2Q" }, { "callcount": 12, "fb": 0, "hatena": 368, "tw": 10591, "url": "http://www.youtube.com/watch?v=cfpX8lkaSdk" },
ドキュメント等々不足している感はありますが、もし興味がある方が居られたら是非ご利用くださいませ。
ロゴ
REMPチームでお馴染み(?)の@getsukikyuがあっという間にロゴ画像を作ってくれましたが、何故か大王イカなのかは昨今の話題からお察しください。*1
あと、サービス名の"Impas"はドラゴンクエストの魔法のインパスから拝借しました。
*1:あっという間に作ってくれたのですが、それでこのクオリティというのがすごい…
chocolate
chocolate cube.
PadrinoアプリでNewrelic
New relic
New relicはパフォーマンス監視サービスでRackアプリケーションの場合、用意されたnewrelic_rpmというGemをインストールするのみでNew relicが用意するダッシュボードでページが表示されるまでのパフォーマンスの詳細な内訳(Ruby自体の処理時間、DBが要した処理時間やスロークエリ等)を知ることができます。
アカウント作成は無償でもできて、無償の場合、1アプリケーションの直近30分のパフォーマンスを知ることができます。
今回はSqaleで動かしているPadrinoアプリのパフォーマンス監視を行うまでの手順を整理します。
アカウントを作成する
Newrelicを開くとトップページに "Create Your Free Account!" のリンクがあるのでここからアカウントを作成します。
newrelic.yml をダウンロードする
アカウントを作成してログインするとnewrelic用の設定ファイル newrelic.yml
をダウンロードできるのでダウンロードしてPadrinoプロジェクト下のconfigディレクトリに配置します。
Gemfileにnewrelic用のライブラリ追加
Padrinoアプリで利用しているGemfileにnewrelic用のクライアントをインストールするための2行を追加。
# Padrino Stable Gem gem 'padrino', '0.10.7' # for newrelic gem 'padrino-rpm', :git => "https://github.com/Asquera/padrino-rpm.git" gem 'newrelic_rpm'
2013.2.24追記
- ここでポイントは
gem 'padrino'〜
の下にnewrelic用のgemを追加することです - padrino読む前に追加するとエラーになります。
Unicorn用の設定追記
Sqaleでは標準でアプリケーションサーバがunicornなのでこちらを参考にして起動時の設定ファイルに追記します。
# config/boot.rb ::NewRelic::Agent.after_fork(:force_reconnect => true) # Unicorn用に追加 Padrino.load!
実行結果
以上の設定を行ってSqaleへデプロイします。
そうすると正常に稼働すれば、数分後にnew relicのダッシュボードにパフォーマンス情報が表示されます。
また、組み込んだPadrinoアプリ上の log/newrelic_agent.log からも確認できます。
sqale@impas-hideack-1:~$ tail -f current/log/newrelic_agent.log [02/10/13 17:13:15 +0900 impas-hideack-1 (24017)] INFO : Connected to NewRelic Service at collector-5.newrelic.com:80 [02/10/13 17:13:15 +0900 impas-hideack-1 (24017)] INFO : Reporting performance data every 60 seconds. [02/10/13 18:13:03 +0900 impas-hideack-1 (24175)] INFO : Dispatcher: sinatra [02/10/13 18:13:03 +0900 impas-hideack-1 (24175)] INFO : Application: Impas [02/10/13 18:13:03 +0900 impas-hideack-1 (24175)] INFO : New Relic Ruby Agent 3.3.5 Initialized: pid = 24175 [02/10/13 18:13:03 +0900 impas-hideack-1 (24175)] INFO : Agent Log at /home/sqale/current/log/newrelic_agent.log [02/10/13 18:13:13 +0900 impas-hideack-1 (24175)] INFO : Resolved collector.newrelic.com to 204.93.223.153 [02/10/13 18:13:14 +0900 impas-hideack-1 (24175)] INFO : Resolved collector-5.newrelic.com to 204.93.223.139 [02/10/13 18:13:14 +0900 impas-hideack-1 (24175)] INFO : Connected to NewRelic Service at collector-5.newrelic.com:80 [02/10/13 18:13:14 +0900 impas-hideack-1 (24175)] INFO : Reporting performance data every 60 seconds.
機能を追加した際等々の折にアプリケーション側のパフォーマンス変化を気にしたい場合などに気楽に確認できるため便利です。
twitter botに機能追加 – REMPその後(その3)
REMPには@remp_jp というtwitterのbotがあって定期的に今までもREMP上で直近再生されたYoutube動画をツイートさせていたのですが、最近昨日を足して以下の様な内容をツイートさせる様にしました。
内容的には直近再生された動画ではてなブックマーク数が大きいものでソートしてランキングとしてツイートさせています。例えば2月6日だと以下の様な具合。
REMPで最近再生された「はてなブックマーク」で人気の動画ランキングです!
1位 162ブックマーク - サカナクション/『バッハの旋律を夜に聴いたせいです。』 URL
眺めていると最近注目されている曲が上がって面白かったりします。 興味がある方は是非、@remp_jpのフォローを!
あと単純な様ですが、ランキングを作るためのパラメータ収集をする仕組みは別途作ったので紹介はまた今度。。。
1月に読んだ本
新しく読んだ本は計7冊。 (しかもレシピ本も入っているので少ないですね)
お休みの間は以前読んだ本を改めて読むことが多かった感。
REMPのドメイン変更
今日の定時後に @hika69 とREMPのサービスドメインを http://www.remp.jp/ に変更する作業を一緒に行いました。
今までは、アプリケーションサーバ(Sqale)にremp.rockf.esという独自ドメインを充てて動いており、remp.jpドメインからはリダイレクトされていましたが、今度からは逆でremp.jpが主ドメインになります!
実はステッカーは以前から www.remp.jp だったのでステッカーに揃いました。
最近のコメント