prometheus_exporter 0.7.0 → 1.0.1
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 +35 -24
- data/Appraisals +1 -1
- data/CHANGELOG +54 -24
- data/README.md +129 -38
- data/bin/prometheus_exporter +19 -6
- data/lib/prometheus_exporter/client.rb +15 -5
- data/lib/prometheus_exporter/instrumentation/active_record.rb +7 -9
- data/lib/prometheus_exporter/instrumentation/delayed_job.rb +3 -2
- data/lib/prometheus_exporter/instrumentation/method_profiler.rb +2 -1
- data/lib/prometheus_exporter/instrumentation/process.rb +1 -1
- data/lib/prometheus_exporter/instrumentation/puma.rb +28 -16
- data/lib/prometheus_exporter/instrumentation/resque.rb +40 -0
- data/lib/prometheus_exporter/instrumentation/sidekiq.rb +1 -1
- data/lib/prometheus_exporter/instrumentation/sidekiq_process.rb +58 -0
- data/lib/prometheus_exporter/instrumentation/sidekiq_queue.rb +27 -13
- data/lib/prometheus_exporter/instrumentation/sidekiq_stats.rb +43 -0
- data/lib/prometheus_exporter/instrumentation/unicorn.rb +4 -4
- data/lib/prometheus_exporter/instrumentation.rb +3 -0
- data/lib/prometheus_exporter/metric/base.rb +9 -0
- data/lib/prometheus_exporter/metric/gauge.rb +4 -0
- data/lib/prometheus_exporter/middleware.rb +19 -9
- data/lib/prometheus_exporter/server/active_record_collector.rb +2 -1
- data/lib/prometheus_exporter/server/collector.rb +3 -0
- data/lib/prometheus_exporter/server/delayed_job_collector.rb +17 -17
- data/lib/prometheus_exporter/server/puma_collector.rb +16 -8
- data/lib/prometheus_exporter/server/resque_collector.rb +54 -0
- data/lib/prometheus_exporter/server/runner.rb +11 -2
- data/lib/prometheus_exporter/server/sidekiq_collector.rb +1 -1
- data/lib/prometheus_exporter/server/sidekiq_process_collector.rb +46 -0
- data/lib/prometheus_exporter/server/sidekiq_queue_collector.rb +1 -1
- data/lib/prometheus_exporter/server/sidekiq_stats_collector.rb +46 -0
- data/lib/prometheus_exporter/server/unicorn_collector.rb +3 -3
- data/lib/prometheus_exporter/server/web_collector.rb +4 -4
- data/lib/prometheus_exporter/server/web_server.rb +6 -8
- data/lib/prometheus_exporter/server.rb +3 -0
- data/lib/prometheus_exporter/version.rb +1 -1
- data/prometheus_exporter.gemspec +3 -3
- metadata +16 -10
@@ -19,21 +19,21 @@ module PrometheusExporter::Server
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def collect(obj)
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
custom_labels = obj['custom_labels'] || {}
|
23
|
+
gauge_labels = { queue_name: obj['queue_name'] }.merge(custom_labels)
|
24
|
+
counter_labels = gauge_labels.merge(job_name: obj['name'])
|
25
25
|
|
26
26
|
ensure_delayed_job_metrics
|
27
|
-
@delayed_job_duration_seconds.observe(obj["duration"],
|
28
|
-
@delayed_jobs_total.observe(1,
|
29
|
-
@delayed_failed_jobs_total.observe(1,
|
30
|
-
@delayed_jobs_max_attempts_reached_total.observe(1) if obj["attempts"] >= obj["max_attempts"]
|
31
|
-
@delayed_job_duration_seconds_summary.observe(obj["duration"])
|
32
|
-
@delayed_job_duration_seconds_summary.observe(obj["duration"], status: "success") if obj["success"]
|
33
|
-
@delayed_job_duration_seconds_summary.observe(obj["duration"], status: "failed") if !obj["success"]
|
34
|
-
@delayed_job_attempts_summary.observe(obj["attempts"]) if obj["success"]
|
35
|
-
@delayed_jobs_enqueued.observe(obj["enqueued"])
|
36
|
-
@delayed_jobs_pending.observe(obj["pending"])
|
27
|
+
@delayed_job_duration_seconds.observe(obj["duration"], counter_labels)
|
28
|
+
@delayed_jobs_total.observe(1, counter_labels)
|
29
|
+
@delayed_failed_jobs_total.observe(1, counter_labels) if !obj["success"]
|
30
|
+
@delayed_jobs_max_attempts_reached_total.observe(1, counter_labels) if obj["attempts"] >= obj["max_attempts"]
|
31
|
+
@delayed_job_duration_seconds_summary.observe(obj["duration"], counter_labels)
|
32
|
+
@delayed_job_duration_seconds_summary.observe(obj["duration"], counter_labels.merge(status: "success")) if obj["success"]
|
33
|
+
@delayed_job_duration_seconds_summary.observe(obj["duration"], counter_labels.merge(status: "failed")) if !obj["success"]
|
34
|
+
@delayed_job_attempts_summary.observe(obj["attempts"], counter_labels) if obj["success"]
|
35
|
+
@delayed_jobs_enqueued.observe(obj["enqueued"], gauge_labels)
|
36
|
+
@delayed_jobs_pending.observe(obj["pending"], gauge_labels)
|
37
37
|
end
|
38
38
|
|
39
39
|
def metrics
|
@@ -76,12 +76,12 @@ module PrometheusExporter::Server
|
|
76
76
|
"delayed_jobs_max_attempts_reached_total", "Total number of delayed jobs that reached max attempts.")
|
77
77
|
|
78
78
|
@delayed_job_duration_seconds_summary =
|
79
|
-
PrometheusExporter::Metric::
|
80
|
-
|
79
|
+
PrometheusExporter::Metric::Base.default_aggregation.new("delayed_job_duration_seconds_summary",
|
80
|
+
"Summary of the time it takes jobs to execute.")
|
81
81
|
|
82
82
|
@delayed_job_attempts_summary =
|
83
|
-
PrometheusExporter::Metric::
|
84
|
-
|
83
|
+
PrometheusExporter::Metric::Base.default_aggregation.new("delayed_job_attempts_summary",
|
84
|
+
"Summary of the amount of attempts it takes delayed jobs to succeed.")
|
85
85
|
end
|
86
86
|
end
|
87
87
|
end
|
@@ -4,13 +4,13 @@ module PrometheusExporter::Server
|
|
4
4
|
class PumaCollector < TypeCollector
|
5
5
|
MAX_PUMA_METRIC_AGE = 30
|
6
6
|
PUMA_GAUGES = {
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
workers: "Number of puma workers.",
|
8
|
+
booted_workers: "Number of puma workers booted.",
|
9
|
+
old_workers: "Number of old puma workers.",
|
10
|
+
running_threads: "Number of puma threads currently running.",
|
11
|
+
request_backlog: "Number of requests waiting to be processed by a puma thread.",
|
12
|
+
thread_pool_capacity: "Number of puma threads available at current scale.",
|
13
|
+
max_threads: "Number of puma threads at available at max scale.",
|
14
14
|
}
|
15
15
|
|
16
16
|
def initialize
|
@@ -34,6 +34,9 @@ module PrometheusExporter::Server
|
|
34
34
|
if m["custom_labels"]
|
35
35
|
labels.merge!(m["custom_labels"])
|
36
36
|
end
|
37
|
+
if m["metric_labels"]
|
38
|
+
labels.merge!(m["metric_labels"])
|
39
|
+
end
|
37
40
|
|
38
41
|
PUMA_GAUGES.map do |k, help|
|
39
42
|
k = k.to_s
|
@@ -51,7 +54,12 @@ module PrometheusExporter::Server
|
|
51
54
|
now = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
|
52
55
|
|
53
56
|
obj["created_at"] = now
|
54
|
-
|
57
|
+
|
58
|
+
@puma_metrics.delete_if do |current|
|
59
|
+
(obj["pid"] == current["pid"] && obj["hostname"] == current["hostname"]) ||
|
60
|
+
(current["created_at"] + MAX_PUMA_METRIC_AGE < now)
|
61
|
+
end
|
62
|
+
|
55
63
|
@puma_metrics << obj
|
56
64
|
end
|
57
65
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrometheusExporter::Server
|
4
|
+
class ResqueCollector < TypeCollector
|
5
|
+
MAX_RESQUE_METRIC_AGE = 30
|
6
|
+
RESQUE_GAUGES = {
|
7
|
+
processed_jobs: "Total number of processed Resque jobs.",
|
8
|
+
failed_jobs: "Total number of failed Resque jobs.",
|
9
|
+
pending_jobs: "Total number of pending Resque jobs.",
|
10
|
+
queues: "Total number of Resque queues.",
|
11
|
+
workers: "Total number of Resque workers running.",
|
12
|
+
working: "Total number of Resque workers working."
|
13
|
+
}
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
@resque_metrics = []
|
17
|
+
@gauges = {}
|
18
|
+
end
|
19
|
+
|
20
|
+
def type
|
21
|
+
"resque"
|
22
|
+
end
|
23
|
+
|
24
|
+
def metrics
|
25
|
+
return [] if resque_metrics.length == 0
|
26
|
+
|
27
|
+
resque_metrics.map do |metric|
|
28
|
+
labels = metric.fetch("custom_labels", {})
|
29
|
+
|
30
|
+
RESQUE_GAUGES.map do |name, help|
|
31
|
+
name = name.to_s
|
32
|
+
if value = metric[name]
|
33
|
+
gauge = gauges[name] ||= PrometheusExporter::Metric::Gauge.new("resque_#{name}", help)
|
34
|
+
gauge.observe(value, labels)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
gauges.values
|
40
|
+
end
|
41
|
+
|
42
|
+
def collect(object)
|
43
|
+
now = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
|
44
|
+
|
45
|
+
object["created_at"] = now
|
46
|
+
resque_metrics.delete_if { |metric| metric["created_at"] + MAX_RESQUE_METRIC_AGE < now }
|
47
|
+
resque_metrics << object
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
attr_reader :resque_metrics, :gauges
|
53
|
+
end
|
54
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require_relative '../client'
|
4
4
|
require_relative '../instrumentation/unicorn'
|
5
5
|
|
6
6
|
module PrometheusExporter::Server
|
@@ -17,6 +17,7 @@ module PrometheusExporter::Server
|
|
17
17
|
@prefix = nil
|
18
18
|
@auth = nil
|
19
19
|
@realm = nil
|
20
|
+
@histogram = nil
|
20
21
|
|
21
22
|
options.each do |k, v|
|
22
23
|
send("#{k}=", v) if self.class.method_defined?("#{k}=")
|
@@ -27,6 +28,10 @@ module PrometheusExporter::Server
|
|
27
28
|
PrometheusExporter::Metric::Base.default_prefix = prefix
|
28
29
|
PrometheusExporter::Metric::Base.default_labels = label
|
29
30
|
|
31
|
+
if histogram
|
32
|
+
PrometheusExporter::Metric::Base.default_aggregation = PrometheusExporter::Metric::Histogram
|
33
|
+
end
|
34
|
+
|
30
35
|
register_type_collectors
|
31
36
|
|
32
37
|
unless collector.is_a?(PrometheusExporter::Server::CollectorBase)
|
@@ -47,7 +52,7 @@ module PrometheusExporter::Server
|
|
47
52
|
end
|
48
53
|
|
49
54
|
attr_accessor :unicorn_listen_address, :unicorn_pid_file
|
50
|
-
attr_writer :prefix, :port, :bind, :collector_class, :type_collectors, :timeout, :verbose, :server_class, :label, :auth, :realm
|
55
|
+
attr_writer :prefix, :port, :bind, :collector_class, :type_collectors, :timeout, :verbose, :server_class, :label, :auth, :realm, :histogram
|
51
56
|
|
52
57
|
def auth
|
53
58
|
@auth || nil
|
@@ -98,6 +103,10 @@ module PrometheusExporter::Server
|
|
98
103
|
@label ||= PrometheusExporter::DEFAULT_LABEL
|
99
104
|
end
|
100
105
|
|
106
|
+
def histogram
|
107
|
+
@histogram || false
|
108
|
+
end
|
109
|
+
|
101
110
|
private
|
102
111
|
|
103
112
|
def register_type_collectors
|
@@ -52,7 +52,7 @@ module PrometheusExporter::Server
|
|
52
52
|
if !@sidekiq_jobs_total
|
53
53
|
|
54
54
|
@sidekiq_job_duration_seconds =
|
55
|
-
PrometheusExporter::Metric::
|
55
|
+
PrometheusExporter::Metric::Base.default_aggregation.new(
|
56
56
|
"sidekiq_job_duration_seconds", "Total time spent in sidekiq jobs.")
|
57
57
|
|
58
58
|
@sidekiq_jobs_total =
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrometheusExporter::Server
|
4
|
+
class SidekiqProcessCollector < PrometheusExporter::Server::TypeCollector
|
5
|
+
MAX_SIDEKIQ_METRIC_AGE = 60
|
6
|
+
|
7
|
+
SIDEKIQ_PROCESS_GAUGES = {
|
8
|
+
'busy' => 'Number of running jobs',
|
9
|
+
'concurrency' => 'Maximum concurrency',
|
10
|
+
}.freeze
|
11
|
+
|
12
|
+
attr_reader :sidekiq_metrics, :gauges
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@sidekiq_metrics = []
|
16
|
+
@gauges = {}
|
17
|
+
end
|
18
|
+
|
19
|
+
def type
|
20
|
+
'sidekiq_process'
|
21
|
+
end
|
22
|
+
|
23
|
+
def metrics
|
24
|
+
sidekiq_metrics.map do |metric|
|
25
|
+
labels = metric.fetch('labels', {})
|
26
|
+
SIDEKIQ_PROCESS_GAUGES.map do |name, help|
|
27
|
+
if (value = metric[name])
|
28
|
+
gauge = gauges[name] ||= PrometheusExporter::Metric::Gauge.new("sidekiq_process_#{name}", help)
|
29
|
+
gauge.observe(value, labels)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
gauges.values
|
35
|
+
end
|
36
|
+
|
37
|
+
def collect(object)
|
38
|
+
now = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
|
39
|
+
process = object['process']
|
40
|
+
|
41
|
+
process["created_at"] = now
|
42
|
+
sidekiq_metrics.delete_if { |metric| metric['created_at'] + MAX_SIDEKIQ_METRIC_AGE < now }
|
43
|
+
sidekiq_metrics << process
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PrometheusExporter::Server
|
4
|
+
class SidekiqStatsCollector < TypeCollector
|
5
|
+
MAX_SIDEKIQ_METRIC_AGE = 60
|
6
|
+
|
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',
|
16
|
+
}.freeze
|
17
|
+
|
18
|
+
attr_reader :sidekiq_metrics, :gauges
|
19
|
+
|
20
|
+
def initialize
|
21
|
+
@sidekiq_metrics = []
|
22
|
+
@gauges = {}
|
23
|
+
end
|
24
|
+
|
25
|
+
def type
|
26
|
+
'sidekiq_stats'
|
27
|
+
end
|
28
|
+
|
29
|
+
def metrics
|
30
|
+
sidekiq_metrics.map do |metric|
|
31
|
+
SIDEKIQ_STATS_GAUGES.map do |name, help|
|
32
|
+
if (value = metric['stats'][name])
|
33
|
+
gauge = gauges[name] ||= PrometheusExporter::Metric::Gauge.new("sidekiq_stats_#{name}", help)
|
34
|
+
gauge.observe(value)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
gauges.values
|
40
|
+
end
|
41
|
+
|
42
|
+
def collect(object)
|
43
|
+
sidekiq_metrics << object
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -6,9 +6,9 @@ class PrometheusExporter::Server::UnicornCollector < PrometheusExporter::Server:
|
|
6
6
|
MAX_UNICORN_METRIC_AGE = 60
|
7
7
|
|
8
8
|
UNICORN_GAUGES = {
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
workers: 'Number of unicorn workers.',
|
10
|
+
active_workers: 'Number of active unicorn workers',
|
11
|
+
request_backlog: 'Number of requests waiting to be processed by a unicorn worker.'
|
12
12
|
}.freeze
|
13
13
|
|
14
14
|
def initialize
|
@@ -33,22 +33,22 @@ module PrometheusExporter::Server
|
|
33
33
|
"Total HTTP requests from web app."
|
34
34
|
)
|
35
35
|
|
36
|
-
@metrics["http_duration_seconds"] = @http_duration_seconds = PrometheusExporter::Metric::
|
36
|
+
@metrics["http_duration_seconds"] = @http_duration_seconds = PrometheusExporter::Metric::Base.default_aggregation.new(
|
37
37
|
"http_duration_seconds",
|
38
38
|
"Time spent in HTTP reqs in seconds."
|
39
39
|
)
|
40
40
|
|
41
|
-
@metrics["http_redis_duration_seconds"] = @http_redis_duration_seconds = PrometheusExporter::Metric::
|
41
|
+
@metrics["http_redis_duration_seconds"] = @http_redis_duration_seconds = PrometheusExporter::Metric::Base.default_aggregation.new(
|
42
42
|
"http_redis_duration_seconds",
|
43
43
|
"Time spent in HTTP reqs in Redis, in seconds."
|
44
44
|
)
|
45
45
|
|
46
|
-
@metrics["http_sql_duration_seconds"] = @http_sql_duration_seconds = PrometheusExporter::Metric::
|
46
|
+
@metrics["http_sql_duration_seconds"] = @http_sql_duration_seconds = PrometheusExporter::Metric::Base.default_aggregation.new(
|
47
47
|
"http_sql_duration_seconds",
|
48
48
|
"Time spent in HTTP reqs in SQL in seconds."
|
49
49
|
)
|
50
50
|
|
51
|
-
@metrics["http_queue_duration_seconds"] = @http_queue_duration_seconds = PrometheusExporter::Metric::
|
51
|
+
@metrics["http_queue_duration_seconds"] = @http_queue_duration_seconds = PrometheusExporter::Metric::Base.default_aggregation.new(
|
52
52
|
"http_queue_duration_seconds",
|
53
53
|
"Time spent queueing the request in load balancer in seconds."
|
54
54
|
)
|
@@ -29,16 +29,17 @@ module PrometheusExporter::Server
|
|
29
29
|
@bad_metrics_total.observe(0)
|
30
30
|
|
31
31
|
@access_log, @logger = nil
|
32
|
+
log_target = opts[:log_target]
|
32
33
|
|
33
34
|
if @verbose
|
34
35
|
@access_log = [
|
35
36
|
[$stderr, WEBrick::AccessLog::COMMON_LOG_FORMAT],
|
36
37
|
[$stderr, WEBrick::AccessLog::REFERER_LOG_FORMAT],
|
37
38
|
]
|
38
|
-
@logger = WEBrick::Log.new($stderr)
|
39
|
+
@logger = WEBrick::Log.new(log_target || $stderr)
|
39
40
|
else
|
40
41
|
@access_log = []
|
41
|
-
@logger = WEBrick::Log.new("/dev/null")
|
42
|
+
@logger = WEBrick::Log.new(log_target || "/dev/null")
|
42
43
|
end
|
43
44
|
|
44
45
|
@logger.info "Using Basic Authentication via #{@auth}" if @verbose && @auth
|
@@ -87,10 +88,7 @@ module PrometheusExporter::Server
|
|
87
88
|
@collector.process(block)
|
88
89
|
rescue => e
|
89
90
|
if @verbose
|
90
|
-
|
91
|
-
STDERR.puts e.inspect
|
92
|
-
STDERR.puts e.backtrace
|
93
|
-
STDERR.puts
|
91
|
+
@logger.error "\n\n#{e.inspect}\n#{e.backtrace}\n\n"
|
94
92
|
end
|
95
93
|
@bad_metrics_total.observe
|
96
94
|
res.body = "Bad Metrics #{e}"
|
@@ -108,7 +106,7 @@ module PrometheusExporter::Server
|
|
108
106
|
begin
|
109
107
|
@server.start
|
110
108
|
rescue => e
|
111
|
-
|
109
|
+
@logger.error "Failed to start prometheus collector web on port #{@port}: #{e}"
|
112
110
|
end
|
113
111
|
end
|
114
112
|
end
|
@@ -125,7 +123,7 @@ module PrometheusExporter::Server
|
|
125
123
|
end
|
126
124
|
rescue Timeout::Error
|
127
125
|
# we timed out ... bummer
|
128
|
-
|
126
|
+
@logger.error "Generating Prometheus metrics text timed out"
|
129
127
|
end
|
130
128
|
|
131
129
|
metrics = []
|
@@ -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,4 @@ 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"
|
data/prometheus_exporter.gemspec
CHANGED
@@ -27,11 +27,11 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_dependency "webrick"
|
28
28
|
|
29
29
|
spec.add_development_dependency "rubocop", ">= 0.69"
|
30
|
-
spec.add_development_dependency "bundler", ">= 2.
|
30
|
+
spec.add_development_dependency "bundler", ">= 2.1.4"
|
31
31
|
spec.add_development_dependency "rake", "~> 13.0"
|
32
32
|
spec.add_development_dependency "minitest", "~> 5.0"
|
33
33
|
spec.add_development_dependency "guard", "~> 2.0"
|
34
|
-
spec.add_development_dependency "mini_racer", "~> 0.
|
34
|
+
spec.add_development_dependency "mini_racer", "~> 0.5.0"
|
35
35
|
spec.add_development_dependency "guard-minitest", "~> 2.0"
|
36
36
|
spec.add_development_dependency "oj", "~> 3.0"
|
37
37
|
spec.add_development_dependency "rack-test", "~> 0.8.3"
|
@@ -42,5 +42,5 @@ Gem::Specification.new do |spec|
|
|
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: 0.
|
4
|
+
version: 1.0.1
|
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: 2021-12-22 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
|
@@ -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
|
@@ -240,9 +240,12 @@ files:
|
|
240
240
|
- lib/prometheus_exporter/instrumentation/method_profiler.rb
|
241
241
|
- lib/prometheus_exporter/instrumentation/process.rb
|
242
242
|
- lib/prometheus_exporter/instrumentation/puma.rb
|
243
|
+
- lib/prometheus_exporter/instrumentation/resque.rb
|
243
244
|
- lib/prometheus_exporter/instrumentation/shoryuken.rb
|
244
245
|
- lib/prometheus_exporter/instrumentation/sidekiq.rb
|
246
|
+
- lib/prometheus_exporter/instrumentation/sidekiq_process.rb
|
245
247
|
- lib/prometheus_exporter/instrumentation/sidekiq_queue.rb
|
248
|
+
- lib/prometheus_exporter/instrumentation/sidekiq_stats.rb
|
246
249
|
- lib/prometheus_exporter/instrumentation/unicorn.rb
|
247
250
|
- lib/prometheus_exporter/metric.rb
|
248
251
|
- lib/prometheus_exporter/metric/base.rb
|
@@ -259,10 +262,13 @@ files:
|
|
259
262
|
- lib/prometheus_exporter/server/hutch_collector.rb
|
260
263
|
- lib/prometheus_exporter/server/process_collector.rb
|
261
264
|
- lib/prometheus_exporter/server/puma_collector.rb
|
265
|
+
- lib/prometheus_exporter/server/resque_collector.rb
|
262
266
|
- lib/prometheus_exporter/server/runner.rb
|
263
267
|
- lib/prometheus_exporter/server/shoryuken_collector.rb
|
264
268
|
- lib/prometheus_exporter/server/sidekiq_collector.rb
|
269
|
+
- lib/prometheus_exporter/server/sidekiq_process_collector.rb
|
265
270
|
- lib/prometheus_exporter/server/sidekiq_queue_collector.rb
|
271
|
+
- lib/prometheus_exporter/server/sidekiq_stats_collector.rb
|
266
272
|
- lib/prometheus_exporter/server/type_collector.rb
|
267
273
|
- lib/prometheus_exporter/server/unicorn_collector.rb
|
268
274
|
- lib/prometheus_exporter/server/web_collector.rb
|
@@ -282,15 +288,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
282
288
|
requirements:
|
283
289
|
- - ">="
|
284
290
|
- !ruby/object:Gem::Version
|
285
|
-
version: 2.
|
291
|
+
version: 2.6.0
|
286
292
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
287
293
|
requirements:
|
288
294
|
- - ">="
|
289
295
|
- !ruby/object:Gem::Version
|
290
296
|
version: '0'
|
291
297
|
requirements: []
|
292
|
-
rubygems_version: 3.
|
293
|
-
signing_key:
|
298
|
+
rubygems_version: 3.1.6
|
299
|
+
signing_key:
|
294
300
|
specification_version: 4
|
295
301
|
summary: Prometheus Exporter
|
296
302
|
test_files: []
|