Bluepill adalah process monitoring tool yang dibuat dengan bahasa Ruby yang dibuat oleh Arya Asemanfar dan kedua rekan kerjanya. Latar belakang dibuatnnya Bluepill adalah dikarenakan process monitoring tool yang digunakan yang bernama God mengalami memory leak. Oleh sebab itulah tujuan utama dari Bluepill ini adalah membuat process monitoring tool yang tidak terjadi memory leak.

gem install bluepill

Contoh Penggunaan

Untuk contoh penggunaan, kode ini terinspirasi dari rails.co.za bagaimana mengimplementasikan bluepill untuk monitoring delayed_job.

# RAILS_ROOT/config/bluepill.pill
Bluepill.application("my_complex_app") do |app|
  app.process("delayed_job") do |process|
  process.start_command = "/path/to/rails_root/script/delayed_job -e production start"
  process.stop_command  = "/path/to/rails_root/script/delayed_job -e production stop"
  process.pid_file = "/path/to/rails_root/tmp/pids/delayed_job.pid"

  process.checks :cpu_usage, :every => 10.seconds, :below => 5, :times => 3
  process.checks :mem_usage, :every => 10.seconds, :below => 100.megabytes, :times => [3,5]
  end
end

Untuk memulai monitoring, jalankan sebagai root.

sudo bluepill load /path/to/rails_root/config/bluepill.pill

sudo bluepill status
delayed_job(pid:29710): up

Berikut ini adalah contoh kode saya untuk memonitor MySQL.

# /home/aji/lab/bluepill.pill
Bluepill.application("mysql") do |app|
  app.process("mysql_daemon") do |process|
    process.start_command = "/opt/pkg/mysql/bin/mysqld_safe --user=mysql &"

    process.checks :mem_usage, :every => 15.seconds, :times => [3,5]
    process.checks :mem_usage, :every => 15.seconds, :below => 100.megabytes, :times => [3,5]
  end
end

Kemudian jalankan perintah-perintah berikut.

root@slacky:/home/aji/lab# bluepill load bluepill.pill

root@slacky:/home/aji/lab# bluepill mysql start
Sent start to:
  :mysql_daemon

root@slacky:/home/aji/lab# bluepill mysql status
mysql_daemon(pid:): starting