cloudstack-nagios 0.17.6 → 0.17.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloudstack-nagios (0.17.0)
4
+ cloudstack-nagios (0.17.3)
5
5
  cloudstack_client (~> 0.7, >= 0.7.1)
6
6
  erubis (~> 2.7.0)
7
7
  highline (~> 1.6.20)
@@ -24,15 +24,29 @@ class SystemVm < CloudstackNagios::Base
24
24
  end
25
25
 
26
26
  desc "cpu", "check memory on host"
27
+ option :mode,
28
+ desc: "average mode gives the average value over all CPU's and max the highest usage of any CPU",
29
+ :enum => %w(average max),
30
+ aliases: '-m',
31
+ default: 'average'
27
32
  def cpu
28
33
  begin
29
34
  host = systemvm_host
30
35
  mpstat_output = ""
31
36
  on host do |h|
32
- mpstat_output = capture(:mpstat)
37
+ mpstat_output = capture(:mpstat, '-P ALL', '2', '2')
33
38
  end
34
- values = mpstat_output.scan(/\d+\.\d+/)
35
- usage = 100 - values[-1].to_f
39
+ # max takes the min idle value, removes zero values before
40
+ value = if options[:mode] == "max"
41
+ values = mpstat_output.each_line.to_a.slice(3..-1).map do |line, index|
42
+ line.scan(/\d+\.\d+/)[-1].to_f
43
+ end
44
+ values.delete(0.0)
45
+ values.min
46
+ else
47
+ mpstat_output.scan(/\d+\.\d+/)[-1].to_f
48
+ end
49
+ usage = 100 - value
36
50
  data = check_data(100, usage, options[:warning], options[:critical])
37
51
  puts "CPU #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{data[1]}%"
38
52
  exit data[0]
@@ -11,6 +11,12 @@ define command {
11
11
  register 1
12
12
  }
13
13
 
14
+ define command {
15
+ command_name cs-nagios_check-cpu-max
16
+ command_line <%= bin_path -%>cs-nagios check router cpu -H $HOSTADDRESS$ --mode max -w $ARG1$ -c $ARG2$ --ssh-key <%= ssh_key %> --ssh-port <%= ssh_port %> --config <%= config_file %>
17
+ register 1
18
+ }
19
+
14
20
  define command {
15
21
  command_name cs-nagios_check-network
16
22
  command_line <%= bin_path -%>cs-nagios check router network -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ --if-speed <%= if_speed %> --ssh-key <%= ssh_key %> --ssh-port <%= ssh_port %> --config <%= config_file %>
@@ -65,6 +71,15 @@ define service {
65
71
  register 1
66
72
  }
67
73
 
74
+ define service {
75
+ hostgroup_name CloudstackRouter
76
+ service_description Cloudstack Virtual Router Max CPU
77
+ display_name Cloudstack Virtual Router Max CPU
78
+ use Generic-Service,service-pnp
79
+ check_command cs-nagios_check-cpu-max!80!90
80
+ register 1
81
+ }
82
+
68
83
  define service {
69
84
  hostgroup_name CloudstackRouter
70
85
  service_description Cloudstack Virtual Router Network
@@ -15,7 +15,7 @@ object CheckCommand "cs-nagios_check-memory" {
15
15
 
16
16
  object CheckCommand "cs-nagios_check-cpu" {
17
17
  import "plugin-check-command"
18
- command = [ "<%= bin_path -%>cs-nagios", "check", "router", "cpu" ]
18
+ command = [ "<%= bin_path -%>cs-nagios", "check", "router", "cpu" ]
19
19
 
20
20
  arguments = {
21
21
  "-H" = "$address$"
@@ -27,6 +27,21 @@ object CheckCommand "cs-nagios_check-cpu" {
27
27
  }
28
28
  }
29
29
 
30
+ object CheckCommand "cs-nagios_check-cpu-max" {
31
+ import "plugin-check-command"
32
+ command = [ "<%= bin_path -%>cs-nagios", "check", "router", "cpu" ]
33
+
34
+ arguments = {
35
+ "-H" = "$address$"
36
+ "-m" = "max"
37
+ "-w" = "80"
38
+ "-c" = "90"
39
+ "--ssh_key" = "<%= ssh_key %>"
40
+ "--ssh-port" = "<%= ssh_port %>"
41
+ "--config" = "<%= config_file %>"
42
+ }
43
+ }
44
+
30
45
  object CheckCommand "cs-nagios_check-network" {
31
46
  import "plugin-check-command"
32
47
  command = [ "<%= bin_path -%>cs-nagios", "check", "router", "network" ]
@@ -111,6 +126,12 @@ apply Service "Cloudstack Virtual Router CPU" {
111
126
  assign where "CloudstackRouter" in host.groups
112
127
  }
113
128
 
129
+ apply Service "Cloudstack Virtual Router Max CPU" {
130
+ import "generic-service-pnp"
131
+ check_command = "cs-nagios_check-cpu-max"
132
+ assign where "CloudstackRouter" in host.groups
133
+ }
134
+
114
135
  apply Service "Cloudstack Virtual Router Network" {
115
136
  import "generic-service-pnp"
116
137
  check_command = "cs-nagios_check-network"
@@ -1,3 +1,3 @@
1
1
  module CloudstackNagios
2
- VERSION = "0.17.6"
2
+ VERSION = "0.17.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudstack-nagios
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.6
4
+ version: 0.17.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-12-17 00:00:00.000000000 Z
13
+ date: 2015-01-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rdoc