webサーバー死活監視自作してみた by ruby + sinatra + heroku
自分のサービスの監視とか全くしてないのでどうかと思い作ってみた。
定期的にwebサービスへGETリクエストを送りレスポンスが200以外だったらアラートメールを送る
っていう単純なもの
デモ
http://webservicemonitor.herokuapp.com/
ソース
shoprev/webservicemonitor · GitHub
定期実行はrufus-scheduler gemで
require 'rufus-scheduler' scheduler = Rufus::Scheduler.new scheduler.every '3h' do # do something every 3 hours end
webページの表示はsinatraのstreaming使った
require 'sinatra' set server: 'thin', connections: [] get '/stream', provides: 'text/event-stream' do stream :keep_open do |out| settings.connections << out out.callback { settings.connections.delete(out) } end end post '/' do settings.connections.each { |out| out << "data: #{params[:msg]}\n\n" } end
webページのレイアウトはtwitterbootstrap
参考
jmettraux/rufus-scheduler · GitHub
Sinatra::Streaming (part of Sinatra::Contrib)
uu59のメモ | Sinatra 1.3で追加されたstreamのHTTP解剖学
https://gist.github.com/rkh/1476463