sidekiq_prometheus 1.5.0 → 1.7.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/CHANGELOG.md +11 -0
- data/README.md +1 -0
- data/lib/sidekiq_prometheus/metrics.rb +3 -0
- data/lib/sidekiq_prometheus/periodic_metrics.rb +1 -1
- data/lib/sidekiq_prometheus/version.rb +1 -1
- data/lib/sidekiq_prometheus.rb +22 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c76de7fe8caef12bc6e505dd5e01648c5da34d87b00a6cf756d232a1c988bb46
|
4
|
+
data.tar.gz: d211a23831395d5058a7c9ddb281870fde3154956194324984a816b54067e300
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cc266bed6f539d955405fe35b5e41a2f539b65ce7d4a552b70e745fe760a6e1a216ee22278889a193e7456e42bc72cc54b486b7f7266a2a3e80b33754c251f4
|
7
|
+
data.tar.gz: 1544e8d064ccc46548153382e531131e250b4bf8acf567daebbf40daab8d934c0d46ef11bdd05ad7ff16f6961b79a205bde999d4e17b1a27e272ca2c1dd1b827
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
CHANGELOG
|
2
2
|
|
3
|
+
<a name="v1.6.0"></a>
|
4
|
+
## [v1.6.0](https://github.com/fastly/sidekiq-prometheus/compare/v1.5.0...v1.6.0) (2021-08-03)
|
5
|
+
|
6
|
+
### Features
|
7
|
+
|
8
|
+
* add option for silencing the WEBrick access logging of /metrics
|
9
|
+
|
10
|
+
### Pull Requests
|
11
|
+
|
12
|
+
* Merge pull request [#25](https://github.com/fastly/sidekiq-prometheus/issues/25) from fastly/option_for_silencing_webrick
|
13
|
+
|
3
14
|
|
4
15
|
<a name="v1.5.0"></a>
|
5
16
|
## [v1.5.0](https://github.com/fastly/sidekiq-prometheus/compare/v1.4.0...v1.5.0) (2021-08-02)
|
data/README.md
CHANGED
@@ -82,6 +82,7 @@ end
|
|
82
82
|
* `periodic_metrics_enabled`: Boolean that determines whether to run the periodic metrics reporter. `PeriodicMetrics` runs a separate thread that reports on global metrics (if enabled) as well worker GC stats (if enabled). It reports metrics on the interval defined by `periodic_reporting_interval`. Defaults to `true`.
|
83
83
|
* `periodic_reporting_interval`: interval in seconds for reporting periodic metrics. Default: `30`
|
84
84
|
* `metrics_server_enabled`: Boolean that determines whether to run the rack server. Defaults to `true`
|
85
|
+
* `metrics_server_logger_enabled`: Boolean that determines if the metrics server will log access logs. Defaults to `true`
|
85
86
|
* `metrics_host`: Host on which the rack server will listen. Defaults to
|
86
87
|
`localhost`
|
87
88
|
* `metrics_port`: Port on which the rack server will listen. Defaults to `9359`
|
@@ -11,6 +11,9 @@ module SidekiqPrometheus::Metrics
|
|
11
11
|
{ name: :sidekiq_workers_size,
|
12
12
|
type: :gauge,
|
13
13
|
docstring: 'Total number of workers processing jobs', },
|
14
|
+
{ name: :sidekiq_processes_size,
|
15
|
+
type: :gauge,
|
16
|
+
docstring: 'Total number of running sidekiq processes', },
|
14
17
|
{ name: :sidekiq_dead_size,
|
15
18
|
type: :gauge,
|
16
19
|
docstring: 'Total Dead Size', },
|
@@ -18,7 +18,7 @@ class SidekiqPrometheus::PeriodicMetrics
|
|
18
18
|
attr_reader :interval
|
19
19
|
attr_reader :senate, :sidekiq_stats, :sidekiq_queue
|
20
20
|
|
21
|
-
GLOBAL_STATS = %i[failed processed retry_size dead_size scheduled_size workers_size].freeze
|
21
|
+
GLOBAL_STATS = %i[failed processed retry_size dead_size scheduled_size workers_size processes_size].freeze
|
22
22
|
GC_STATS = {
|
23
23
|
counters: %i[major_gc_count minor_gc_count total_allocated_objects],
|
24
24
|
gauges: %i[heap_live_slots heap_free_slots],
|
data/lib/sidekiq_prometheus.rb
CHANGED
@@ -57,6 +57,9 @@ module SidekiqPrometheus
|
|
57
57
|
# @return [Integer] Port on which the metrics server will listen. Default: 9357
|
58
58
|
attr_accessor :metrics_port
|
59
59
|
|
60
|
+
# @return [Boolean] When set to false will silence the metric server access logs. Default: true
|
61
|
+
attr_accessor :metrics_server_logger_enabled
|
62
|
+
|
60
63
|
# Override the default Prometheus::Client
|
61
64
|
# @return [Prometheus::Client]
|
62
65
|
attr_writer :client
|
@@ -76,6 +79,7 @@ module SidekiqPrometheus
|
|
76
79
|
self.metrics_server_enabled = true
|
77
80
|
self.metrics_host = 'localhost'
|
78
81
|
self.metrics_port = 9359
|
82
|
+
self.metrics_server_logger_enabled = true
|
79
83
|
self.custom_labels = {}
|
80
84
|
self.custom_metrics = []
|
81
85
|
|
@@ -129,6 +133,13 @@ module SidekiqPrometheus
|
|
129
133
|
metrics_server_enabled
|
130
134
|
end
|
131
135
|
|
136
|
+
##
|
137
|
+
# Helper method for +metrics_server_logger_enabled+ configuration setting
|
138
|
+
# @return [Boolean] defaults to true
|
139
|
+
def metrics_server_logger_enabled?
|
140
|
+
metrics_server_logger_enabled
|
141
|
+
end
|
142
|
+
|
132
143
|
##
|
133
144
|
# Get a metric from the registry
|
134
145
|
# @param metric [Symbol] name of metric to fetch
|
@@ -200,14 +211,23 @@ module SidekiqPrometheus
|
|
200
211
|
# Will listen on SidekiqPrometheus.metrics_host and
|
201
212
|
# SidekiqPrometheus.metrics_port
|
202
213
|
def metrics_server
|
214
|
+
opts = {
|
215
|
+
Port: SidekiqPrometheus.metrics_port,
|
216
|
+
Host: SidekiqPrometheus.metrics_host,
|
217
|
+
}
|
218
|
+
|
219
|
+
unless metrics_server_logger_enabled?
|
220
|
+
opts[:Logger] = WEBrick::Log.new('/dev/null')
|
221
|
+
opts[:AccessLog] = []
|
222
|
+
end
|
223
|
+
|
203
224
|
@_metrics_server ||= Thread.new do
|
204
225
|
Rack::Handler::WEBrick.run(
|
205
226
|
Rack::Builder.new {
|
206
227
|
use Prometheus::Middleware::Exporter, registry: SidekiqPrometheus.registry
|
207
228
|
run ->(_) { [301, { 'Location' => '/metrics' }, []] }
|
208
229
|
},
|
209
|
-
|
210
|
-
Host: SidekiqPrometheus.metrics_host,
|
230
|
+
**opts
|
211
231
|
)
|
212
232
|
end
|
213
233
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq_prometheus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lukas Eklund
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-09-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|