Rails アプリケーションとDBサーバーの死活監視するためのURLを提供するEngine
/MOUNT_PATH/heartbeat
アプリケーションの状態に問題がなければ
- Status: 200 OK
- body: ok
を返す
- Web
- DB
- Redis
- Memcached
/MOUNT_PATH/version
アプリ名・バージョン・REVISION を取得する
/MOUNT_PATH/stats/worker
- enqueued (処理待ちのQueueの数)
- processed (完了したQueueの数)
- failed (sidekiq限定)
- scheduled_size (sidekiq限定)
- retry_size (sidekiq限定)
- dead_size (sidekiq限定)
- processes_size (sidekiq限定)
- default_queue_latency (sidekiq限定)
- workers_size (sidekiq限定)
を返す
- write Gemfile
gem "komachi_heartbeat"
bundle install
- write config/routes.rb
mount KomachiHeartbeat::Engine => "/ops"
application_version
application_name
db_check_enabled
- DBのチェックを行うかどうか
- default: true
database_class_names
- DBのチェックに利用するクラス名の配列
- default: ["ActiveRecord::Base"]
redis_check_enabled
- Redisをチェックするかどうか
- default: false
redis_servers
- Redisサーバーへの接続情報のハッシュの配列
- default: [{host: "localhost", port: 6379, db: 0}]
memcached_check_enabled
- Memcachedをチェックするかどうか
- default: false
memcached_server_names
- Memcachedのサーバー名、接続ポート(省略時はデフォルトポート)をつなげた文字列の配列 e.g. ['one.example.com:11211', 'two.example.com:11211']
- default: ['localhost']
worker_stats_enabled
- WorkerのQueueの数をチェックするかどうか
- default: false
revision_path
- REVISION ファイルの位置
- default:
-> { Rails.root.join("REVISION") }
Rails.application.config.heartbeat.application_name = "YOUR APP NAME"
Rails.application.config.heartbeat.application_version = "YOUR APP version"
see https://github.com/mitaku/komachi_heartbeat/blob/master/spec/dummy/config/application.rb
This project rocks and uses MIT-LICENSE.