sensu-plugins-azurerm 0.0.3 → 0.0.4

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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +278 -7
  4. data/bin/check-azurerm-core-usage.rb +37 -40
  5. data/bin/check-azurerm-cores-d-usage.rb +121 -0
  6. data/bin/check-azurerm-cores-ds-usage.rb +121 -0
  7. data/bin/check-azurerm-cores-dsv2-usage.rb +121 -0
  8. data/bin/check-azurerm-cores-dv2-usage.rb +121 -0
  9. data/bin/check-azurerm-cores-f-usage.rb +121 -0
  10. data/bin/check-azurerm-cores-fs-usage.rb +121 -0
  11. data/bin/check-azurerm-load-balancers-usage.rb +121 -0
  12. data/bin/check-azurerm-network-interfaces-usage.rb +121 -0
  13. data/bin/check-azurerm-network-security-groups-usage.rb +121 -0
  14. data/bin/check-azurerm-public-ip-addresses-usage.rb +121 -0
  15. data/bin/check-azurerm-route-tables-usage.rb +121 -0
  16. data/bin/check-azurerm-static-public-ip-addresses-usage.rb +121 -0
  17. data/bin/check-azurerm-virtual-machines-usage.rb +37 -40
  18. data/bin/check-azurerm-virtual-network-gateway-connected.rb +31 -34
  19. data/bin/check-azurerm-virtual-network-gateway-failure-connected.rb +51 -54
  20. data/bin/check-azurerm-virtual-networks-usage.rb +121 -0
  21. data/bin/metric-azurerm-service-bus-subscription-message-count.rb +39 -42
  22. data/bin/metric-azurerm-virtual-network-gateway-usage.rb +40 -43
  23. data/lib/sensu-plugins-azurerm.rb +1 -0
  24. data/lib/sensu-plugins-azurerm/common.rb +10 -0
  25. data/lib/sensu-plugins-azurerm/compute_usage.rb +3 -13
  26. data/lib/sensu-plugins-azurerm/network_usage.rb +12 -5
  27. data/lib/sensu-plugins-azurerm/servicebus_usage.rb +3 -6
  28. data/lib/sensu-plugins-azurerm/version.rb +1 -1
  29. metadata +60 -33
@@ -0,0 +1,121 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # check-azurerm-cores-d-usage
4
+ #
5
+ # DESCRIPTION:
6
+ # This plugin checks the number of D Family CPU Cores allocated and available in a Region in Azure.
7
+ # Warning and Critical Percentage thresholds may be set as needed.
8
+ #
9
+ # OUTPUT:
10
+ # plain-text
11
+ #
12
+ # PLATFORMS:
13
+ # Linux
14
+ #
15
+ # DEPENDENCIES:
16
+ # gem: azure_mgmt_compute
17
+ # gem: sensu-plugin
18
+ #
19
+ # USAGE:
20
+ # ./check-azurerm-cores-d-usage.rb -l "westeurope" -w 80 -c 90
21
+ #
22
+ # ./check-azurerm-cores-d-usage.rb -t "00000000-0000-0000-0000-000000000000"
23
+ # -c "00000000-0000-0000-0000-000000000000"
24
+ # -S "00000000-0000-0000-0000-000000000000"
25
+ # -s "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234"
26
+ # -l "eastus2" -w 80 -c 90
27
+ #
28
+ # ./check-azurerm-cores-d-usage.rb -tenant "00000000-0000-0000-0000-000000000000"
29
+ # -client_id "00000000-0000-0000-0000-000000000000"
30
+ # -client_secret "00000000-0000-0000-0000-000000000000"
31
+ # -subscription "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234"
32
+ # -location "westeurope"
33
+ # -warning_percentage 80
34
+ # -critical_percentage 90
35
+ #
36
+ # NOTES:
37
+ #
38
+ # LICENSE:
39
+ # Tom Harvey
40
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
41
+ # for details.
42
+ #
43
+
44
+ require 'azure_mgmt_compute'
45
+ require 'sensu-plugin/check/cli'
46
+ require 'sensu-plugins-azurerm'
47
+
48
+ class CheckAzureRMCoresDUsage < Sensu::Plugin::Check::CLI
49
+ include SensuPluginsAzureRM
50
+
51
+ option :tenant_id,
52
+ description: 'ARM Tenant ID. Either set ENV[\'ARM_TENANT_ID\'] or provide it as an option',
53
+ short: '-t ID',
54
+ long: '--tenant ID',
55
+ default: ENV['ARM_TENANT_ID'] # TODO: can we pull these out from the Check too?
56
+
57
+ option :client_id,
58
+ description: 'ARM Client ID. Either set ENV[\'ARM_CLIENT_ID\'] or provide it as an option',
59
+ short: '-c ID',
60
+ long: '--client ID',
61
+ default: ENV['ARM_CLIENT_ID']
62
+
63
+ option :client_secret,
64
+ description: 'ARM Client Secret. Either set ENV[\'ARM_CLIENT_SECRET\'] or provide it as an option',
65
+ short: '-s SECRET',
66
+ long: '--clientSecret SECRET',
67
+ default: ENV['ARM_CLIENT_SECRET']
68
+
69
+ option :subscription_id,
70
+ description: 'ARM Subscription ID',
71
+ short: '-S ID',
72
+ long: '--subscription ID',
73
+ default: ENV['ARM_SUBSCRIPTION_ID']
74
+
75
+ option :location,
76
+ description: 'Azure Location (e.g. westeurope/eastus2)',
77
+ short: '-l LOCATION',
78
+ long: '--location LOCATION'
79
+
80
+ option :warning_percentage,
81
+ description: 'Warning Percentage threshold for filter',
82
+ short: '-w PERCENTAGE',
83
+ long: '--warning PERCENTAGE'
84
+
85
+ option :critical_percentage,
86
+ description: 'Critical Percentage threshold for filter',
87
+ short: '-c PERCENTAGE',
88
+ long: '--critical PERCENTAGE'
89
+
90
+ def run
91
+ tenant_id = config[:tenant_id]
92
+ client_id = config[:client_id]
93
+ client_secret = config[:client_secret]
94
+ subscription_id = config[:subscription_id]
95
+ location = config[:location]
96
+
97
+ usage_client = ComputeUsage.new.build_usage_operation_client(tenant_id, client_id, client_secret, subscription_id)
98
+ result = Common.new.retrieve_usage_stats(usage_client, location, 'standardDFamily')
99
+
100
+ current_usage = result.current_value
101
+ allowance = result.limit
102
+ critical_percentage = config[:critical_percentage].to_f
103
+ warning_percentage = config[:warning_percentage].to_f
104
+
105
+ message = "Current usage: #{current_usage} of #{allowance} D Family Cores"
106
+
107
+ percentage_used = (current_usage.to_f / allowance.to_f) * 100
108
+
109
+ if percentage_used >= critical_percentage
110
+ critical message
111
+ elsif percentage_used >= warning_percentage
112
+ warning message
113
+ else
114
+ ok message
115
+ end
116
+
117
+ rescue => e
118
+ puts "Error: exception: #{e}"
119
+ critical
120
+ end
121
+ end
@@ -0,0 +1,121 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # check-azurerm-cores-ds-usage
4
+ #
5
+ # DESCRIPTION:
6
+ # This plugin checks the number of DS Family CPU Cores allocated and available in a Region in Azure.
7
+ # Warning and Critical Percentage thresholds may be set as needed.
8
+ #
9
+ # OUTPUT:
10
+ # plain-text
11
+ #
12
+ # PLATFORMS:
13
+ # Linux
14
+ #
15
+ # DEPENDENCIES:
16
+ # gem: azure_mgmt_compute
17
+ # gem: sensu-plugin
18
+ #
19
+ # USAGE:
20
+ # ./check-azurerm-cores-ds-usage.rb -l "westeurope" -w 80 -c 90
21
+ #
22
+ # ./check-azurerm-cores-ds-usage.rb -t "00000000-0000-0000-0000-000000000000"
23
+ # -c "00000000-0000-0000-0000-000000000000"
24
+ # -S "00000000-0000-0000-0000-000000000000"
25
+ # -s "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234"
26
+ # -l "eastus2" -w 80 -c 90
27
+ #
28
+ # ./check-azurerm-cores-ds-usage.rb -tenant "00000000-0000-0000-0000-000000000000"
29
+ # -client_id "00000000-0000-0000-0000-000000000000"
30
+ # -client_secret "00000000-0000-0000-0000-000000000000"
31
+ # -subscription "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234"
32
+ # -location "westeurope"
33
+ # -warning_percentage 80
34
+ # -critical_percentage 90
35
+ #
36
+ # NOTES:
37
+ #
38
+ # LICENSE:
39
+ # Tom Harvey
40
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
41
+ # for details.
42
+ #
43
+
44
+ require 'azure_mgmt_compute'
45
+ require 'sensu-plugin/check/cli'
46
+ require 'sensu-plugins-azurerm'
47
+
48
+ class CheckAzureRMCoresDSUsage < Sensu::Plugin::Check::CLI
49
+ include SensuPluginsAzureRM
50
+
51
+ option :tenant_id,
52
+ description: 'ARM Tenant ID. Either set ENV[\'ARM_TENANT_ID\'] or provide it as an option',
53
+ short: '-t ID',
54
+ long: '--tenant ID',
55
+ default: ENV['ARM_TENANT_ID'] # TODO: can we pull these out from the Check too?
56
+
57
+ option :client_id,
58
+ description: 'ARM Client ID. Either set ENV[\'ARM_CLIENT_ID\'] or provide it as an option',
59
+ short: '-c ID',
60
+ long: '--client ID',
61
+ default: ENV['ARM_CLIENT_ID']
62
+
63
+ option :client_secret,
64
+ description: 'ARM Client Secret. Either set ENV[\'ARM_CLIENT_SECRET\'] or provide it as an option',
65
+ short: '-s SECRET',
66
+ long: '--clientSecret SECRET',
67
+ default: ENV['ARM_CLIENT_SECRET']
68
+
69
+ option :subscription_id,
70
+ description: 'ARM Subscription ID',
71
+ short: '-S ID',
72
+ long: '--subscription ID',
73
+ default: ENV['ARM_SUBSCRIPTION_ID']
74
+
75
+ option :location,
76
+ description: 'Azure Location (e.g. westeurope/eastus2)',
77
+ short: '-l LOCATION',
78
+ long: '--location LOCATION'
79
+
80
+ option :warning_percentage,
81
+ description: 'Warning Percentage threshold for filter',
82
+ short: '-w PERCENTAGE',
83
+ long: '--warning PERCENTAGE'
84
+
85
+ option :critical_percentage,
86
+ description: 'Critical Percentage threshold for filter',
87
+ short: '-c PERCENTAGE',
88
+ long: '--critical PERCENTAGE'
89
+
90
+ def run
91
+ tenant_id = config[:tenant_id]
92
+ client_id = config[:client_id]
93
+ client_secret = config[:client_secret]
94
+ subscription_id = config[:subscription_id]
95
+ location = config[:location]
96
+
97
+ usage_client = ComputeUsage.new.build_usage_operation_client(tenant_id, client_id, client_secret, subscription_id)
98
+ result = Common.new.retrieve_usage_stats(usage_client, location, 'standardDSFamily')
99
+
100
+ current_usage = result.current_value
101
+ allowance = result.limit
102
+ critical_percentage = config[:critical_percentage].to_f
103
+ warning_percentage = config[:warning_percentage].to_f
104
+
105
+ message = "Current usage: #{current_usage} of #{allowance} DS Family Cores"
106
+
107
+ percentage_used = (current_usage.to_f / allowance.to_f) * 100
108
+
109
+ if percentage_used >= critical_percentage
110
+ critical message
111
+ elsif percentage_used >= warning_percentage
112
+ warning message
113
+ else
114
+ ok message
115
+ end
116
+
117
+ rescue => e
118
+ puts "Error: exception: #{e}"
119
+ critical
120
+ end
121
+ end
@@ -0,0 +1,121 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # check-azurerm-cores-dsv2-usage
4
+ #
5
+ # DESCRIPTION:
6
+ # This plugin checks the number of DS Family CPU Cores allocated and available in a Region in Azure.
7
+ # Warning and Critical Percentage thresholds may be set as needed.
8
+ #
9
+ # OUTPUT:
10
+ # plain-text
11
+ #
12
+ # PLATFORMS:
13
+ # Linux
14
+ #
15
+ # DEPENDENCIES:
16
+ # gem: azure_mgmt_compute
17
+ # gem: sensu-plugin
18
+ #
19
+ # USAGE:
20
+ # ./check-azurerm-cores-dsv2-usage.rb -l "westeurope" -w 80 -c 90
21
+ #
22
+ # ./check-azurerm-cores-dsv2-usage.rb -t "00000000-0000-0000-0000-000000000000"
23
+ # -c "00000000-0000-0000-0000-000000000000"
24
+ # -S "00000000-0000-0000-0000-000000000000"
25
+ # -s "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234"
26
+ # -l "eastus2" -w 80 -c 90
27
+ #
28
+ # ./check-azurerm-cores-dsv2-usage.rb -tenant "00000000-0000-0000-0000-000000000000"
29
+ # -client_id "00000000-0000-0000-0000-000000000000"
30
+ # -client_secret "00000000-0000-0000-0000-000000000000"
31
+ # -subscription "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234"
32
+ # -location "westeurope"
33
+ # -warning_percentage 80
34
+ # -critical_percentage 90
35
+ #
36
+ # NOTES:
37
+ #
38
+ # LICENSE:
39
+ # Tom Harvey
40
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
41
+ # for details.
42
+ #
43
+
44
+ require 'azure_mgmt_compute'
45
+ require 'sensu-plugin/check/cli'
46
+ require 'sensu-plugins-azurerm'
47
+
48
+ class CheckAzureRMCoresDSv2Usage < Sensu::Plugin::Check::CLI
49
+ include SensuPluginsAzureRM
50
+
51
+ option :tenant_id,
52
+ description: 'ARM Tenant ID. Either set ENV[\'ARM_TENANT_ID\'] or provide it as an option',
53
+ short: '-t ID',
54
+ long: '--tenant ID',
55
+ default: ENV['ARM_TENANT_ID'] # TODO: can we pull these out from the Check too?
56
+
57
+ option :client_id,
58
+ description: 'ARM Client ID. Either set ENV[\'ARM_CLIENT_ID\'] or provide it as an option',
59
+ short: '-c ID',
60
+ long: '--client ID',
61
+ default: ENV['ARM_CLIENT_ID']
62
+
63
+ option :client_secret,
64
+ description: 'ARM Client Secret. Either set ENV[\'ARM_CLIENT_SECRET\'] or provide it as an option',
65
+ short: '-s SECRET',
66
+ long: '--clientSecret SECRET',
67
+ default: ENV['ARM_CLIENT_SECRET']
68
+
69
+ option :subscription_id,
70
+ description: 'ARM Subscription ID',
71
+ short: '-S ID',
72
+ long: '--subscription ID',
73
+ default: ENV['ARM_SUBSCRIPTION_ID']
74
+
75
+ option :location,
76
+ description: 'Azure Location (e.g. westeurope/eastus2)',
77
+ short: '-l LOCATION',
78
+ long: '--location LOCATION'
79
+
80
+ option :warning_percentage,
81
+ description: 'Warning Percentage threshold for filter',
82
+ short: '-w PERCENTAGE',
83
+ long: '--warning PERCENTAGE'
84
+
85
+ option :critical_percentage,
86
+ description: 'Critical Percentage threshold for filter',
87
+ short: '-c PERCENTAGE',
88
+ long: '--critical PERCENTAGE'
89
+
90
+ def run
91
+ tenant_id = config[:tenant_id]
92
+ client_id = config[:client_id]
93
+ client_secret = config[:client_secret]
94
+ subscription_id = config[:subscription_id]
95
+ location = config[:location]
96
+
97
+ usage_client = ComputeUsage.new.build_usage_operation_client(tenant_id, client_id, client_secret, subscription_id)
98
+ result = Common.new.retrieve_usage_stats(usage_client, location, 'standardDSv2Family')
99
+
100
+ current_usage = result.current_value
101
+ allowance = result.limit
102
+ critical_percentage = config[:critical_percentage].to_f
103
+ warning_percentage = config[:warning_percentage].to_f
104
+
105
+ message = "Current usage: #{current_usage} of #{allowance} DSv2 Family Cores"
106
+
107
+ percentage_used = (current_usage.to_f / allowance.to_f) * 100
108
+
109
+ if percentage_used >= critical_percentage
110
+ critical message
111
+ elsif percentage_used >= warning_percentage
112
+ warning message
113
+ else
114
+ ok message
115
+ end
116
+
117
+ rescue => e
118
+ puts "Error: exception: #{e}"
119
+ critical
120
+ end
121
+ end
@@ -0,0 +1,121 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # check-azurerm-cores-dv2-usage
4
+ #
5
+ # DESCRIPTION:
6
+ # This plugin checks the number of Dv2 Family CPU Cores allocated and available in a Region in Azure.
7
+ # Warning and Critical Percentage thresholds may be set as needed.
8
+ #
9
+ # OUTPUT:
10
+ # plain-text
11
+ #
12
+ # PLATFORMS:
13
+ # Linux
14
+ #
15
+ # DEPENDENCIES:
16
+ # gem: azure_mgmt_compute
17
+ # gem: sensu-plugin
18
+ #
19
+ # USAGE:
20
+ # ./check-azurerm-cores-dv2-usage.rb -l "westeurope" -w 80 -c 90
21
+ #
22
+ # ./check-azurerm-cores-dv2-usage.rb -t "00000000-0000-0000-0000-000000000000"
23
+ # -c "00000000-0000-0000-0000-000000000000"
24
+ # -S "00000000-0000-0000-0000-000000000000"
25
+ # -s "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234"
26
+ # -l "eastus2" -w 80 -c 90
27
+ #
28
+ # ./check-azurerm-cores-dv2-usage.rb -tenant "00000000-0000-0000-0000-000000000000"
29
+ # -client_id "00000000-0000-0000-0000-000000000000"
30
+ # -client_secret "00000000-0000-0000-0000-000000000000"
31
+ # -subscription "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234"
32
+ # -location "westeurope"
33
+ # -warning_percentage 80
34
+ # -critical_percentage 90
35
+ #
36
+ # NOTES:
37
+ #
38
+ # LICENSE:
39
+ # Tom Harvey
40
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
41
+ # for details.
42
+ #
43
+
44
+ require 'azure_mgmt_compute'
45
+ require 'sensu-plugin/check/cli'
46
+ require 'sensu-plugins-azurerm'
47
+
48
+ class CheckAzureRMCoresDv2Usage < Sensu::Plugin::Check::CLI
49
+ include SensuPluginsAzureRM
50
+
51
+ option :tenant_id,
52
+ description: 'ARM Tenant ID. Either set ENV[\'ARM_TENANT_ID\'] or provide it as an option',
53
+ short: '-t ID',
54
+ long: '--tenant ID',
55
+ default: ENV['ARM_TENANT_ID'] # TODO: can we pull these out from the Check too?
56
+
57
+ option :client_id,
58
+ description: 'ARM Client ID. Either set ENV[\'ARM_CLIENT_ID\'] or provide it as an option',
59
+ short: '-c ID',
60
+ long: '--client ID',
61
+ default: ENV['ARM_CLIENT_ID']
62
+
63
+ option :client_secret,
64
+ description: 'ARM Client Secret. Either set ENV[\'ARM_CLIENT_SECRET\'] or provide it as an option',
65
+ short: '-s SECRET',
66
+ long: '--clientSecret SECRET',
67
+ default: ENV['ARM_CLIENT_SECRET']
68
+
69
+ option :subscription_id,
70
+ description: 'ARM Subscription ID',
71
+ short: '-S ID',
72
+ long: '--subscription ID',
73
+ default: ENV['ARM_SUBSCRIPTION_ID']
74
+
75
+ option :location,
76
+ description: 'Azure Location (e.g. westeurope/eastus2)',
77
+ short: '-l LOCATION',
78
+ long: '--location LOCATION'
79
+
80
+ option :warning_percentage,
81
+ description: 'Warning Percentage threshold for filter',
82
+ short: '-w PERCENTAGE',
83
+ long: '--warning PERCENTAGE'
84
+
85
+ option :critical_percentage,
86
+ description: 'Critical Percentage threshold for filter',
87
+ short: '-c PERCENTAGE',
88
+ long: '--critical PERCENTAGE'
89
+
90
+ def run
91
+ tenant_id = config[:tenant_id]
92
+ client_id = config[:client_id]
93
+ client_secret = config[:client_secret]
94
+ subscription_id = config[:subscription_id]
95
+ location = config[:location]
96
+
97
+ usage_client = ComputeUsage.new.build_usage_operation_client(tenant_id, client_id, client_secret, subscription_id)
98
+ result = Common.new.retrieve_usage_stats(usage_client, location, 'standardDv2Family')
99
+
100
+ current_usage = result.current_value
101
+ allowance = result.limit
102
+ critical_percentage = config[:critical_percentage].to_f
103
+ warning_percentage = config[:warning_percentage].to_f
104
+
105
+ message = "Current usage: #{current_usage} of #{allowance} Dv2 Family Cores"
106
+
107
+ percentage_used = (current_usage.to_f / allowance.to_f) * 100
108
+
109
+ if percentage_used >= critical_percentage
110
+ critical message
111
+ elsif percentage_used >= warning_percentage
112
+ warning message
113
+ else
114
+ ok message
115
+ end
116
+
117
+ rescue => e
118
+ puts "Error: exception: #{e}"
119
+ critical
120
+ end
121
+ end