riemann-tools 1.10.0 → 1.12.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +8 -6
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +18 -0
  5. data/CHANGELOG.md +35 -0
  6. data/Gemfile +22 -0
  7. data/Rakefile +1 -1
  8. data/bin/riemann-hwmon +8 -0
  9. data/bin/riemann-tls-check +8 -0
  10. data/lib/riemann/tools/apache_status.rb +2 -0
  11. data/lib/riemann/tools/bench.rb +9 -7
  12. data/lib/riemann/tools/consul_health.rb +2 -0
  13. data/lib/riemann/tools/dir_files_count.rb +2 -0
  14. data/lib/riemann/tools/dir_space.rb +2 -0
  15. data/lib/riemann/tools/diskstats.rb +6 -4
  16. data/lib/riemann/tools/fd.rb +2 -0
  17. data/lib/riemann/tools/freeswitch.rb +2 -0
  18. data/lib/riemann/tools/haproxy.rb +2 -0
  19. data/lib/riemann/tools/health.rb +79 -11
  20. data/lib/riemann/tools/http_check.rb +56 -17
  21. data/lib/riemann/tools/hwmon.rb +111 -0
  22. data/lib/riemann/tools/mdstat_parser.tab.rb +4 -2
  23. data/lib/riemann/tools/net.rb +3 -7
  24. data/lib/riemann/tools/nginx_status.rb +8 -4
  25. data/lib/riemann/tools/ntp.rb +2 -0
  26. data/lib/riemann/tools/portcheck.rb +2 -0
  27. data/lib/riemann/tools/proc.rb +2 -0
  28. data/lib/riemann/tools/tls_check.rb +604 -0
  29. data/lib/riemann/tools/utils.rb +39 -0
  30. data/lib/riemann/tools/varnish.rb +2 -0
  31. data/lib/riemann/tools/version.rb +1 -1
  32. data/lib/riemann/tools.rb +26 -9
  33. data/riemann-tools.gemspec +6 -14
  34. data/tools/riemann-aws/lib/riemann/tools/aws/billing.rb +3 -1
  35. data/tools/riemann-aws/lib/riemann/tools/aws/rds_status.rb +2 -0
  36. data/tools/riemann-aws/lib/riemann/tools/aws/s3_status.rb +1 -1
  37. data/tools/riemann-aws/lib/riemann/tools/aws/sqs_status.rb +2 -0
  38. data/tools/riemann-aws/lib/riemann/tools/aws/status.rb +11 -9
  39. data/tools/riemann-chronos/lib/riemann/tools/chronos.rb +2 -0
  40. data/tools/riemann-docker/lib/riemann/tools/docker.rb +5 -5
  41. data/tools/riemann-marathon/lib/riemann/tools/marathon.rb +2 -0
  42. data/tools/riemann-munin/lib/riemann/tools/munin.rb +2 -0
  43. data/tools/riemann-rabbitmq/lib/riemann/tools/rabbitmq.rb +7 -7
  44. data/tools/riemann-riak/lib/riemann/tools/riak.rb +4 -2
  45. metadata +24 -132
data/lib/riemann/tools.rb CHANGED
@@ -32,7 +32,8 @@ module Riemann
32
32
  opt :event_host, 'Event hostname', type: String
33
33
  opt :interval, 'Seconds between updates', default: 5
34
34
  opt :tag, 'Tag to add to events', type: String, multi: true
35
- opt :ttl, 'TTL for events', type: Integer
35
+ opt :ttl, 'TTL for events (twice the interval when unspecified)', type: Integer
36
+ opt :minimum_ttl, 'Minimum TTL for events', type: Integer, short: :none
36
37
  opt :attribute, 'Attribute to add to the event', type: String, multi: true
37
38
  opt :timeout, 'Timeout (in seconds) when waiting for acknowledgements', default: 30
38
39
  opt :tcp, 'Use TCP transport instead of UDP (improves reliability, slight overhead.', default: true
@@ -44,6 +45,17 @@ module Riemann
44
45
  end
45
46
  end
46
47
 
48
+ attr_reader :argv
49
+
50
+ def initialize(allow_arguments: false)
51
+ options
52
+ @argv = ARGV.dup
53
+ abort "Error: stray arguments: #{ARGV.map(&:inspect).join(', ')}" if ARGV.any? && !allow_arguments
54
+
55
+ options[:ttl] ||= options[:interval] * 2
56
+ options[:ttl] = [options[:minimum_ttl], options[:ttl]].compact.max
57
+ end
58
+
47
59
  # Returns parsed options (cached) from command line.
48
60
  def options
49
61
  @options ||= self.class.options
@@ -51,19 +63,16 @@ module Riemann
51
63
  alias opts options
52
64
 
53
65
  def attributes
54
- @attributes ||= Hash[options[:attribute].map do |attr|
55
- k, v = attr.split(/=/)
66
+ @attributes ||= options[:attribute].to_h do |attr|
67
+ k, v = attr.split('=')
56
68
  [k, v] if k && v
57
- end]
69
+ end
58
70
  end
59
71
 
60
72
  def report(event)
61
- if options[:tag]
62
- # Work around a bug with beefcake which can't take frozen strings.
63
- event[:tags] = [*event.fetch(:tags, [])] + options[:tag].map(&:dup)
64
- end
73
+ event[:tags] = event.fetch(:tags, []) + options[:tag]
65
74
 
66
- event[:ttl] ||= options[:ttl] || (options[:interval] * 2)
75
+ event[:ttl] ||= options[:ttl]
67
76
 
68
77
  event[:host] = options[:event_host].dup if options[:event_host]
69
78
 
@@ -92,5 +101,13 @@ module Riemann
92
101
  end
93
102
 
94
103
  def tick; end
104
+
105
+ def endpoint_name(address, port)
106
+ if address.ipv6?
107
+ "[#{address}]:#{port}"
108
+ else
109
+ "#{address}:#{port}"
110
+ end
111
+ end
95
112
  end
96
113
  end
@@ -14,7 +14,8 @@ Gem::Specification.new do |spec|
14
14
  spec.license = 'MIT'
15
15
  spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
16
16
 
17
- spec.metadata['allowed_push_host'] = 'https://rubygems.org/'
17
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org/'
18
+ spec.metadata['rubygems_mfa_required'] = 'true'
18
19
 
19
20
  spec.metadata['homepage_uri'] = spec.homepage
20
21
  spec.metadata['source_code_uri'] = spec.homepage
@@ -37,17 +38,8 @@ Gem::Specification.new do |spec|
37
38
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
38
39
  spec.require_paths = ['lib']
39
40
 
40
- spec.add_runtime_dependency 'json', '>= 1.8'
41
- spec.add_runtime_dependency 'optimist', '~> 3.0', '>= 3.0.0'
42
- spec.add_runtime_dependency 'riemann-client', '~> 1.1'
43
-
44
- spec.add_development_dependency 'github_changelog_generator'
45
- spec.add_development_dependency 'racc'
46
- spec.add_development_dependency 'rake'
47
- spec.add_development_dependency 'rspec'
48
- spec.add_development_dependency 'rubocop'
49
- spec.add_development_dependency 'rubocop-rake'
50
- spec.add_development_dependency 'rubocop-rspec'
51
- spec.add_development_dependency 'sinatra'
52
- spec.add_development_dependency 'webrick'
41
+ spec.add_dependency 'csv', '~> 3.0'
42
+ spec.add_dependency 'json', '>= 1.8'
43
+ spec.add_dependency 'optimist', '~> 3.0', '>= 3.0.0'
44
+ spec.add_dependency 'riemann-client', '~> 1.1'
53
45
  end
@@ -21,7 +21,9 @@ module Riemann
21
21
  opt :time_end, 'End time in seconds of the metrics period ', type: Integer, default: 60
22
22
 
23
23
  def initialize
24
- if options[:fog_credentials_file]
24
+ super
25
+
26
+ if opts[:fog_credentials_file]
25
27
  Fog.credentials_path = opts[:fog_credentials_file]
26
28
  Fog.credential = opts[:fog_credential].to_sym
27
29
  @cloudwatch = Fog::AWS::CloudWatch.new
@@ -17,6 +17,8 @@ module Riemann
17
17
  opt :region, 'AWS region', type: String, default: 'eu-west-1'
18
18
  opt :dbinstance_identifier, 'DBInstanceIdentifier', type: String
19
19
  def initialize
20
+ super
21
+
20
22
  abort 'FATAL: specify a DB instance name, see --help for usage' unless opts[:dbinstance_identifier]
21
23
  creds = if opts[:access_key] && opts[:secret_key]
22
24
  {
@@ -21,7 +21,7 @@ module Riemann
21
21
 
22
22
  def base_metrics
23
23
  # get last 60 seconds
24
- start_time = (Time.now.utc - 3600 * 24 * 1).iso8601
24
+ start_time = (Time.now.utc - (3600 * 24 * 1)).iso8601
25
25
  end_time = Time.now.utc.iso8601
26
26
 
27
27
  # The base query that all metrics would get
@@ -14,6 +14,8 @@ module Riemann
14
14
  opt :region, 'AWS region', type: String, default: 'us-east-1'
15
15
  opt :queue, 'SQS Queue name', type: String
16
16
  def initialize
17
+ super
18
+
17
19
  creds = if opts.key?('access_key') && opts.key?('secret_key')
18
20
  {
19
21
  aws_access_key_id: opts[:access_key],
@@ -20,21 +20,23 @@ module Riemann
20
20
  opt :event_warning, 'Number of days before event. Defaults to nil (i.e. when the event appears)', default: nil
21
21
 
22
22
  def initialize
23
- if options[:fog_credentials_file]
24
- Fog.credentials_path = options[:fog_credentials_file]
25
- Fog.credential = options[:fog_credential].to_sym
23
+ super
24
+
25
+ if opts[:fog_credentials_file]
26
+ Fog.credentials_path = opts[:fog_credentials_file]
27
+ Fog.credential = opts[:fog_credential].to_sym
26
28
  @compute = Fog::AWS::Compute.new
27
29
  else
28
- @compute = if options[:access_key] && options[:secret_key]
30
+ @compute = if opts[:access_key] && opts[:secret_key]
29
31
  Fog::AWS::Compute.new({
30
- access_key_key_id: options[:access_key],
31
- secret_key_access_key: options[:secret_key],
32
- region: options[:region],
32
+ access_key_key_id: opts[:access_key],
33
+ secret_key_access_key: opts[:secret_key],
34
+ region: opts[:region],
33
35
  })
34
36
  else
35
37
  Fog::AWS::Compute.new({
36
38
  use_iam_profile: true,
37
- region: options[:region],
39
+ region: opts[:region],
38
40
  })
39
41
  end
40
42
  end
@@ -61,7 +63,7 @@ module Riemann
61
63
  elsif opts[:event_warning] && (Date.today >= before - opts[:event_warning])
62
64
  { state: 'warning' }
63
65
  else
64
- { state: 'warning' }
66
+ {}
65
67
  end
66
68
 
67
69
  report ev.merge(ev2)
@@ -21,6 +21,8 @@ module Riemann
21
21
  def initialize
22
22
  options[:interval] = 60
23
23
  options[:ttl] = 120
24
+
25
+ super
24
26
  end
25
27
 
26
28
  # Handles HTTP connections and GET requests safely
@@ -31,6 +31,8 @@ module Riemann
31
31
  end
32
32
 
33
33
  def initialize
34
+ super
35
+
34
36
  Docker.url = opts[:docker_host] unless opts[:docker_host].nil?
35
37
 
36
38
  @hostname = opts[:host_hostname]
@@ -121,7 +123,7 @@ module Riemann
121
123
  end
122
124
 
123
125
  def disk
124
- `df -P`.split(/\n/).each do |r|
126
+ `df -P`.split("\n").each do |r|
125
127
  f = r.split(/\s+/)
126
128
  next if f[0] == 'Filesystem'
127
129
  next unless f[0] =~ %r{/} # Needs at least one slash in the mount path
@@ -171,10 +173,8 @@ module Riemann
171
173
  disk if @disk_enabled
172
174
 
173
175
  # Get CPU, Memory and Load of each container
174
- threads = []
175
-
176
- containers.each do |ctr|
177
- threads << Thread.new(ctr) do |container|
176
+ threads = containers.map do |ctr|
177
+ Thread.new(ctr) do |container|
178
178
  id = container.id
179
179
  name = get_container_name(container)
180
180
 
@@ -21,6 +21,8 @@ module Riemann
21
21
  def initialize
22
22
  options[:interval] = 60
23
23
  options[:ttl] = 120
24
+
25
+ super
24
26
  end
25
27
 
26
28
  # Handles HTTP connections and GET requests safely
@@ -10,6 +10,8 @@ module Riemann
10
10
  require 'munin-ruby'
11
11
 
12
12
  def initialize
13
+ super
14
+
13
15
  @munin = ::Munin::Node.new
14
16
  end
15
17
 
@@ -27,8 +27,8 @@ module Riemann
27
27
 
28
28
  def base_url
29
29
  protocol = 'http'
30
- protocol = 'https' if options[:monitor_use_tls] && (options[:monitor_use_tls] == true)
31
- "#{protocol}://#{options[:monitor_user]}:#{options[:monitor_pass]}@#{options[:monitor_host]}:#{options[:monitor_port]}/api"
30
+ protocol = 'https' if opts[:monitor_use_tls] && (opts[:monitor_use_tls] == true)
31
+ "#{protocol}://#{opts[:monitor_user]}:#{opts[:monitor_pass]}@#{opts[:monitor_host]}:#{opts[:monitor_port]}/api"
32
32
  end
33
33
 
34
34
  def overview_url
@@ -44,7 +44,7 @@ module Riemann
44
44
  end
45
45
 
46
46
  def event_host
47
- options[:event_host] || :monitor_host
47
+ opts[:event_host] || :monitor_host
48
48
  end
49
49
 
50
50
  def safe_get(uri, event_host)
@@ -53,8 +53,8 @@ module Riemann
53
53
  begin
54
54
  connection = Faraday.new(uri)
55
55
  response = connection.get do |req|
56
- req.options[:timeout] = options[:read_timeout]
57
- req.options[:open_timeout] = options[:open_timeout]
56
+ req.opts[:timeout] = opts[:read_timeout]
57
+ req.opts[:open_timeout] = opts[:open_timeout]
58
58
  end
59
59
  report(
60
60
  host: event_host,
@@ -75,7 +75,7 @@ module Riemann
75
75
 
76
76
  def check_queues
77
77
  response = safe_get(queues_url, event_host)
78
- max_size_check_filter = (Regexp.new(options[:ignore_max_size_queues]) if options[:ignore_max_size_queues])
78
+ max_size_check_filter = (Regexp.new(opts[:ignore_max_size_queues]) if opts[:ignore_max_size_queues])
79
79
 
80
80
  return if response.nil?
81
81
 
@@ -102,7 +102,7 @@ module Riemann
102
102
 
103
103
  errs << 'Queue has jobs but no consumers' if !queue['messages_ready'].nil? && (queue['messages_ready']).positive? && (queue['consumers']).zero?
104
104
 
105
- errs << "Queue has #{queue['messages_ready']} jobs" if (max_size_check_filter.nil? || queue['name'] !~ (max_size_check_filter)) && !queue['messages_ready'].nil? && (queue['messages_ready'] > options[:max_queue_size])
105
+ errs << "Queue has #{queue['messages_ready']} jobs" if (max_size_check_filter.nil? || queue['name'] !~ (max_size_check_filter)) && !queue['messages_ready'].nil? && (queue['messages_ready'] > opts[:max_queue_size])
106
106
 
107
107
  if errs.empty?
108
108
  report(
@@ -30,6 +30,8 @@ module Riemann
30
30
  opt :user_agent, 'User-Agent header for HTTP requests', short: :none, default: "#{File.basename($PROGRAM_NAME)}/#{Riemann::Tools::VERSION} (+https://github.com/riemann/riemann-tools)"
31
31
 
32
32
  def initialize
33
+ super
34
+
33
35
  detect_features
34
36
 
35
37
  @httpstatus = true
@@ -151,7 +153,7 @@ module Riemann
151
153
 
152
154
  # Returns the alerts state for the given fsm.
153
155
  def fsm_state(type, percentile, val)
154
- limit = opts["#{type}_#{percentile}_warning".to_sym]
156
+ limit = opts[:"#{type}_#{percentile}_warning"]
155
157
  case val
156
158
  when 0..limit
157
159
  'ok'
@@ -201,7 +203,7 @@ module Riemann
201
203
  str = `riak-admin status`
202
204
  raise 'riak-admin failed' unless $CHILD_STATUS == 0
203
205
 
204
- Hash[str.split(/\n/).map { |i| i.split(/ : /) }]
206
+ str.split("\n").to_h { |i| i.split(' : ') }
205
207
  end
206
208
 
207
209
  # Get current stats as a hash
metadata CHANGED
@@ -1,15 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riemann-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Kingsbury
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-01-13 00:00:00.000000000 Z
10
+ date: 2025-01-15 00:00:00.000000000 Z
12
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: csv
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '3.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '3.0'
13
26
  - !ruby/object:Gem::Dependency
14
27
  name: json
15
28
  requirement: !ruby/object:Gem::Requirement
@@ -58,132 +71,6 @@ dependencies:
58
71
  - - "~>"
59
72
  - !ruby/object:Gem::Version
60
73
  version: '1.1'
61
- - !ruby/object:Gem::Dependency
62
- name: github_changelog_generator
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: '0'
75
- - !ruby/object:Gem::Dependency
76
- name: racc
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
- - !ruby/object:Gem::Dependency
90
- name: rake
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- - !ruby/object:Gem::Dependency
104
- name: rspec
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
- - !ruby/object:Gem::Dependency
118
- name: rubocop
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
- - !ruby/object:Gem::Dependency
132
- name: rubocop-rake
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
- - !ruby/object:Gem::Dependency
146
- name: rubocop-rspec
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: '0'
159
- - !ruby/object:Gem::Dependency
160
- name: sinatra
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- version: '0'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - ">="
171
- - !ruby/object:Gem::Version
172
- version: '0'
173
- - !ruby/object:Gem::Dependency
174
- name: webrick
175
- requirement: !ruby/object:Gem::Requirement
176
- requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- version: '0'
180
- type: :development
181
- prerelease: false
182
- version_requirements: !ruby/object:Gem::Requirement
183
- requirements:
184
- - - ">="
185
- - !ruby/object:Gem::Version
186
- version: '0'
187
74
  description: Collection of utilities which submit events to Riemann,
188
75
  email:
189
76
  - aphyr@aphyr.com
@@ -200,6 +87,7 @@ executables:
200
87
  - riemann-haproxy
201
88
  - riemann-health
202
89
  - riemann-http-check
90
+ - riemann-hwmon
203
91
  - riemann-kvminstance
204
92
  - riemann-md
205
93
  - riemann-memcached
@@ -208,6 +96,7 @@ executables:
208
96
  - riemann-ntp
209
97
  - riemann-portcheck
210
98
  - riemann-proc
99
+ - riemann-tls-check
211
100
  - riemann-varnish
212
101
  - riemann-wrapper
213
102
  - riemann-zookeeper
@@ -243,6 +132,7 @@ files:
243
132
  - bin/riemann-haproxy
244
133
  - bin/riemann-health
245
134
  - bin/riemann-http-check
135
+ - bin/riemann-hwmon
246
136
  - bin/riemann-kvminstance
247
137
  - bin/riemann-md
248
138
  - bin/riemann-memcached
@@ -251,6 +141,7 @@ files:
251
141
  - bin/riemann-ntp
252
142
  - bin/riemann-portcheck
253
143
  - bin/riemann-proc
144
+ - bin/riemann-tls-check
254
145
  - bin/riemann-varnish
255
146
  - bin/riemann-wrapper
256
147
  - bin/riemann-zookeeper
@@ -268,6 +159,7 @@ files:
268
159
  - lib/riemann/tools/haproxy.rb
269
160
  - lib/riemann/tools/health.rb
270
161
  - lib/riemann/tools/http_check.rb
162
+ - lib/riemann/tools/hwmon.rb
271
163
  - lib/riemann/tools/kvm.rb
272
164
  - lib/riemann/tools/md.rb
273
165
  - lib/riemann/tools/mdstat_parser.tab.rb
@@ -278,6 +170,7 @@ files:
278
170
  - lib/riemann/tools/portcheck.rb
279
171
  - lib/riemann/tools/proc.rb
280
172
  - lib/riemann/tools/riemann_client_wrapper.rb
173
+ - lib/riemann/tools/tls_check.rb
281
174
  - lib/riemann/tools/uptime_parser.tab.rb
282
175
  - lib/riemann/tools/utils.rb
283
176
  - lib/riemann/tools/varnish.rb
@@ -349,10 +242,10 @@ licenses:
349
242
  - MIT
350
243
  metadata:
351
244
  allowed_push_host: https://rubygems.org/
245
+ rubygems_mfa_required: 'true'
352
246
  homepage_uri: https://github.com/aphyr/riemann-tools
353
247
  source_code_uri: https://github.com/aphyr/riemann-tools
354
248
  changelog_uri: https://github.com/aphyr/riemann-tools
355
- post_install_message:
356
249
  rdoc_options: []
357
250
  require_paths:
358
251
  - lib
@@ -367,8 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
367
260
  - !ruby/object:Gem::Version
368
261
  version: '0'
369
262
  requirements: []
370
- rubygems_version: 3.4.20
371
- signing_key:
263
+ rubygems_version: 3.6.2
372
264
  specification_version: 4
373
265
  summary: Utilities which submit events to Riemann.
374
266
  test_files: []