Sha256: aaebffaade60f601d17ba9f9cf22a0e90dd79546c279762072e164464e98a6fb

Contents?: true

Size: 914 Bytes

Versions: 2

Compression:

Stored size: 914 Bytes

Contents

require 'rbconfig'
require 'socket'

module ServerMetrics
  class SystemInfo

    def self.architecture
      RbConfig::CONFIG['target_cpu']
    end

    def self.os
      RbConfig::CONFIG['target_os']
    end

    def self.os_version
      `uname -r`.chomp
    end

    def self.num_processors
      if os =~ /(darwin|freebsd)/
        `sysctl -n hw.ncpu`.to_i
      elsif os =~ /linux/
        lines = `cat /proc/cpuinfo`.split("\n")
        lines.grep(/^processor\s*:/i).size
      end
    rescue
      1
    end

    def self.timezone
      Time.now.zone
    end

    def self.timezone_offset
      Time.now.utc_offset/60/60
    end

    def self.hostname
      Socket.gethostname
    end

    def self.to_h
      {:architecture => architecture, :os=>os, :os_version=>os_version, :num_processors=>num_processors, :hostname=>hostname, :timezone=>timezone, :timezone_offset=>timezone_offset }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
server_metrics-1.1.1 lib/server_metrics/system_info.rb
server_metrics-1.1.1.pre lib/server_metrics/system_info.rb