Tuesday, January 5, 2010

Bluepill - Process Monitoring Tool

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
Info lebih lanjut mengenai bluepill: http://github.com/arya/bluepill

Update:
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
[email protected]:/home/aji/lab# bluepill load bluepill.pill

[email protected]:/home/aji/lab# bluepill mysql start 
Sent start to:
  :mysql_daemon

[email protected]:/home/aji/lab# bluepill mysql status
mysql_daemon(pid:): starting



No comments:

Post a Comment

© Railsmine