Gurpartap/cognizant

View on GitHub
lib/cognizant/process/conditions/memory_usage.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Cognizant
  class Process
    module Conditions
      class MemoryUsage < PollCondition
        MB = 1024 ** 2
        FORMAT_STR = "%d%s"
        MB_LABEL = "MB"
        KB_LABEL = "KB"

        def run(pid)
          Cognizant::System.memory_usage(pid).to_f
        end

        def check(value)
          value.kilobytes > @options[:above].to_f
        end

        def format_value(value)
          if value.kilobytes >= MB
            FORMAT_STR % [(value / 1024).round, MB_LABEL]
          else
            FORMAT_STR % [value, KB_LABEL]
          end
        end
      end
    end
  end
end