Sha256: 680b816940d949cc45642921ce9879390375e82a02423d18942931dc164a5e4d

Contents?: true

Size: 1.2 KB

Versions: 44

Compression:

Stored size: 1.2 KB

Contents

module PoolParty
  module Monitors
    
    class MemoryMonitor < BaseMonitor
      
      def run
        uname = %x[uname]
        case uname.chomp
        when "Darwin"
          darwin_memory_usage
        else
          nix_memory_usage
        end                
      end
      
      def darwin_memory_usage
        str = %x[vm_stat]
        keep_array = []
        array_of_strings = str
        begin
          free_memory = array_of_strings[/free:(\W*)+([0-9]+)/, 2].to_f
          active_memory = array_of_strings[/active:(\W*)([0-9]+)/, 2].to_f
          inactive_memory = array_of_strings[/inactive:(\W*)([0-9]+)/, 2].to_f

          used_memory = (active_memory + inactive_memory)
          total_memory = (free_memory + active_memory + inactive_memory)

          used_memory / total_memory
        rescue Exception => e
          0.0
        end                 
      end
      
      def nix_memory_usage
        str = %x[free -m | grep -i mem]
        begin
          total_memory = str.split[1].to_f
          used_memory = str.split[2].to_f

          used_memory / total_memory
        rescue Exception => e
          0.0
        end
      end
            
    end
    
    register_monitor :memory
  end
end

Version data entries

44 entries across 44 versions & 2 rubygems

Version Path
auser-poolparty-0.2.48 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.49 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.50 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.51 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.52 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.53 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.54 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.55 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.56 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.57 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.58 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.59 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.60 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.61 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.62 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.63 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.64 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.65 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.66 lib/poolparty/monitors/monitors/memory_monitor.rb
auser-poolparty-0.2.67 lib/poolparty/monitors/monitors/memory_monitor.rb