sensu-plugins-azurerm 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|