sensu-plugins-azurerm 2.0.0 → 2.1.0
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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +9 -1
- data/README.md +20 -0
- data/bin/check-azurerm-monitor-metric.rb +356 -0
- data/lib/sensu-plugins-azurerm/version.rb +1 -1
- metadata +45 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 96fa1b12331ae15cfa86f91e425fc0d0e39620aa
|
4
|
+
data.tar.gz: a273702f89fce82e5da3935733a5846ffb0fcf88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3a3cf2e72024c75fd8b9ea5cc267fb8bfcfa357136d339511db1bded33ac94cd5b7f8e8666547be881ea8383a885a836ebc3a9a070c92d9b37bd1cba61f6b50
|
7
|
+
data.tar.gz: 0c775f58b4d655b1096f7fe8b7bc715722fb6744f74ce83d2596eb28c058de521be243ac44a362c92c4f014a8a87ccf2faa4c4f5c0ebce4e9e28817834c5bbc8
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,13 @@ This CHANGELOG follows the format located [here](https://github.com/sensu-plugin
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [2.1.0] - 2018-09-10
|
9
|
+
### Added
|
10
|
+
- check-azurerm-monitor-metric.rb: allows you to check against azure metric thresholds for a particular resource id or name (@thomaslitton)
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- updated `.gemspec` to reflect new url after transfer (@majormoses)
|
14
|
+
|
8
15
|
## [2.0.0] - 2017-12-11
|
9
16
|
### Security
|
10
17
|
- updated rubocop dependency to `~> 0.51.0` per: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8418. (@majormoses)
|
@@ -77,7 +84,8 @@ This CHANGELOG follows the format located [here](https://github.com/sensu-plugin
|
|
77
84
|
### Added
|
78
85
|
- initial release
|
79
86
|
|
80
|
-
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-azurerm/compare/2.
|
87
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-azurerm/compare/2.1.0..HEAD
|
88
|
+
[2.1.0]: https://github.com/sensu-plugins/sensu-plugins-azurerm/compare/2.0.0...2.1.0
|
81
89
|
[2.0.0]: https://github.com/sensu-plugins/sensu-plugins-azurerm/compare/1.0.0..2.0.0
|
82
90
|
[1.0.0]: https://github.com/sensu-plugins/sensu-plugins-azurerm/compare/0.0.5...1.0.0
|
83
91
|
[0.0.5]: https://github.com/sensu-plugins/sensu-plugins-azurerm/compare/0.0.4...0.0.5
|
data/README.md
CHANGED
@@ -26,6 +26,7 @@
|
|
26
26
|
- check-azurerm-virtual-network-gateway-connected.rb
|
27
27
|
- check-azurerm-virtual-network-gateway-failover-connected.rb
|
28
28
|
- check-azurerm-virtual-networks-usage.rb
|
29
|
+
- check-azurerm-monitor-metric.rb
|
29
30
|
- metric-azurerm-service-bus-subscription-message-count.rb
|
30
31
|
- metric-azurerm-virtual-network-gateway-usage.rb
|
31
32
|
|
@@ -51,6 +52,7 @@
|
|
51
52
|
* /bin/check-azurerm-virtual-networks-usage.rb
|
52
53
|
* /bin/metric-azurerm-service-bus-subscription-message-count.rb
|
53
54
|
* /bin/metric-azurerm-virtual-network-gateway-usage.rb
|
55
|
+
* /bin/check-azurerm-monitor-metric.rb
|
54
56
|
|
55
57
|
|
56
58
|
## Usage
|
@@ -428,6 +430,24 @@
|
|
428
430
|
-critical_percentage 90
|
429
431
|
```
|
430
432
|
|
433
|
+
**check-azurerm-monitor-metric.rb**
|
434
|
+
```
|
435
|
+
./check-azurerm-monitor-metric.rb --use-assigned-identity
|
436
|
+
--resource-id "id"
|
437
|
+
--metric "metricname"
|
438
|
+
--warning 80
|
439
|
+
--critical 90
|
440
|
+
|
441
|
+
./check-azurerm-monitor-metric.rb --tenant "00000000-0000-0000-0000-000000000000"
|
442
|
+
--client "00000000-0000-0000-0000-000000000000"
|
443
|
+
--clientSecret "00000000-0000-0000-0000-000000000000"
|
444
|
+
--resource-id "id"
|
445
|
+
--metric "metricname"
|
446
|
+
--warning-under 80
|
447
|
+
--critical-under 50
|
448
|
+
|
449
|
+
```
|
450
|
+
|
431
451
|
**metric-azurerm-service-bus-subscription-message-count.rb**
|
432
452
|
```
|
433
453
|
./metric-azurerm-service-bus-subscription-message-count.rb
|
@@ -0,0 +1,356 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# check-azurerm-core-usage
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# Checks an azure monitor metric against thresholds
|
7
|
+
#
|
8
|
+
# OUTPUT:
|
9
|
+
# plain-text
|
10
|
+
#
|
11
|
+
# PLATFORMS:
|
12
|
+
# Linux
|
13
|
+
# Windows
|
14
|
+
#
|
15
|
+
# DEPENDENCIES:
|
16
|
+
# gem: ms_rest_azure
|
17
|
+
# gem: sensu-plugin
|
18
|
+
#
|
19
|
+
#
|
20
|
+
|
21
|
+
require 'ms_rest_azure'
|
22
|
+
require 'erb'
|
23
|
+
|
24
|
+
require 'sensu-plugin/check/cli'
|
25
|
+
require 'sensu-plugins-azurerm'
|
26
|
+
|
27
|
+
require 'time'
|
28
|
+
require 'net/http'
|
29
|
+
|
30
|
+
class CheckAzurermMonitorMetric < Sensu::Plugin::Check::CLI
|
31
|
+
include SensuPluginsAzureRM
|
32
|
+
|
33
|
+
AZURE_API_VER = '2017-05-01-preview'.freeze
|
34
|
+
DATE_FORMAT = '%Y-%m-%dT%H:%M:%S'.freeze
|
35
|
+
|
36
|
+
option :tenant_id,
|
37
|
+
description: 'ARM Tenant ID. Either set ENV[\'ARM_TENANT_ID\'] or provide it as an option',
|
38
|
+
short: '-t ID',
|
39
|
+
long: '--tenant ID',
|
40
|
+
default: ENV['ARM_TENANT_ID']
|
41
|
+
|
42
|
+
option :client_id,
|
43
|
+
description: 'ARM Client ID. Either set ENV[\'ARM_CLIENT_ID\'] or provide it as an option',
|
44
|
+
short: '-i ID',
|
45
|
+
long: '--client ID',
|
46
|
+
default: ENV['ARM_CLIENT_ID']
|
47
|
+
|
48
|
+
option :client_secret,
|
49
|
+
description: 'ARM Client Secret. Either set ENV[\'ARM_CLIENT_SECRET\'] or provide it as an option',
|
50
|
+
short: '-s SECRET',
|
51
|
+
long: '--clientSecret SECRET',
|
52
|
+
default: ENV['ARM_CLIENT_SECRET']
|
53
|
+
|
54
|
+
option :use_assigned_identity,
|
55
|
+
description: 'Use Managed Service Identity (MSI) for authentication.',
|
56
|
+
short: '-l',
|
57
|
+
long: '--use-assigned-identity',
|
58
|
+
boolean: true,
|
59
|
+
default: false
|
60
|
+
|
61
|
+
option :local_auth_port,
|
62
|
+
description: 'Port used to authenticate when using the local identity via Managed Service Identity (MSI)',
|
63
|
+
short: '-o PORT',
|
64
|
+
long: '--local-auth-port PORT',
|
65
|
+
proc: proc(&:to_i),
|
66
|
+
default: 50_342
|
67
|
+
|
68
|
+
option :assigned_identity_resource,
|
69
|
+
description: 'The resource to use when retrieving credentials. Only used if the --use-assigned-identity option is used.',
|
70
|
+
short: '-u RESOURCE_URL',
|
71
|
+
long: '--assigned-identity-resource',
|
72
|
+
default: 'https://management.azure.com/'
|
73
|
+
|
74
|
+
option :subscription_id,
|
75
|
+
description: 'ARM Subscription ID',
|
76
|
+
short: '-S ID',
|
77
|
+
long: '--subscription ID',
|
78
|
+
default: ENV['ARM_SUBSCRIPTION_ID']
|
79
|
+
|
80
|
+
option :resource_name,
|
81
|
+
description: 'The name of the resource. If given, the resource namespace/type/group along with subscription id are also required.',
|
82
|
+
short: '-e NAME',
|
83
|
+
long: '--resource-name NAME',
|
84
|
+
default: ''
|
85
|
+
|
86
|
+
option :resource_type,
|
87
|
+
description: 'Resource Type. If specified, the resource should contain the name and not the full id, and the ' \
|
88
|
+
'resource namespace/group and subscriptions are also required. Note: This should not contain the ' \
|
89
|
+
'namespace. Use --resource-namespace instead.',
|
90
|
+
short: '-y NAME',
|
91
|
+
long: '--resource-type NAME',
|
92
|
+
default: ''
|
93
|
+
|
94
|
+
option :resource_namespace,
|
95
|
+
description: 'Resource Namespace. If specified, the resource should contain the name and not the full id, and the resource namespace/group and subscriptions are also required.',
|
96
|
+
short: '-n NAME',
|
97
|
+
long: '--resource-namespace NAME',
|
98
|
+
default: ''
|
99
|
+
|
100
|
+
option :resource_group,
|
101
|
+
description: 'Resource Group. If specified, the resource should contain the name and not the full id, and the resource namespace/group and subscriptions are also required.',
|
102
|
+
short: '-g NAME',
|
103
|
+
long: '--resource-group NAME',
|
104
|
+
default: ''
|
105
|
+
|
106
|
+
option :resource_parent,
|
107
|
+
description: 'Resource Parent.',
|
108
|
+
short: '-p NAME',
|
109
|
+
long: '--resource-parent NAME',
|
110
|
+
default: ''
|
111
|
+
|
112
|
+
# example id: /subscriptions/576b7196-d42b-4b63-b696-af3ff33269a7/resourceGroups/test-group-1/providers/Microsoft.Network/virtualNetworkGateways/test-gateway
|
113
|
+
option :resource_id,
|
114
|
+
description: 'The full id of the resource. If given, the resource namespace/type/group along with subscription id are ignored.',
|
115
|
+
short: '-r ID',
|
116
|
+
long: '--resource-id ID',
|
117
|
+
default: ''
|
118
|
+
|
119
|
+
option :metric,
|
120
|
+
description: 'The name of the metric',
|
121
|
+
short: '-m ID',
|
122
|
+
long: '--metric ID',
|
123
|
+
required: true
|
124
|
+
|
125
|
+
option :filter,
|
126
|
+
description: "The filter applied to the metric. See Azure docs for the syntax. Note: This can be used to segment the return by dimensions, so that the script checks each dimension separately. eg APIName eq '*'",
|
127
|
+
short: '-f FILTER',
|
128
|
+
long: '--filter FILTER'
|
129
|
+
|
130
|
+
option :aggregation,
|
131
|
+
description: 'Aggregation. This can be Average, Count, Maximum, Minimum, Total',
|
132
|
+
short: '-a aggregation',
|
133
|
+
long: '--aggregation aggregation',
|
134
|
+
default: 'average'
|
135
|
+
|
136
|
+
option :warning_over,
|
137
|
+
description: 'The warning threshold to check if the metric is forecasted to go over.',
|
138
|
+
short: '-w N',
|
139
|
+
long: '--warning WARN',
|
140
|
+
proc: proc { |val| val.to_i }
|
141
|
+
|
142
|
+
option :critical_over,
|
143
|
+
description: 'The critical threshold to check if the metric is forecasted to go over.',
|
144
|
+
short: '-c N',
|
145
|
+
long: '--critical CRIT',
|
146
|
+
proc: proc { |val| val.to_i }
|
147
|
+
|
148
|
+
option :warning_under,
|
149
|
+
description: 'The warning threshold to check if the metric is forecasted to go under.',
|
150
|
+
short: '-W N',
|
151
|
+
long: '--warning-under WARN',
|
152
|
+
proc: proc { |val| val.to_i }
|
153
|
+
|
154
|
+
option :critical_under,
|
155
|
+
description: 'The critical threshold to check if the metric is forecasted to go under.',
|
156
|
+
short: '-C N',
|
157
|
+
long: '--critical-under CRIT',
|
158
|
+
proc: proc { |val| val.to_i }
|
159
|
+
|
160
|
+
option :base_url,
|
161
|
+
description: 'The Azure resource API URL.',
|
162
|
+
short: '-b URL',
|
163
|
+
long: '--base-url URL',
|
164
|
+
default: 'https://management.azure.com',
|
165
|
+
proc: proc { |val| val.chomp('/') }
|
166
|
+
|
167
|
+
option :lookback_period,
|
168
|
+
description: 'The amount of time (in seconds) from the current time to look back when retrieving the metric. This should be long enough to capture the last value submitted.',
|
169
|
+
short: '-k PERIOD',
|
170
|
+
long: '--look-back-period PERIOD',
|
171
|
+
default: 600, # 10 min. This should generally be enough time to capture the last value, without wasting API credits
|
172
|
+
proc: proc { |val| val.to_i }
|
173
|
+
|
174
|
+
def run
|
175
|
+
check_missing_resource_info
|
176
|
+
|
177
|
+
if !config[:critical_over] && !config[:warning_over] && !config[:critical_under] && !config[:warning_under]
|
178
|
+
unknown 'At least one threshold must be provided.'
|
179
|
+
end
|
180
|
+
|
181
|
+
if last_metric_values.empty?
|
182
|
+
unknown "There are no metric values for #{config[:metric]} on resource #{config[:resource_id] || config[:resource_name]} with aggregation #{config[:aggregation]}"
|
183
|
+
else
|
184
|
+
critical_messages = []
|
185
|
+
warning_messages = []
|
186
|
+
|
187
|
+
last_metric_values.each do |metric_val|
|
188
|
+
if config[:critical_over] && metric_val[:value] > config[:critical_over].to_f
|
189
|
+
critical_messages << "Metric #{metric_val[:metric_name]} is #{metric_val[:value]}"
|
190
|
+
elsif config[:warning_over] && metric_val[:value] > config[:warning_over].to_f
|
191
|
+
warning_messages << "Metric #{metric_val[:metric_name]} is #{metric_val[:value]}"
|
192
|
+
elsif config[:critical_under] && metric_val[:value] < config[:critical_under].to_f
|
193
|
+
critical_messages << "Metric #{metric_val[:metric_name]} is #{metric_val[:value]}"
|
194
|
+
elsif config[:warning_under] && metric_val[:value] < config[:warning_under].to_f
|
195
|
+
warning_messages << "Metric #{metric_val[:metric_name]} is #{metric_val[:value]}"
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
if !critical_messages.empty?
|
200
|
+
critical critical_messages.join("\n")
|
201
|
+
elsif !warning_messages.empty?
|
202
|
+
warning warning_messages.join("\n")
|
203
|
+
else
|
204
|
+
ok 'Metric(s) are within thresholds'
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
def check_missing_resource_info
|
210
|
+
return_missing_resource if missing_resource_id? && missing_resource_name_info?
|
211
|
+
end
|
212
|
+
|
213
|
+
def missing_resource_id?
|
214
|
+
config[:resource_id].to_s.empty?
|
215
|
+
end
|
216
|
+
|
217
|
+
def missing_resource_name_info?
|
218
|
+
config[:resource_name].to_s.empty? ||
|
219
|
+
config[:resource_type].to_s.empty? ||
|
220
|
+
config[:resource_namespace].to_s.empty? ||
|
221
|
+
config[:resource_group].to_s.empty? ||
|
222
|
+
config[:subscription_id].to_s.empty?
|
223
|
+
end
|
224
|
+
|
225
|
+
def return_missing_resource
|
226
|
+
unknown(
|
227
|
+
"Either the resource id is required OR the resource name, resource group, resource namepsace, resource type and subscription id are required.\n"\
|
228
|
+
"Resource id: #{config[:resource_id]}\n"\
|
229
|
+
"Resource Info:\n"\
|
230
|
+
"Name: #{config[:resource_name]}\n"\
|
231
|
+
"Group: #{config[:resource_group]}\n"\
|
232
|
+
"Namespace: #{config[:resource_namespace]}\n"\
|
233
|
+
"Type: #{config[:resource_type]}\n"\
|
234
|
+
"Subscription ID: #{config[:subscription_id]}"
|
235
|
+
)
|
236
|
+
end
|
237
|
+
|
238
|
+
def last_metric_values
|
239
|
+
@last_metric_values ||= find_last_metric_values
|
240
|
+
end
|
241
|
+
|
242
|
+
def find_last_metric_values
|
243
|
+
values = []
|
244
|
+
metric_response[:value].each do |metric_resp_value|
|
245
|
+
name = metric_resp_value[:name] ? metric_resp_value[:name][:value] : ''
|
246
|
+
|
247
|
+
next if metric_resp_value[:timeseries].empty?
|
248
|
+
|
249
|
+
metric_resp_value[:timeseries].each do |ts|
|
250
|
+
ts[:data].reverse_each do |metric_value|
|
251
|
+
if metric_value[metric_value_key]
|
252
|
+
values << {
|
253
|
+
value: metric_value[metric_value_key].to_f,
|
254
|
+
metric_name: name
|
255
|
+
}
|
256
|
+
|
257
|
+
break
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
values
|
264
|
+
end
|
265
|
+
|
266
|
+
def metric_value_key
|
267
|
+
config[:aggregation].to_sym
|
268
|
+
end
|
269
|
+
|
270
|
+
def metric_response
|
271
|
+
auth_header = if config[:use_assigned_identity]
|
272
|
+
uri = URI.parse("http://localhost:#{config[:local_auth_port]}/oauth2/token?resource=#{config[:assigned_identity_resource]}")
|
273
|
+
|
274
|
+
res = Net::HTTP.start(uri.host, uri.port, use_ssl: false) do |http|
|
275
|
+
req = Net::HTTP::Get.new(uri)
|
276
|
+
req['Metadata'] = 'true'
|
277
|
+
http.request(req)
|
278
|
+
end
|
279
|
+
|
280
|
+
handle_response(res)
|
281
|
+
|
282
|
+
auth_resp = JSON.parse(res.body, symbolize_names: true)
|
283
|
+
|
284
|
+
"#{auth_resp[:token_type]} #{auth_resp[:access_token]}"
|
285
|
+
else
|
286
|
+
provider = MsRestAzure::ApplicationTokenProvider.new(
|
287
|
+
config[:tenant_id],
|
288
|
+
config[:client_id],
|
289
|
+
config[:client_secret]
|
290
|
+
)
|
291
|
+
|
292
|
+
provider.get_authentication_header
|
293
|
+
end
|
294
|
+
|
295
|
+
begin
|
296
|
+
url = "#{config[:base_url]}#{resource}/providers/microsoft.insights/metrics?" \
|
297
|
+
"api-version=#{AZURE_API_VER}&" \
|
298
|
+
"metric=#{config[:metric]}&" \
|
299
|
+
"timespan=#{CGI.escape(timespan)}&" \
|
300
|
+
"aggregation=#{config[:aggregation]}"
|
301
|
+
|
302
|
+
url += "&$filter=#{CGI.escape(config[:filter])}" if config[:filter]
|
303
|
+
|
304
|
+
uri = URI.parse(url)
|
305
|
+
|
306
|
+
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
|
307
|
+
req = Net::HTTP::Get.new(uri)
|
308
|
+
req['Authorization'] = auth_header
|
309
|
+
req['Content-Type'] = 'application/json'
|
310
|
+
http.request(req)
|
311
|
+
end
|
312
|
+
rescue Timeout::Error,
|
313
|
+
Errno::EINVAL, Errno::ECONNRESET,
|
314
|
+
EOFError, Net::HTTPBadResponse,
|
315
|
+
Net::HTTPHeaderSyntaxError, Net::ProtocolError,
|
316
|
+
Errno::ECONNREFUSED => e
|
317
|
+
|
318
|
+
critical e
|
319
|
+
end
|
320
|
+
|
321
|
+
handle_response(res)
|
322
|
+
|
323
|
+
JSON.parse(res.body, symbolize_names: true)
|
324
|
+
end
|
325
|
+
|
326
|
+
def resource
|
327
|
+
@resource ||= build_resource
|
328
|
+
end
|
329
|
+
|
330
|
+
def build_resource
|
331
|
+
if !config[:resource_id].to_s.empty?
|
332
|
+
config[:resource_id].start_with?('/') ? config[:resource_id] : '/' + config[:resource_id]
|
333
|
+
else
|
334
|
+
"/subscriptions/#{config[:subscription_id]}/resourceGroups/#{config[:resource_group]}/" \
|
335
|
+
"providers/#{resource_type}/#{config[:resource_name]}"
|
336
|
+
end
|
337
|
+
end
|
338
|
+
|
339
|
+
def resource_type
|
340
|
+
if config[:resource_parent].to_s.empty?
|
341
|
+
"#{config[:resource_namespace]}/#{config[:resource_type]}"
|
342
|
+
else
|
343
|
+
"#{config[:resource_namespace]}/#{config[:resource_parent]}/#{config[:resource_type]}"
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
347
|
+
def timespan
|
348
|
+
start_date = Time.now.utc - config[:lookback_period]
|
349
|
+
end_date = Time.now.utc
|
350
|
+
"#{start_date.strftime(DATE_FORMAT)}/#{end_date.strftime(DATE_FORMAT)}"
|
351
|
+
end
|
352
|
+
|
353
|
+
def handle_response(res)
|
354
|
+
critical "Failed to get metric:\n#{res.body}" if res.code.to_i >= 300
|
355
|
+
end
|
356
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-azurerm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Harvey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: azure_mgmt_compute
|
@@ -198,6 +198,20 @@ dependencies:
|
|
198
198
|
- - "~>"
|
199
199
|
- !ruby/object:Gem::Version
|
200
200
|
version: '10.5'
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
name: rdoc
|
203
|
+
requirement: !ruby/object:Gem::Requirement
|
204
|
+
requirements:
|
205
|
+
- - "~>"
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '5.1'
|
208
|
+
type: :development
|
209
|
+
prerelease: false
|
210
|
+
version_requirements: !ruby/object:Gem::Requirement
|
211
|
+
requirements:
|
212
|
+
- - "~>"
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: '5.1'
|
201
215
|
- !ruby/object:Gem::Dependency
|
202
216
|
name: redcarpet
|
203
217
|
requirement: !ruby/object:Gem::Requirement
|
@@ -268,6 +282,20 @@ dependencies:
|
|
268
282
|
- - "~>"
|
269
283
|
- !ruby/object:Gem::Version
|
270
284
|
version: '1.6'
|
285
|
+
- !ruby/object:Gem::Dependency
|
286
|
+
name: webmock
|
287
|
+
requirement: !ruby/object:Gem::Requirement
|
288
|
+
requirements:
|
289
|
+
- - "~>"
|
290
|
+
- !ruby/object:Gem::Version
|
291
|
+
version: '3.1'
|
292
|
+
type: :development
|
293
|
+
prerelease: false
|
294
|
+
version_requirements: !ruby/object:Gem::Requirement
|
295
|
+
requirements:
|
296
|
+
- - "~>"
|
297
|
+
- !ruby/object:Gem::Version
|
298
|
+
version: '3.1'
|
271
299
|
- !ruby/object:Gem::Dependency
|
272
300
|
name: yard
|
273
301
|
requirement: !ruby/object:Gem::Requirement
|
@@ -285,27 +313,28 @@ dependencies:
|
|
285
313
|
description: This plugin provides checks for Microsoft Azure's Resource Manager service.
|
286
314
|
email: "<github@ibuildstuff.co.uk>"
|
287
315
|
executables:
|
288
|
-
- check-azurerm-
|
316
|
+
- check-azurerm-network-security-groups-usage.rb
|
289
317
|
- check-azurerm-cores-ds-usage.rb
|
290
|
-
- check-azurerm-
|
291
|
-
- check-azurerm-load-balancers-usage.rb
|
292
|
-
- check-azurerm-network-interfaces-usage.rb
|
318
|
+
- check-azurerm-virtual-network-gateway-connected.rb
|
293
319
|
- check-azurerm-route-tables-usage.rb
|
294
|
-
- check-azurerm-cores-
|
320
|
+
- check-azurerm-cores-dsv2-usage.rb
|
321
|
+
- metric-azurerm-service-bus-subscription-message-count.rb
|
322
|
+
- check-azurerm-monitor-metric.rb
|
323
|
+
- check-azurerm-virtual-networks-usage.rb
|
295
324
|
- check-azurerm-service-bus-topic-size.rb
|
296
325
|
- check-azurerm-core-usage.rb
|
297
|
-
- check-azurerm-cores-dsv2-usage.rb
|
298
326
|
- check-azurerm-virtual-network-gateway-failure-connected.rb
|
299
327
|
- check-azurerm-virtual-machines-usage.rb
|
300
|
-
-
|
328
|
+
- check-azurerm-public-ip-addresses-usage.rb
|
329
|
+
- check-azurerm-service-bus-subscription.rb
|
301
330
|
- metric-azurerm-virtual-network-gateway-usage.rb
|
302
|
-
- check-azurerm-virtual-networks-usage.rb
|
303
331
|
- check-azurerm-cores-fs-usage.rb
|
304
|
-
- check-azurerm-
|
332
|
+
- check-azurerm-static-public-ip-addresses-usage.rb
|
333
|
+
- check-azurerm-cores-d-usage.rb
|
305
334
|
- check-azurerm-cores-f-usage.rb
|
306
|
-
- check-azurerm-public-ip-addresses-usage.rb
|
307
335
|
- check-azurerm-cores-dv2-usage.rb
|
308
|
-
- check-azurerm-
|
336
|
+
- check-azurerm-load-balancers-usage.rb
|
337
|
+
- check-azurerm-network-interfaces-usage.rb
|
309
338
|
extensions: []
|
310
339
|
extra_rdoc_files: []
|
311
340
|
files:
|
@@ -320,6 +349,7 @@ files:
|
|
320
349
|
- bin/check-azurerm-cores-f-usage.rb
|
321
350
|
- bin/check-azurerm-cores-fs-usage.rb
|
322
351
|
- bin/check-azurerm-load-balancers-usage.rb
|
352
|
+
- bin/check-azurerm-monitor-metric.rb
|
323
353
|
- bin/check-azurerm-network-interfaces-usage.rb
|
324
354
|
- bin/check-azurerm-network-security-groups-usage.rb
|
325
355
|
- bin/check-azurerm-public-ip-addresses-usage.rb
|
@@ -339,7 +369,7 @@ files:
|
|
339
369
|
- lib/sensu-plugins-azurerm/network_usage.rb
|
340
370
|
- lib/sensu-plugins-azurerm/servicebus_usage.rb
|
341
371
|
- lib/sensu-plugins-azurerm/version.rb
|
342
|
-
homepage: https://github.com/
|
372
|
+
homepage: https://github.com/sensu-plugins/sensu-plugins-azurerm
|
343
373
|
licenses:
|
344
374
|
- MIT
|
345
375
|
metadata:
|
@@ -365,7 +395,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
365
395
|
version: '0'
|
366
396
|
requirements: []
|
367
397
|
rubyforge_project:
|
368
|
-
rubygems_version: 2.
|
398
|
+
rubygems_version: 2.6.11
|
369
399
|
signing_key:
|
370
400
|
specification_version: 4
|
371
401
|
summary: Sensu plugins for working with an Azure Resource Manager environment
|