prometheus_exporter 2.1.0 → 2.2.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +10 -6
  3. data/.rubocop +1 -0
  4. data/.rubocop.yml +12 -1
  5. data/.streerc +2 -0
  6. data/CHANGELOG +12 -1
  7. data/README.md +22 -9
  8. data/bench/bench.rb +12 -11
  9. data/bin/prometheus_exporter +2 -2
  10. data/examples/custom_collector.rb +1 -3
  11. data/gemfiles/ar_70.gemfile +2 -0
  12. data/gemfiles/ar_71.gemfile +7 -0
  13. data/lib/prometheus_exporter/client.rb +16 -32
  14. data/lib/prometheus_exporter/instrumentation/active_record.rb +20 -8
  15. data/lib/prometheus_exporter/instrumentation/delayed_job.rb +23 -13
  16. data/lib/prometheus_exporter/instrumentation/good_job.rb +2 -4
  17. data/lib/prometheus_exporter/instrumentation/hutch.rb +1 -1
  18. data/lib/prometheus_exporter/instrumentation/method_profiler.rb +16 -16
  19. data/lib/prometheus_exporter/instrumentation/periodic_stats.rb +13 -21
  20. data/lib/prometheus_exporter/instrumentation/process.rb +14 -6
  21. data/lib/prometheus_exporter/instrumentation/puma.rb +1 -1
  22. data/lib/prometheus_exporter/instrumentation/resque.rb +1 -3
  23. data/lib/prometheus_exporter/instrumentation/shoryuken.rb +6 -7
  24. data/lib/prometheus_exporter/instrumentation/sidekiq.rb +4 -6
  25. data/lib/prometheus_exporter/instrumentation/sidekiq_process.rb +12 -19
  26. data/lib/prometheus_exporter/instrumentation/sidekiq_queue.rb +15 -18
  27. data/lib/prometheus_exporter/instrumentation/sidekiq_stats.rb +10 -15
  28. data/lib/prometheus_exporter/instrumentation/unicorn.rb +2 -2
  29. data/lib/prometheus_exporter/metric/base.rb +8 -7
  30. data/lib/prometheus_exporter/metric/counter.rb +1 -3
  31. data/lib/prometheus_exporter/metric/gauge.rb +2 -6
  32. data/lib/prometheus_exporter/metric/histogram.rb +0 -2
  33. data/lib/prometheus_exporter/metric/summary.rb +5 -14
  34. data/lib/prometheus_exporter/middleware.rb +40 -32
  35. data/lib/prometheus_exporter/server/active_record_collector.rb +11 -6
  36. data/lib/prometheus_exporter/server/collector.rb +12 -16
  37. data/lib/prometheus_exporter/server/collector_base.rb +0 -2
  38. data/lib/prometheus_exporter/server/delayed_job_collector.rb +65 -28
  39. data/lib/prometheus_exporter/server/good_job_collector.rb +1 -1
  40. data/lib/prometheus_exporter/server/hutch_collector.rb +19 -11
  41. data/lib/prometheus_exporter/server/metrics_container.rb +4 -4
  42. data/lib/prometheus_exporter/server/process_collector.rb +7 -3
  43. data/lib/prometheus_exporter/server/puma_collector.rb +4 -10
  44. data/lib/prometheus_exporter/server/resque_collector.rb +1 -1
  45. data/lib/prometheus_exporter/server/runner.rb +34 -13
  46. data/lib/prometheus_exporter/server/shoryuken_collector.rb +22 -17
  47. data/lib/prometheus_exporter/server/sidekiq_collector.rb +22 -14
  48. data/lib/prometheus_exporter/server/sidekiq_process_collector.rb +9 -5
  49. data/lib/prometheus_exporter/server/sidekiq_queue_collector.rb +7 -6
  50. data/lib/prometheus_exporter/server/sidekiq_stats_collector.rb +12 -11
  51. data/lib/prometheus_exporter/server/unicorn_collector.rb +4 -4
  52. data/lib/prometheus_exporter/server/web_collector.rb +39 -22
  53. data/lib/prometheus_exporter/server/web_server.rb +10 -20
  54. data/lib/prometheus_exporter/version.rb +1 -1
  55. data/prometheus_exporter.gemspec +20 -22
  56. metadata +44 -13
@@ -5,8 +5,8 @@ module PrometheusExporter::Server
5
5
  MAX_METRIC_AGE = 60
6
6
 
7
7
  SIDEKIQ_PROCESS_GAUGES = {
8
- 'busy' => 'Number of running jobs',
9
- 'concurrency' => 'Maximum concurrency',
8
+ "busy" => "Number of running jobs",
9
+ "concurrency" => "Maximum concurrency",
10
10
  }.freeze
11
11
 
12
12
  attr_reader :sidekiq_metrics, :gauges
@@ -17,17 +17,21 @@ module PrometheusExporter::Server
17
17
  end
18
18
 
19
19
  def type
20
- 'sidekiq_process'
20
+ "sidekiq_process"
21
21
  end
22
22
 
23
23
  def metrics
24
24
  SIDEKIQ_PROCESS_GAUGES.each_key { |name| gauges[name]&.reset! }
25
25
 
26
26
  sidekiq_metrics.map do |metric|
27
- labels = metric.fetch('labels', {})
27
+ labels = metric.fetch("labels", {})
28
28
  SIDEKIQ_PROCESS_GAUGES.map do |name, help|
29
29
  if (value = metric[name])
30
- gauge = gauges[name] ||= PrometheusExporter::Metric::Gauge.new("sidekiq_process_#{name}", help)
30
+ gauge =
31
+ gauges[name] ||= PrometheusExporter::Metric::Gauge.new(
32
+ "sidekiq_process_#{name}",
33
+ help,
34
+ )
31
35
  gauge.observe(value, labels)
32
36
  end
33
37
  end
@@ -4,8 +4,8 @@ module PrometheusExporter::Server
4
4
  MAX_METRIC_AGE = 60
5
5
 
6
6
  SIDEKIQ_QUEUE_GAUGES = {
7
- 'backlog' => 'Size of the sidekiq queue.',
8
- 'latency_seconds' => 'Latency of the sidekiq queue.',
7
+ "backlog" => "Size of the sidekiq queue.",
8
+ "latency_seconds" => "Latency of the sidekiq queue.",
9
9
  }.freeze
10
10
 
11
11
  attr_reader :sidekiq_metrics, :gauges
@@ -16,7 +16,7 @@ module PrometheusExporter::Server
16
16
  end
17
17
 
18
18
  def type
19
- 'sidekiq_queue'
19
+ "sidekiq_queue"
20
20
  end
21
21
 
22
22
  def metrics
@@ -26,7 +26,8 @@ module PrometheusExporter::Server
26
26
  labels = metric.fetch("labels", {})
27
27
  SIDEKIQ_QUEUE_GAUGES.map do |name, help|
28
28
  if (value = metric[name])
29
- gauge = gauges[name] ||= PrometheusExporter::Metric::Gauge.new("sidekiq_queue_#{name}", help)
29
+ gauge =
30
+ gauges[name] ||= PrometheusExporter::Metric::Gauge.new("sidekiq_queue_#{name}", help)
30
31
  gauge.observe(value, labels)
31
32
  end
32
33
  end
@@ -36,8 +37,8 @@ module PrometheusExporter::Server
36
37
  end
37
38
 
38
39
  def collect(object)
39
- object['queues'].each do |queue|
40
- queue["labels"].merge!(object['custom_labels']) if object['custom_labels']
40
+ object["queues"].each do |queue|
41
+ queue["labels"].merge!(object["custom_labels"]) if object["custom_labels"]
41
42
  @sidekiq_metrics << queue
42
43
  end
43
44
  end
@@ -5,14 +5,14 @@ module PrometheusExporter::Server
5
5
  MAX_METRIC_AGE = 60
6
6
 
7
7
  SIDEKIQ_STATS_GAUGES = {
8
- 'dead_size' => 'Size of dead the queue',
9
- 'enqueued' => 'Number of enqueued jobs',
10
- 'failed' => 'Number of failed jobs',
11
- 'processed' => 'Total number of processed jobs',
12
- 'processes_size' => 'Number of processes',
13
- 'retry_size' => 'Size of the retries queue',
14
- 'scheduled_size' => 'Size of the scheduled queue',
15
- 'workers_size' => 'Number of jobs actively being processed',
8
+ "dead_size" => "Size of dead the queue",
9
+ "enqueued" => "Number of enqueued jobs",
10
+ "failed" => "Number of failed jobs",
11
+ "processed" => "Total number of processed jobs",
12
+ "processes_size" => "Number of processes",
13
+ "retry_size" => "Size of the retries queue",
14
+ "scheduled_size" => "Size of the scheduled queue",
15
+ "workers_size" => "Number of jobs actively being processed",
16
16
  }.freeze
17
17
 
18
18
  attr_reader :sidekiq_metrics, :gauges
@@ -23,7 +23,7 @@ module PrometheusExporter::Server
23
23
  end
24
24
 
25
25
  def type
26
- 'sidekiq_stats'
26
+ "sidekiq_stats"
27
27
  end
28
28
 
29
29
  def metrics
@@ -31,8 +31,9 @@ module PrometheusExporter::Server
31
31
 
32
32
  sidekiq_metrics.map do |metric|
33
33
  SIDEKIQ_STATS_GAUGES.map do |name, help|
34
- if (value = metric['stats'][name])
35
- gauge = gauges[name] ||= PrometheusExporter::Metric::Gauge.new("sidekiq_stats_#{name}", help)
34
+ if (value = metric["stats"][name])
35
+ gauge =
36
+ gauges[name] ||= PrometheusExporter::Metric::Gauge.new("sidekiq_stats_#{name}", help)
36
37
  gauge.observe(value)
37
38
  end
38
39
  end
@@ -7,9 +7,9 @@ module PrometheusExporter::Server
7
7
  MAX_METRIC_AGE = 60
8
8
 
9
9
  UNICORN_GAUGES = {
10
- workers: 'Number of unicorn workers.',
11
- active_workers: 'Number of active unicorn workers',
12
- request_backlog: 'Number of requests waiting to be processed by a unicorn worker.'
10
+ workers: "Number of unicorn workers.",
11
+ active_workers: "Number of active unicorn workers",
12
+ request_backlog: "Number of requests waiting to be processed by a unicorn worker.",
13
13
  }.freeze
14
14
 
15
15
  def initialize
@@ -17,7 +17,7 @@ module PrometheusExporter::Server
17
17
  end
18
18
 
19
19
  def type
20
- 'unicorn'
20
+ "unicorn"
21
21
  end
22
22
 
23
23
  def metrics
@@ -9,6 +9,7 @@ module PrometheusExporter::Server
9
9
  @http_request_redis_duration_seconds = nil
10
10
  @http_request_sql_duration_seconds = nil
11
11
  @http_request_queue_duration_seconds = nil
12
+ @http_request_memcache_duration_seconds = nil
12
13
  end
13
14
 
14
15
  def type
@@ -28,36 +29,49 @@ module PrometheusExporter::Server
28
29
 
29
30
  def ensure_metrics
30
31
  unless @http_requests_total
31
- @metrics["http_requests_total"] = @http_requests_total = PrometheusExporter::Metric::Counter.new(
32
- "http_requests_total",
33
- "Total HTTP requests from web app."
34
- )
32
+ @metrics["http_requests_total"] = @http_requests_total =
33
+ PrometheusExporter::Metric::Counter.new(
34
+ "http_requests_total",
35
+ "Total HTTP requests from web app.",
36
+ )
35
37
 
36
- @metrics["http_request_duration_seconds"] = @http_request_duration_seconds = PrometheusExporter::Metric::Base.default_aggregation.new(
37
- "http_request_duration_seconds",
38
- "Time spent in HTTP reqs in seconds."
39
- )
38
+ @metrics["http_request_duration_seconds"] = @http_request_duration_seconds =
39
+ PrometheusExporter::Metric::Base.default_aggregation.new(
40
+ "http_request_duration_seconds",
41
+ "Time spent in HTTP reqs in seconds.",
42
+ )
40
43
 
41
- @metrics["http_request_redis_duration_seconds"] = @http_request_redis_duration_seconds = PrometheusExporter::Metric::Base.default_aggregation.new(
42
- "http_request_redis_duration_seconds",
43
- "Time spent in HTTP reqs in Redis, in seconds."
44
- )
44
+ @metrics["http_request_redis_duration_seconds"] = @http_request_redis_duration_seconds =
45
+ PrometheusExporter::Metric::Base.default_aggregation.new(
46
+ "http_request_redis_duration_seconds",
47
+ "Time spent in HTTP reqs in Redis, in seconds.",
48
+ )
45
49
 
46
- @metrics["http_request_sql_duration_seconds"] = @http_request_sql_duration_seconds = PrometheusExporter::Metric::Base.default_aggregation.new(
47
- "http_request_sql_duration_seconds",
48
- "Time spent in HTTP reqs in SQL in seconds."
49
- )
50
+ @metrics["http_request_sql_duration_seconds"] = @http_request_sql_duration_seconds =
51
+ PrometheusExporter::Metric::Base.default_aggregation.new(
52
+ "http_request_sql_duration_seconds",
53
+ "Time spent in HTTP reqs in SQL in seconds.",
54
+ )
50
55
 
51
- @metrics["http_request_queue_duration_seconds"] = @http_request_queue_duration_seconds = PrometheusExporter::Metric::Base.default_aggregation.new(
52
- "http_request_queue_duration_seconds",
53
- "Time spent queueing the request in load balancer in seconds."
54
- )
56
+ @metrics[
57
+ "http_request_memcache_duration_seconds"
58
+ ] = @http_request_memcache_duration_seconds =
59
+ PrometheusExporter::Metric::Base.default_aggregation.new(
60
+ "http_request_memcache_duration_seconds",
61
+ "Time spent in HTTP reqs in Memcache in seconds.",
62
+ )
63
+
64
+ @metrics["http_request_queue_duration_seconds"] = @http_request_queue_duration_seconds =
65
+ PrometheusExporter::Metric::Base.default_aggregation.new(
66
+ "http_request_queue_duration_seconds",
67
+ "Time spent queueing the request in load balancer in seconds.",
68
+ )
55
69
  end
56
70
  end
57
71
 
58
72
  def observe(obj)
59
- default_labels = obj['default_labels']
60
- custom_labels = obj['custom_labels']
73
+ default_labels = obj["default_labels"]
74
+ custom_labels = obj["custom_labels"]
61
75
  labels = custom_labels.nil? ? default_labels : default_labels.merge(custom_labels)
62
76
 
63
77
  @http_requests_total.observe(1, labels.merge("status" => obj["status"]))
@@ -70,6 +84,9 @@ module PrometheusExporter::Server
70
84
  if sql = timings["sql"]
71
85
  @http_request_sql_duration_seconds.observe(sql["duration"], labels)
72
86
  end
87
+ if memcache = timings["memcache"]
88
+ @http_request_memcache_duration_seconds.observe(memcache["duration"], labels)
89
+ end
73
90
  end
74
91
  if queue_time = obj["queue_time"]
75
92
  @http_request_queue_duration_seconds.observe(queue_time, labels)
@@ -21,19 +21,19 @@ module PrometheusExporter::Server
21
21
  @metrics_total =
22
22
  PrometheusExporter::Metric::Counter.new(
23
23
  "collector_metrics_total",
24
- "Total metrics processed by exporter web."
24
+ "Total metrics processed by exporter web.",
25
25
  )
26
26
 
27
27
  @sessions_total =
28
28
  PrometheusExporter::Metric::Counter.new(
29
29
  "collector_sessions_total",
30
- "Total send_metric sessions processed by exporter web."
30
+ "Total send_metric sessions processed by exporter web.",
31
31
  )
32
32
 
33
33
  @bad_metrics_total =
34
34
  PrometheusExporter::Metric::Counter.new(
35
35
  "collector_bad_metrics_total",
36
- "Total mis-handled metrics by collector."
36
+ "Total mis-handled metrics by collector.",
37
37
  )
38
38
 
39
39
  @metrics_total.observe(0)
@@ -46,7 +46,7 @@ module PrometheusExporter::Server
46
46
  if @verbose
47
47
  @access_log = [
48
48
  [$stderr, WEBrick::AccessLog::COMMON_LOG_FORMAT],
49
- [$stderr, WEBrick::AccessLog::REFERER_LOG_FORMAT]
49
+ [$stderr, WEBrick::AccessLog::REFERER_LOG_FORMAT],
50
50
  ]
51
51
  @logger = WEBrick::Log.new(log_target || $stderr)
52
52
  else
@@ -54,9 +54,7 @@ module PrometheusExporter::Server
54
54
  @logger = WEBrick::Log.new(log_target || "/dev/null")
55
55
  end
56
56
 
57
- if @verbose && @auth
58
- @logger.info "Using Basic Authentication via #{@auth}"
59
- end
57
+ @logger.info "Using Basic Authentication via #{@auth}" if @verbose && @auth
60
58
 
61
59
  if %w[ALL ANY].include?(@bind)
62
60
  @logger.info "Listening on both 0.0.0.0/:: network interfaces"
@@ -68,7 +66,7 @@ module PrometheusExporter::Server
68
66
  Port: @port,
69
67
  BindAddress: @bind,
70
68
  Logger: @logger,
71
- AccessLog: @access_log
69
+ AccessLog: @access_log,
72
70
  )
73
71
 
74
72
  @server.mount_proc "/" do |req, res|
@@ -140,9 +138,7 @@ module PrometheusExporter::Server
140
138
  def metrics
141
139
  metric_text = nil
142
140
  begin
143
- Timeout.timeout(@timeout) do
144
- metric_text = @collector.prometheus_metrics_text
145
- end
141
+ Timeout.timeout(@timeout) { metric_text = @collector.prometheus_metrics_text }
146
142
  rescue Timeout::Error
147
143
  # we timed out ... bummer
148
144
  @logger.error "Generating Prometheus metrics text timed out"
@@ -153,14 +149,10 @@ module PrometheusExporter::Server
153
149
  metrics << add_gauge(
154
150
  "collector_working",
155
151
  "Is the master process collector able to collect metrics",
156
- metric_text && metric_text.length > 0 ? 1 : 0
152
+ metric_text && metric_text.length > 0 ? 1 : 0,
157
153
  )
158
154
 
159
- metrics << add_gauge(
160
- "collector_rss",
161
- "total memory used by collector process",
162
- get_rss
163
- )
155
+ metrics << add_gauge("collector_rss", "total memory used by collector process", get_rss)
164
156
 
165
157
  metrics << @metrics_total
166
158
  metrics << @sessions_total
@@ -196,9 +188,7 @@ module PrometheusExporter::Server
196
188
  def authenticate(req, res)
197
189
  htpasswd = WEBrick::HTTPAuth::Htpasswd.new(@auth)
198
190
  basic_auth =
199
- WEBrick::HTTPAuth::BasicAuth.new(
200
- { Realm: @realm, UserDB: htpasswd, Logger: @logger }
201
- )
191
+ WEBrick::HTTPAuth::BasicAuth.new({ Realm: @realm, UserDB: htpasswd, Logger: @logger })
202
192
 
203
193
  basic_auth.authenticate(req, res)
204
194
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PrometheusExporter
4
- VERSION = "2.1.0"
4
+ VERSION = "2.2.0"
5
5
  end
@@ -5,42 +5,40 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require "prometheus_exporter/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "prometheus_exporter"
9
- spec.version = PrometheusExporter::VERSION
10
- spec.authors = ["Sam Saffron"]
11
- spec.email = ["sam.saffron@gmail.com"]
8
+ spec.name = "prometheus_exporter"
9
+ spec.version = PrometheusExporter::VERSION
10
+ spec.authors = ["Sam Saffron"]
11
+ spec.email = ["sam.saffron@gmail.com"]
12
12
 
13
- spec.summary = %q{Prometheus Exporter}
14
- spec.description = %q{Prometheus metric collector and exporter for Ruby}
15
- spec.homepage = "https://github.com/discourse/prometheus_exporter"
16
- spec.license = "MIT"
13
+ spec.summary = "Prometheus Exporter"
14
+ spec.description = "Prometheus metric collector and exporter for Ruby"
15
+ spec.homepage = "https://github.com/discourse/prometheus_exporter"
16
+ spec.license = "MIT"
17
17
 
18
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
- f.match(%r{^(test|spec|features|bin)/})
20
- end
21
- spec.bindir = "bin"
22
- spec.executables = ["prometheus_exporter"]
23
- spec.require_paths = ["lib"]
18
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|bin)/}) }
19
+ spec.bindir = "bin"
20
+ spec.executables = ["prometheus_exporter"]
21
+ spec.require_paths = ["lib"]
24
22
 
25
23
  spec.add_dependency "webrick"
26
24
 
27
25
  spec.add_development_dependency "rubocop", ">= 0.69"
28
26
  spec.add_development_dependency "bundler", ">= 2.1.4"
29
27
  spec.add_development_dependency "rake", "~> 13.0"
30
- spec.add_development_dependency "minitest", "~> 5.15.0" # https://github.com/qrush/m/issues/93
28
+ spec.add_development_dependency "minitest", "~> 5.23.0"
31
29
  spec.add_development_dependency "guard", "~> 2.0"
32
- spec.add_development_dependency "mini_racer", "~> 0.5.0"
30
+ spec.add_development_dependency "mini_racer", "~> 0.12.0"
33
31
  spec.add_development_dependency "guard-minitest", "~> 2.0"
34
32
  spec.add_development_dependency "oj", "~> 3.0"
35
- spec.add_development_dependency "rack-test", "~> 0.8.3"
33
+ spec.add_development_dependency "rack-test", "~> 2.1.0"
36
34
  spec.add_development_dependency "minitest-stub-const", "~> 0.6"
37
- spec.add_development_dependency "rubocop-discourse", ">2"
35
+ spec.add_development_dependency "rubocop-discourse", ">= 3"
38
36
  spec.add_development_dependency "appraisal", "~> 2.3"
39
37
  spec.add_development_dependency "activerecord", "~> 6.0.0"
40
38
  spec.add_development_dependency "redis", "> 5"
41
39
  spec.add_development_dependency "m"
42
- if !RUBY_ENGINE == 'jruby'
43
- spec.add_development_dependency "raindrops", "~> 0.19"
44
- end
45
- spec.required_ruby_version = '>= 2.6.0'
40
+ spec.add_development_dependency "syntax_tree"
41
+ spec.add_development_dependency "syntax_tree-disable_ternary"
42
+ spec.add_development_dependency "raindrops", "~> 0.19" if !RUBY_ENGINE == "jruby"
43
+ spec.required_ruby_version = ">= 3.0.0"
46
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prometheus_exporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-07 00:00:00.000000000 Z
11
+ date: 2024-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: webrick
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 5.15.0
75
+ version: 5.23.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 5.15.0
82
+ version: 5.23.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: guard
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.5.0
103
+ version: 0.12.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.5.0
110
+ version: 0.12.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: guard-minitest
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 0.8.3
145
+ version: 2.1.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 0.8.3
152
+ version: 2.1.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: minitest-stub-const
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -168,16 +168,16 @@ dependencies:
168
168
  name: rubocop-discourse
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ">"
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: '2'
173
+ version: '3'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ">"
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: '2'
180
+ version: '3'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: appraisal
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -234,6 +234,34 @@ dependencies:
234
234
  - - ">="
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: syntax_tree
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: syntax_tree-disable_ternary
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
237
265
  description: Prometheus metric collector and exporter for Ruby
238
266
  email:
239
267
  - sam.saffron@gmail.com
@@ -244,7 +272,9 @@ extra_rdoc_files: []
244
272
  files:
245
273
  - ".github/workflows/ci.yml"
246
274
  - ".gitignore"
275
+ - ".rubocop"
247
276
  - ".rubocop.yml"
277
+ - ".streerc"
248
278
  - Appraisals
249
279
  - CHANGELOG
250
280
  - CODE_OF_CONDUCT.md
@@ -261,6 +291,7 @@ files:
261
291
  - gemfiles/ar_60.gemfile
262
292
  - gemfiles/ar_61.gemfile
263
293
  - gemfiles/ar_70.gemfile
294
+ - gemfiles/ar_71.gemfile
264
295
  - lib/prometheus_exporter.rb
265
296
  - lib/prometheus_exporter/client.rb
266
297
  - lib/prometheus_exporter/instrumentation.rb
@@ -321,7 +352,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
321
352
  requirements:
322
353
  - - ">="
323
354
  - !ruby/object:Gem::Version
324
- version: 2.6.0
355
+ version: 3.0.0
325
356
  required_rubygems_version: !ruby/object:Gem::Requirement
326
357
  requirements:
327
358
  - - ">="