prometheus_exporter 0.7.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 +4 -4
- data/.github/workflows/ci.yml +82 -25
- data/Appraisals +7 -3
- data/CHANGELOG +104 -24
- data/Dockerfile +9 -0
- data/README.md +258 -51
- data/bin/prometheus_exporter +19 -6
- data/examples/custom_collector.rb +1 -1
- data/gemfiles/ar_70.gemfile +5 -0
- data/lib/prometheus_exporter/client.rb +48 -23
- data/lib/prometheus_exporter/instrumentation/active_record.rb +11 -29
- data/lib/prometheus_exporter/instrumentation/delayed_job.rb +5 -2
- data/lib/prometheus_exporter/instrumentation/good_job.rb +30 -0
- data/lib/prometheus_exporter/instrumentation/method_profiler.rb +63 -23
- data/lib/prometheus_exporter/instrumentation/periodic_stats.rb +62 -0
- data/lib/prometheus_exporter/instrumentation/process.rb +5 -21
- data/lib/prometheus_exporter/instrumentation/puma.rb +34 -27
- data/lib/prometheus_exporter/instrumentation/resque.rb +35 -0
- data/lib/prometheus_exporter/instrumentation/sidekiq.rb +53 -23
- data/lib/prometheus_exporter/instrumentation/sidekiq_process.rb +52 -0
- data/lib/prometheus_exporter/instrumentation/sidekiq_queue.rb +32 -24
- data/lib/prometheus_exporter/instrumentation/sidekiq_stats.rb +37 -0
- data/lib/prometheus_exporter/instrumentation/unicorn.rb +10 -15
- data/lib/prometheus_exporter/instrumentation.rb +5 -0
- data/lib/prometheus_exporter/metric/base.rb +12 -10
- data/lib/prometheus_exporter/metric/gauge.rb +4 -0
- data/lib/prometheus_exporter/metric/histogram.rb +15 -3
- data/lib/prometheus_exporter/middleware.rb +45 -19
- data/lib/prometheus_exporter/server/active_record_collector.rb +9 -12
- data/lib/prometheus_exporter/server/collector.rb +4 -0
- data/lib/prometheus_exporter/server/delayed_job_collector.rb +24 -18
- data/lib/prometheus_exporter/server/good_job_collector.rb +52 -0
- data/lib/prometheus_exporter/server/metrics_container.rb +66 -0
- data/lib/prometheus_exporter/server/process_collector.rb +8 -13
- data/lib/prometheus_exporter/server/puma_collector.rb +14 -12
- data/lib/prometheus_exporter/server/resque_collector.rb +50 -0
- data/lib/prometheus_exporter/server/runner.rb +14 -3
- data/lib/prometheus_exporter/server/sidekiq_collector.rb +1 -1
- data/lib/prometheus_exporter/server/sidekiq_process_collector.rb +43 -0
- data/lib/prometheus_exporter/server/sidekiq_queue_collector.rb +6 -7
- data/lib/prometheus_exporter/server/sidekiq_stats_collector.rb +48 -0
- data/lib/prometheus_exporter/server/type_collector.rb +2 -0
- data/lib/prometheus_exporter/server/unicorn_collector.rb +32 -33
- data/lib/prometheus_exporter/server/web_collector.rb +17 -17
- data/lib/prometheus_exporter/server/web_server.rb +72 -41
- data/lib/prometheus_exporter/server.rb +4 -0
- data/lib/prometheus_exporter/version.rb +1 -1
- data/lib/prometheus_exporter.rb +12 -13
- data/prometheus_exporter.gemspec +6 -6
- metadata +53 -14
@@ -5,10 +5,10 @@ module PrometheusExporter::Server
|
|
5
5
|
def initialize
|
6
6
|
@metrics = {}
|
7
7
|
@http_requests_total = nil
|
8
|
-
@
|
9
|
-
@
|
10
|
-
@
|
11
|
-
@
|
8
|
+
@http_request_duration_seconds = nil
|
9
|
+
@http_request_redis_duration_seconds = nil
|
10
|
+
@http_request_sql_duration_seconds = nil
|
11
|
+
@http_request_queue_duration_seconds = nil
|
12
12
|
end
|
13
13
|
|
14
14
|
def type
|
@@ -33,23 +33,23 @@ module PrometheusExporter::Server
|
|
33
33
|
"Total HTTP requests from web app."
|
34
34
|
)
|
35
35
|
|
36
|
-
@metrics["
|
37
|
-
"
|
36
|
+
@metrics["http_request_duration_seconds"] = @http_request_duration_seconds = PrometheusExporter::Metric::Base.default_aggregation.new(
|
37
|
+
"http_request_duration_seconds",
|
38
38
|
"Time spent in HTTP reqs in seconds."
|
39
39
|
)
|
40
40
|
|
41
|
-
@metrics["
|
42
|
-
"
|
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
43
|
"Time spent in HTTP reqs in Redis, in seconds."
|
44
44
|
)
|
45
45
|
|
46
|
-
@metrics["
|
47
|
-
"
|
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
48
|
"Time spent in HTTP reqs in SQL in seconds."
|
49
49
|
)
|
50
50
|
|
51
|
-
@metrics["
|
52
|
-
"
|
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
53
|
"Time spent queueing the request in load balancer in seconds."
|
54
54
|
)
|
55
55
|
end
|
@@ -60,19 +60,19 @@ module PrometheusExporter::Server
|
|
60
60
|
custom_labels = obj['custom_labels']
|
61
61
|
labels = custom_labels.nil? ? default_labels : default_labels.merge(custom_labels)
|
62
62
|
|
63
|
-
@http_requests_total.observe(1, labels)
|
63
|
+
@http_requests_total.observe(1, labels.merge("status" => obj["status"]))
|
64
64
|
|
65
65
|
if timings = obj["timings"]
|
66
|
-
@
|
66
|
+
@http_request_duration_seconds.observe(timings["total_duration"], labels)
|
67
67
|
if redis = timings["redis"]
|
68
|
-
@
|
68
|
+
@http_request_redis_duration_seconds.observe(redis["duration"], labels)
|
69
69
|
end
|
70
70
|
if sql = timings["sql"]
|
71
|
-
@
|
71
|
+
@http_request_sql_duration_seconds.observe(sql["duration"], labels)
|
72
72
|
end
|
73
73
|
end
|
74
74
|
if queue_time = obj["queue_time"]
|
75
|
-
@
|
75
|
+
@http_request_queue_duration_seconds.observe(queue_time, labels)
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
3
|
+
require "webrick"
|
4
|
+
require "timeout"
|
5
|
+
require "zlib"
|
6
|
+
require "stringio"
|
7
7
|
|
8
8
|
module PrometheusExporter::Server
|
9
9
|
class WebServer
|
@@ -18,41 +18,62 @@ module PrometheusExporter::Server
|
|
18
18
|
@auth = opts[:auth]
|
19
19
|
@realm = opts[:realm] || PrometheusExporter::DEFAULT_REALM
|
20
20
|
|
21
|
-
@metrics_total =
|
21
|
+
@metrics_total =
|
22
|
+
PrometheusExporter::Metric::Counter.new(
|
23
|
+
"collector_metrics_total",
|
24
|
+
"Total metrics processed by exporter web."
|
25
|
+
)
|
22
26
|
|
23
|
-
@sessions_total =
|
27
|
+
@sessions_total =
|
28
|
+
PrometheusExporter::Metric::Counter.new(
|
29
|
+
"collector_sessions_total",
|
30
|
+
"Total send_metric sessions processed by exporter web."
|
31
|
+
)
|
24
32
|
|
25
|
-
@bad_metrics_total =
|
33
|
+
@bad_metrics_total =
|
34
|
+
PrometheusExporter::Metric::Counter.new(
|
35
|
+
"collector_bad_metrics_total",
|
36
|
+
"Total mis-handled metrics by collector."
|
37
|
+
)
|
26
38
|
|
27
39
|
@metrics_total.observe(0)
|
28
40
|
@sessions_total.observe(0)
|
29
41
|
@bad_metrics_total.observe(0)
|
30
42
|
|
31
43
|
@access_log, @logger = nil
|
44
|
+
log_target = opts[:log_target]
|
32
45
|
|
33
46
|
if @verbose
|
34
47
|
@access_log = [
|
35
48
|
[$stderr, WEBrick::AccessLog::COMMON_LOG_FORMAT],
|
36
|
-
[$stderr, WEBrick::AccessLog::REFERER_LOG_FORMAT]
|
49
|
+
[$stderr, WEBrick::AccessLog::REFERER_LOG_FORMAT]
|
37
50
|
]
|
38
|
-
@logger = WEBrick::Log.new($stderr)
|
51
|
+
@logger = WEBrick::Log.new(log_target || $stderr)
|
39
52
|
else
|
40
53
|
@access_log = []
|
41
|
-
@logger = WEBrick::Log.new("/dev/null")
|
54
|
+
@logger = WEBrick::Log.new(log_target || "/dev/null")
|
42
55
|
end
|
43
56
|
|
44
|
-
|
57
|
+
if @verbose && @auth
|
58
|
+
@logger.info "Using Basic Authentication via #{@auth}"
|
59
|
+
end
|
45
60
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
AccessLog: @access_log,
|
51
|
-
)
|
61
|
+
if %w[ALL ANY].include?(@bind)
|
62
|
+
@logger.info "Listening on both 0.0.0.0/:: network interfaces"
|
63
|
+
@bind = nil
|
64
|
+
end
|
52
65
|
|
53
|
-
@server
|
54
|
-
|
55
|
-
|
66
|
+
@server =
|
67
|
+
WEBrick::HTTPServer.new(
|
68
|
+
Port: @port,
|
69
|
+
BindAddress: @bind,
|
70
|
+
Logger: @logger,
|
71
|
+
AccessLog: @access_log
|
72
|
+
)
|
73
|
+
|
74
|
+
@server.mount_proc "/" do |req, res|
|
75
|
+
res["Content-Type"] = "text/plain; charset=utf-8"
|
76
|
+
if req.path == "/metrics"
|
56
77
|
authenticate(req, res) if @auth
|
57
78
|
|
58
79
|
res.status = 200
|
@@ -70,11 +91,14 @@ module PrometheusExporter::Server
|
|
70
91
|
else
|
71
92
|
res.body = metrics
|
72
93
|
end
|
73
|
-
elsif req.path ==
|
94
|
+
elsif req.path == "/send-metrics"
|
74
95
|
handle_metrics(req, res)
|
96
|
+
elsif req.path == "/ping"
|
97
|
+
res.body = "PONG"
|
75
98
|
else
|
76
99
|
res.status = 404
|
77
|
-
res.body =
|
100
|
+
res.body =
|
101
|
+
"Not Found! The Prometheus Ruby Exporter only listens on /ping, /metrics and /send-metrics"
|
78
102
|
end
|
79
103
|
end
|
80
104
|
end
|
@@ -86,16 +110,11 @@ module PrometheusExporter::Server
|
|
86
110
|
@metrics_total.observe
|
87
111
|
@collector.process(block)
|
88
112
|
rescue => e
|
89
|
-
if @verbose
|
90
|
-
STDERR.puts
|
91
|
-
STDERR.puts e.inspect
|
92
|
-
STDERR.puts e.backtrace
|
93
|
-
STDERR.puts
|
94
|
-
end
|
113
|
+
@logger.error "\n\n#{e.inspect}\n#{e.backtrace}\n\n" if @verbose
|
95
114
|
@bad_metrics_total.observe
|
96
115
|
res.body = "Bad Metrics #{e}"
|
97
116
|
res.status = e.respond_to?(:status_code) ? e.status_code : 500
|
98
|
-
|
117
|
+
break
|
99
118
|
end
|
100
119
|
end
|
101
120
|
|
@@ -104,13 +123,14 @@ module PrometheusExporter::Server
|
|
104
123
|
end
|
105
124
|
|
106
125
|
def start
|
107
|
-
@runner ||=
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
126
|
+
@runner ||=
|
127
|
+
Thread.start do
|
128
|
+
begin
|
129
|
+
@server.start
|
130
|
+
rescue => e
|
131
|
+
@logger.error "Failed to start prometheus collector web on port #{@port}: #{e}"
|
132
|
+
end
|
112
133
|
end
|
113
|
-
end
|
114
134
|
end
|
115
135
|
|
116
136
|
def stop
|
@@ -120,12 +140,12 @@ module PrometheusExporter::Server
|
|
120
140
|
def metrics
|
121
141
|
metric_text = nil
|
122
142
|
begin
|
123
|
-
Timeout
|
143
|
+
Timeout.timeout(@timeout) do
|
124
144
|
metric_text = @collector.prometheus_metrics_text
|
125
145
|
end
|
126
146
|
rescue Timeout::Error
|
127
147
|
# we timed out ... bummer
|
128
|
-
|
148
|
+
@logger.error "Generating Prometheus metrics text timed out"
|
129
149
|
end
|
130
150
|
|
131
151
|
metrics = []
|
@@ -153,9 +173,18 @@ module PrometheusExporter::Server
|
|
153
173
|
end
|
154
174
|
|
155
175
|
def get_rss
|
156
|
-
@pagesize ||=
|
176
|
+
@pagesize ||=
|
177
|
+
begin
|
178
|
+
`getconf PAGESIZE`.to_i
|
179
|
+
rescue StandardError
|
180
|
+
4096
|
181
|
+
end
|
157
182
|
@pid ||= Process.pid
|
158
|
-
|
183
|
+
begin
|
184
|
+
File.read("/proc/#{@pid}/statm").split(" ")[1].to_i * @pagesize
|
185
|
+
rescue StandardError
|
186
|
+
0
|
187
|
+
end
|
159
188
|
end
|
160
189
|
|
161
190
|
def add_gauge(name, help, value)
|
@@ -166,10 +195,12 @@ module PrometheusExporter::Server
|
|
166
195
|
|
167
196
|
def authenticate(req, res)
|
168
197
|
htpasswd = WEBrick::HTTPAuth::Htpasswd.new(@auth)
|
169
|
-
basic_auth =
|
198
|
+
basic_auth =
|
199
|
+
WEBrick::HTTPAuth::BasicAuth.new(
|
200
|
+
{ Realm: @realm, UserDB: htpasswd, Logger: @logger }
|
201
|
+
)
|
170
202
|
|
171
203
|
basic_auth.authenticate(req, res)
|
172
204
|
end
|
173
|
-
|
174
205
|
end
|
175
206
|
end
|
@@ -6,6 +6,8 @@ require_relative "server/web_collector"
|
|
6
6
|
require_relative "server/process_collector"
|
7
7
|
require_relative "server/sidekiq_collector"
|
8
8
|
require_relative "server/sidekiq_queue_collector"
|
9
|
+
require_relative "server/sidekiq_process_collector"
|
10
|
+
require_relative "server/sidekiq_stats_collector"
|
9
11
|
require_relative "server/delayed_job_collector"
|
10
12
|
require_relative "server/collector_base"
|
11
13
|
require_relative "server/collector"
|
@@ -16,3 +18,5 @@ require_relative "server/hutch_collector"
|
|
16
18
|
require_relative "server/unicorn_collector"
|
17
19
|
require_relative "server/active_record_collector"
|
18
20
|
require_relative "server/shoryuken_collector"
|
21
|
+
require_relative "server/resque_collector"
|
22
|
+
require_relative "server/good_job_collector"
|
data/lib/prometheus_exporter.rb
CHANGED
@@ -2,21 +2,21 @@
|
|
2
2
|
|
3
3
|
require_relative "prometheus_exporter/version"
|
4
4
|
require "json"
|
5
|
-
require "thread"
|
6
5
|
|
7
6
|
module PrometheusExporter
|
8
7
|
# per: https://github.com/prometheus/prometheus/wiki/Default-port-allocations
|
9
8
|
DEFAULT_PORT = 9394
|
10
|
-
DEFAULT_BIND_ADDRESS =
|
11
|
-
DEFAULT_PREFIX =
|
9
|
+
DEFAULT_BIND_ADDRESS = "localhost"
|
10
|
+
DEFAULT_PREFIX = "ruby_"
|
12
11
|
DEFAULT_LABEL = {}
|
13
12
|
DEFAULT_TIMEOUT = 2
|
14
|
-
DEFAULT_REALM =
|
13
|
+
DEFAULT_REALM = "Prometheus Exporter"
|
15
14
|
|
16
15
|
class OjCompat
|
17
16
|
def self.parse(obj)
|
18
17
|
Oj.compat_load(obj)
|
19
18
|
end
|
19
|
+
|
20
20
|
def self.dump(obj)
|
21
21
|
Oj.dump(obj, mode: :compat)
|
22
22
|
end
|
@@ -25,7 +25,7 @@ module PrometheusExporter
|
|
25
25
|
def self.hostname
|
26
26
|
@hostname ||=
|
27
27
|
begin
|
28
|
-
require
|
28
|
+
require "socket"
|
29
29
|
Socket.gethostname
|
30
30
|
rescue => e
|
31
31
|
STDERR.puts "Unable to lookup hostname #{e}"
|
@@ -45,13 +45,12 @@ module PrometheusExporter
|
|
45
45
|
def self.has_oj?
|
46
46
|
(
|
47
47
|
@@has_oj ||=
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
) == :
|
48
|
+
begin
|
49
|
+
require "oj"
|
50
|
+
:T
|
51
|
+
rescue LoadError
|
52
|
+
:F
|
53
|
+
end
|
54
|
+
) == :T
|
55
55
|
end
|
56
|
-
|
57
56
|
end
|
data/prometheus_exporter.gemspec
CHANGED
@@ -15,8 +15,6 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.homepage = "https://github.com/discourse/prometheus_exporter"
|
16
16
|
spec.license = "MIT"
|
17
17
|
|
18
|
-
spec.post_install_message = "prometheus_exporter will only bind to localhost by default as of v0.5"
|
19
|
-
|
20
18
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
21
19
|
f.match(%r{^(test|spec|features|bin)/})
|
22
20
|
end
|
@@ -27,11 +25,11 @@ Gem::Specification.new do |spec|
|
|
27
25
|
spec.add_dependency "webrick"
|
28
26
|
|
29
27
|
spec.add_development_dependency "rubocop", ">= 0.69"
|
30
|
-
spec.add_development_dependency "bundler", ">= 2.
|
28
|
+
spec.add_development_dependency "bundler", ">= 2.1.4"
|
31
29
|
spec.add_development_dependency "rake", "~> 13.0"
|
32
|
-
spec.add_development_dependency "minitest", "~> 5.0"
|
30
|
+
spec.add_development_dependency "minitest", "~> 5.15.0" # https://github.com/qrush/m/issues/93
|
33
31
|
spec.add_development_dependency "guard", "~> 2.0"
|
34
|
-
spec.add_development_dependency "mini_racer", "~> 0.
|
32
|
+
spec.add_development_dependency "mini_racer", "~> 0.5.0"
|
35
33
|
spec.add_development_dependency "guard-minitest", "~> 2.0"
|
36
34
|
spec.add_development_dependency "oj", "~> 3.0"
|
37
35
|
spec.add_development_dependency "rack-test", "~> 0.8.3"
|
@@ -39,8 +37,10 @@ Gem::Specification.new do |spec|
|
|
39
37
|
spec.add_development_dependency "rubocop-discourse", ">2"
|
40
38
|
spec.add_development_dependency "appraisal", "~> 2.3"
|
41
39
|
spec.add_development_dependency "activerecord", "~> 6.0.0"
|
40
|
+
spec.add_development_dependency "redis", "> 5"
|
41
|
+
spec.add_development_dependency "m"
|
42
42
|
if !RUBY_ENGINE == 'jruby'
|
43
43
|
spec.add_development_dependency "raindrops", "~> 0.19"
|
44
44
|
end
|
45
|
-
spec.required_ruby_version = '>= 2.
|
45
|
+
spec.required_ruby_version = '>= 2.6.0'
|
46
46
|
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:
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Saffron
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: webrick
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.
|
47
|
+
version: 2.1.4
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.
|
54
|
+
version: 2.1.4
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 5.15.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:
|
82
|
+
version: 5.15.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.
|
103
|
+
version: 0.5.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.
|
110
|
+
version: 0.5.0
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: guard-minitest
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -206,6 +206,34 @@ dependencies:
|
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: 6.0.0
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: redis
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '5'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '5'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: m
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
209
237
|
description: Prometheus metric collector and exporter for Ruby
|
210
238
|
email:
|
211
239
|
- sam.saffron@gmail.com
|
@@ -220,6 +248,7 @@ files:
|
|
220
248
|
- Appraisals
|
221
249
|
- CHANGELOG
|
222
250
|
- CODE_OF_CONDUCT.md
|
251
|
+
- Dockerfile
|
223
252
|
- Gemfile
|
224
253
|
- Guardfile
|
225
254
|
- LICENSE.txt
|
@@ -231,18 +260,24 @@ files:
|
|
231
260
|
- gemfiles/.bundle/config
|
232
261
|
- gemfiles/ar_60.gemfile
|
233
262
|
- gemfiles/ar_61.gemfile
|
263
|
+
- gemfiles/ar_70.gemfile
|
234
264
|
- lib/prometheus_exporter.rb
|
235
265
|
- lib/prometheus_exporter/client.rb
|
236
266
|
- lib/prometheus_exporter/instrumentation.rb
|
237
267
|
- lib/prometheus_exporter/instrumentation/active_record.rb
|
238
268
|
- lib/prometheus_exporter/instrumentation/delayed_job.rb
|
269
|
+
- lib/prometheus_exporter/instrumentation/good_job.rb
|
239
270
|
- lib/prometheus_exporter/instrumentation/hutch.rb
|
240
271
|
- lib/prometheus_exporter/instrumentation/method_profiler.rb
|
272
|
+
- lib/prometheus_exporter/instrumentation/periodic_stats.rb
|
241
273
|
- lib/prometheus_exporter/instrumentation/process.rb
|
242
274
|
- lib/prometheus_exporter/instrumentation/puma.rb
|
275
|
+
- lib/prometheus_exporter/instrumentation/resque.rb
|
243
276
|
- lib/prometheus_exporter/instrumentation/shoryuken.rb
|
244
277
|
- lib/prometheus_exporter/instrumentation/sidekiq.rb
|
278
|
+
- lib/prometheus_exporter/instrumentation/sidekiq_process.rb
|
245
279
|
- lib/prometheus_exporter/instrumentation/sidekiq_queue.rb
|
280
|
+
- lib/prometheus_exporter/instrumentation/sidekiq_stats.rb
|
246
281
|
- lib/prometheus_exporter/instrumentation/unicorn.rb
|
247
282
|
- lib/prometheus_exporter/metric.rb
|
248
283
|
- lib/prometheus_exporter/metric/base.rb
|
@@ -256,13 +291,18 @@ files:
|
|
256
291
|
- lib/prometheus_exporter/server/collector.rb
|
257
292
|
- lib/prometheus_exporter/server/collector_base.rb
|
258
293
|
- lib/prometheus_exporter/server/delayed_job_collector.rb
|
294
|
+
- lib/prometheus_exporter/server/good_job_collector.rb
|
259
295
|
- lib/prometheus_exporter/server/hutch_collector.rb
|
296
|
+
- lib/prometheus_exporter/server/metrics_container.rb
|
260
297
|
- lib/prometheus_exporter/server/process_collector.rb
|
261
298
|
- lib/prometheus_exporter/server/puma_collector.rb
|
299
|
+
- lib/prometheus_exporter/server/resque_collector.rb
|
262
300
|
- lib/prometheus_exporter/server/runner.rb
|
263
301
|
- lib/prometheus_exporter/server/shoryuken_collector.rb
|
264
302
|
- lib/prometheus_exporter/server/sidekiq_collector.rb
|
303
|
+
- lib/prometheus_exporter/server/sidekiq_process_collector.rb
|
265
304
|
- lib/prometheus_exporter/server/sidekiq_queue_collector.rb
|
305
|
+
- lib/prometheus_exporter/server/sidekiq_stats_collector.rb
|
266
306
|
- lib/prometheus_exporter/server/type_collector.rb
|
267
307
|
- lib/prometheus_exporter/server/unicorn_collector.rb
|
268
308
|
- lib/prometheus_exporter/server/web_collector.rb
|
@@ -273,8 +313,7 @@ homepage: https://github.com/discourse/prometheus_exporter
|
|
273
313
|
licenses:
|
274
314
|
- MIT
|
275
315
|
metadata: {}
|
276
|
-
post_install_message:
|
277
|
-
of v0.5
|
316
|
+
post_install_message:
|
278
317
|
rdoc_options: []
|
279
318
|
require_paths:
|
280
319
|
- lib
|
@@ -282,15 +321,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
282
321
|
requirements:
|
283
322
|
- - ">="
|
284
323
|
- !ruby/object:Gem::Version
|
285
|
-
version: 2.
|
324
|
+
version: 2.6.0
|
286
325
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
287
326
|
requirements:
|
288
327
|
- - ">="
|
289
328
|
- !ruby/object:Gem::Version
|
290
329
|
version: '0'
|
291
330
|
requirements: []
|
292
|
-
rubygems_version: 3.
|
293
|
-
signing_key:
|
331
|
+
rubygems_version: 3.1.6
|
332
|
+
signing_key:
|
294
333
|
specification_version: 4
|
295
334
|
summary: Prometheus Exporter
|
296
335
|
test_files: []
|