2015年10月26日月曜日

fuelphpでエラーをslackに送ってくれるpetsというパッケージを作ってみた的なお話

  • このエントリーをはてなブックマークに追加

fuelphpでサーバサイドを開発している際に、もちろんエラーを確認するわけだけど、
DEVELOPMENT環境であるならばどういったエラーが出てるとかそういう事は見れるわけだけど、
PRODUCTION環境ではoopsだったりviews/errors/production.phpに設定しているファイルが出るから見れないわけで。
で、そういった場合はfuel/app/logs/を見ればわかるんだけど、中々に面倒だし、
そもそもスケーリングしてる環境だとどのサーバで起きた問題なんだとかそういうこともあるわけで。
というかそもそも本番環境でエラーが出すなよっていう話ではあるんだけれども、まぁ見たいよねと。

ってことでそれをslackに送ってしまえばそもそもいつでも確認できるしリアルタイムに見れるわけだし。
ってことでそのためのパッケージを作ったので今日はその紹介をば。
ちなみにpush error to slackってことでpetsっていう名前。

watanabeyu/push-error-to-slack

こちらからダウンロード出来ます的な。

説明を頑張って英語で書いたから簡単に書くとすると、
このパッケージを読み込むと、\Fuel\Core\Errorのとある二つのメソッドをoverrideして、
slackのwebhook用URLに飛ばすって感じのパッケージ。
override元のメソッドについては影響が出ないようになっているので特に気にする必要はなかったり。
return array(
  'webhook_url' => 'This is webhook url',
  'channel' => 'set channel name stating with # or @',
  'icon_url' => 'your service icon url', //your service icon url
  'mode' => 'attachments' //payload or attachments
);
ここでちょいちょいってセッティングすれば色々と出来るよ的な。
icon_urlとかをサービスのアイコンにするとわかりやすい気がする。
ちなみに初期アイコンはダンディ坂野のゲッツのアイコンになっているので要注意。

ってことでこれを使えば本番環境だろうがテスト環境だろうが、
slackさえ開いていればどこが原因かわかるわけで。
ちなみに通知が飛んでくるチャンネルは新しく作った方がごっちゃにならないからいいんじゃないかと。
もしエラーが多いサービスとかだとひっきりなしに通知が飛んで来て最悪なことになるかもしれないけど…的な。

Adsense