Module: OvirtMetrics

Defined in:
lib/ovirt_metrics.rb,
lib/ovirt_metrics/version.rb,
lib/ovirt_metrics/nic_metrics.rb,
lib/ovirt_metrics/models/period.rb,
lib/ovirt_metrics/models/calendar.rb,
lib/ovirt_metrics/column_definitions.rb,
lib/ovirt_metrics/models/tag_details.rb,
lib/ovirt_metrics/models/disks_vm_map.rb,
lib/ovirt_metrics/models/ovirt_history.rb,
lib/ovirt_metrics/models/enum_translator.rb,
lib/ovirt_metrics/models/vm_configuration.rb,
lib/ovirt_metrics/models/vm_daily_history.rb,
lib/ovirt_metrics/models/vm_hourly_history.rb,
lib/ovirt_metrics/models/host_configuration.rb,
lib/ovirt_metrics/models/host_daily_history.rb,
lib/ovirt_metrics/models/vm_samples_history.rb,
lib/ovirt_metrics/models/host_hourly_history.rb,
lib/ovirt_metrics/models/host_samples_history.rb,
lib/ovirt_metrics/models/cluster_configuration.rb,
lib/ovirt_metrics/models/history_configuration.rb,
lib/ovirt_metrics/models/tag_relations_history.rb,
lib/ovirt_metrics/models/vm_disk_configuration.rb,
lib/ovirt_metrics/models/vm_disk_daily_history.rb,
lib/ovirt_metrics/models/vm_disk_hourly_history.rb,
lib/ovirt_metrics/models/vm_disk_samples_history.rb,
lib/ovirt_metrics/models/datacenter_configuration.rb,
lib/ovirt_metrics/models/datacenter_daily_history.rb,
lib/ovirt_metrics/models/datacenter_hourly_history.rb,
lib/ovirt_metrics/models/datacenter_samples_history.rb,
lib/ovirt_metrics/models/vm_interface_configuration.rb,
lib/ovirt_metrics/models/vm_interface_daily_history.rb,
lib/ovirt_metrics/models/vm_interface_hourly_history.rb,
lib/ovirt_metrics/models/host_interface_configuration.rb,
lib/ovirt_metrics/models/host_interface_daily_history.rb,
lib/ovirt_metrics/models/storage_domain_configuration.rb,
lib/ovirt_metrics/models/storage_domain_daily_history.rb,
lib/ovirt_metrics/models/vm_disks_usage_daily_history.rb,
lib/ovirt_metrics/models/vm_interface_samples_history.rb,
lib/ovirt_metrics/models/datacenter_storage_domain_map.rb,
lib/ovirt_metrics/models/host_interface_hourly_history.rb,
lib/ovirt_metrics/models/storage_domain_hourly_history.rb,
lib/ovirt_metrics/models/vm_disks_usage_hourly_history.rb,
lib/ovirt_metrics/models/host_interface_samples_history.rb,
lib/ovirt_metrics/models/storage_domain_samples_history.rb,
lib/ovirt_metrics/models/vm_disks_usage_samples_history.rb

Defined Under Namespace

Modules: NicMetrics Classes: Calendar, ClusterConfiguration, DatacenterConfiguration, DatacenterDailyHistory, DatacenterHourlyHistory, DatacenterSamplesHistory, DatacenterStorageDomainMap, DisksVmMap, EnumTranslator, HistoryConfiguration, HostConfiguration, HostDailyHistory, HostHourlyHistory, HostInterfaceConfiguration, HostInterfaceDailyHistory, HostInterfaceHourlyHistory, HostInterfaceSamplesHistory, HostSamplesHistory, OvirtHistory, Period, StorageDomainConfiguration, StorageDomainDailyHistory, StorageDomainHourlyHistory, StorageDomainSamplesHistory, TagDetails, TagRelationsHistory, VmConfiguration, VmDailyHistory, VmDiskConfiguration, VmDiskDailyHistory, VmDiskHourlyHistory, VmDiskSamplesHistory, VmDisksUsageDailyHistory, VmDisksUsageHourlyHistory, VmDisksUsageSamplesHistory, VmHourlyHistory, VmInterfaceConfiguration, VmInterfaceDailyHistory, VmInterfaceHourlyHistory, VmInterfaceSamplesHistory, VmSamplesHistory

Constant Summary collapse

DEFAULT_HISTORY_DATABASE_NAME =
"ovirt_engine_history".freeze
DEFAULT_HISTORY_DATABASE_NAME_3_0 =
"rhevm_history".freeze
VM_NOT_RUNNING =
0
VERSION =
"1.2.0"
COMMON_COLUMN_DEFINITIONS =
{
  "cpu_usage_rate_average" => {
    :ovirt_key    => :cpu_usage_rate_average,
    :ovirt_method => lambda { |metrics| metrics[:metric].cpu_usage_percent.to_f },
    :counter      => {
      :counter_key           => "cpu_usage_rate_average",
      :instance              => "",
      :capture_interval      => "20",
      :precision             => 1,
      :rollup                => "average",
      :unit_key              => "percent",
      :capture_interval_name => "realtime"
    }
  },

  "cpu_usagemhz_rate_average" => {
    :ovirt_key    => :cpu_usagemhz_rate_average,
    :ovirt_method => lambda { |metrics| metrics[:metric].cpu_usagemhz_rate_average },
    :counter      => {
      :counter_key           => "cpu_usagemhz_rate_average",
      :instance              => "",
      :capture_interval      => "20",
      :precision             => 2,
      :rollup                => "average",
      :unit_key              => "megahertz",
      :capture_interval_name => "realtime"
    }
  },

  "mem_usage_absolute_average" => {
    :ovirt_key    => :mem_usage_absolute_average,
    :ovirt_method => lambda { |metrics| metrics[:metric].memory_usage_percent.to_f },
    :counter      => {
      :counter_key           => "mem_usage_absolute_average",
      :instance              => "",
      :capture_interval      => "20",
      :precision             => 1,
      :rollup                => "average",
      :unit_key              => "percent",
      :capture_interval_name => "realtime"
    }
  },
}
VM_COLUMN_DEFINITIONS =
{
  "cpu_usage_rate_average"     => COMMON_COLUMN_DEFINITIONS["cpu_usage_rate_average"],
  "cpu_usagemhz_rate_average"  => COMMON_COLUMN_DEFINITIONS["cpu_usagemhz_rate_average"],
  "mem_usage_absolute_average" => COMMON_COLUMN_DEFINITIONS["mem_usage_absolute_average"],

  "disk_usage_rate_average" => {
    :ovirt_key    => :disk_usage_rate_average,
    :ovirt_method => lambda { |metrics| VmDiskSamplesHistory.disk_usage_rate_average_in_kilobytes_per_second(metrics[:disk]) },
    :counter      => {
      :counter_key           => "disk_usage_rate_average",
      :instance              => "",
      :capture_interval      => "20",
      :precision             => 2,
      :rollup                => "average",
      :unit_key              => "kilobytespersecond",
      :capture_interval_name => "realtime"
    }
  },

  "net_usage_rate_average" => {
    :ovirt_key    => :net_usage_rate_average,
    :ovirt_method => lambda { |metrics| VmInterfaceSamplesHistory.net_usage_rate_average_in_kilobytes_per_second(metrics[:nic]) },
    :counter      => {
      :counter_key           => "net_usage_rate_average",
      :instance              => "",
      :capture_interval      => "20",
      :precision             => 2,
      :rollup                => "average",
      :unit_key              => "kilobytespersecond",
      :capture_interval_name => "realtime"
    }
  }
}
HOST_COLUMN_DEFINITIONS =
{
  "cpu_usage_rate_average"     => COMMON_COLUMN_DEFINITIONS["cpu_usage_rate_average"],
  "cpu_usagemhz_rate_average"  => COMMON_COLUMN_DEFINITIONS["cpu_usagemhz_rate_average"],
  "mem_usage_absolute_average" => COMMON_COLUMN_DEFINITIONS["mem_usage_absolute_average"],

  "net_usage_rate_average" => {
    :ovirt_key    => :net_usage_rate_average,
    :ovirt_method => lambda { |metrics| HostInterfaceSamplesHistory.net_usage_rate_average_in_kilobytes_per_second(metrics[:nic]) },
    :counter      => {
      :counter_key           => "net_usage_rate_average",
      :instance              => "",
      :capture_interval      => "20",
      :precision             => 2,
      :rollup                => "average",
      :unit_key              => "kilobytespersecond",
      :capture_interval_name => "realtime"
    }
  }
}

Class Method Summary collapse

Class Method Details

.connect(opts) ⇒ Object

Raises:

  • (ArgumentError)


19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/ovirt_metrics.rb', line 19

def self.connect(opts)
  opts            ||= {}
  opts[:port]     ||= 5432
  opts[:database] ||= DEFAULT_HISTORY_DATABASE_NAME
  opts[:adapter]    = begin
                        if ActiveRecord::VERSION::MAJOR > 4
                          require "active_record/connection_adapters/ovirt_legacy_postgresql_adapter"
                          'ovirt_legacy_postgresql'
                        else
                          'postgresql'
                        end
                      end

  # Don't allow accidental connections to localhost.  A blank host will
  # connect to localhost, so don't allow that at all.
  host = opts[:host].to_s.strip
  raise ArgumentError, "host cannot be blank"            if host.empty?
  raise ArgumentError, "host cannot be set to localhost" if ["localhost", "localhost.localdomain", "127.0.0.1", "0.0.0.0"].include?(host)

  OvirtHistory.establish_connection(opts)
end

.connected?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/ovirt_metrics.rb', line 41

def self.connected?
  OvirtHistory.connection.active?
end

.disconnectObject



45
46
47
# File 'lib/ovirt_metrics.rb', line 45

def self.disconnect
  OvirtHistory.connection.disconnect!
end

.establish_connection(opts) ⇒ Object



15
16
17
# File 'lib/ovirt_metrics.rb', line 15

def self.establish_connection(opts)
  self.connect(opts)
end

.host_realtime(host_id, start_time = nil, end_time = nil) ⇒ Object



56
57
58
59
60
# File 'lib/ovirt_metrics.rb', line 56

def self.host_realtime(host_id, start_time = nil, end_time = nil)
  metrics      = query_host_realtime_metrics(host_id, start_time, end_time).all
  nic_metrics  = query_host_nic_realtime_metrics(host_id, start_time, end_time)
  host_realtime_metrics_to_hashes(metrics, nic_metrics)
end

.vm_realtime(vm_id, start_time = nil, end_time = nil) ⇒ Object



49
50
51
52
53
54
# File 'lib/ovirt_metrics.rb', line 49

def self.vm_realtime(vm_id, start_time = nil, end_time = nil)
  metrics      = query_vm_realtime_metrics(vm_id, start_time, end_time)
  disk_metrics = query_vm_disk_realtime_metrics(vm_id, start_time, end_time)
  nic_metrics  = query_vm_nic_realtime_metrics(vm_id, start_time, end_time)
  vm_realtime_metrics_to_hashes(metrics, disk_metrics, nic_metrics)
end