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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 031b76d776d3302c32c3b0f6f5f1553e2f3afd153f509506bbd7806b961efdd4
4
- data.tar.gz: b112f955b57c08a445d905a5b1c519f2e4078803b45e95ca4d28ec2f0f0d4fe5
2
+ SHA1:
3
+ metadata.gz: 96fa1b12331ae15cfa86f91e425fc0d0e39620aa
4
+ data.tar.gz: a273702f89fce82e5da3935733a5846ffb0fcf88
5
5
  SHA512:
6
- metadata.gz: dc7068537d941dc3826f161fc68c9e432030a8608d233114bc38dd983c00fbdefd8edd95b59d1c86faa501d142817176b0224655f2491555520def259d4d9a70
7
- data.tar.gz: 34c084b5bab53e29995c490d6e2bf0a4a1694cfa473d2c925312d5a628733bbe3b90c2a766ce2403127480abcf4bffc523c1e29b0e633c6c1dcb195e44b3adff
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.0.0..HEAD
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
@@ -1,7 +1,7 @@
1
1
  module SensuPluginsAzureRM
2
2
  module Version
3
3
  MAJOR = 2
4
- MINOR = 0
4
+ MINOR = 1
5
5
  PATCH = 0
6
6
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
7
7
  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.0.0
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: 2017-12-11 00:00:00.000000000 Z
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-static-public-ip-addresses-usage.rb
316
+ - check-azurerm-network-security-groups-usage.rb
289
317
  - check-azurerm-cores-ds-usage.rb
290
- - check-azurerm-service-bus-subscription.rb
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-d-usage.rb
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
- - metric-azurerm-service-bus-subscription-message-count.rb
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-network-security-groups-usage.rb
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-virtual-network-gateway-connected.rb
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/tombuildsstuff/sensu-plugins-azurerm
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.7.3
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