prometheus-client-mmap 0.27.0-x86_64-linux → 0.28.0-x86_64-linux
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -4
- data/lib/2.7/fast_mmaped_file_rs.so +0 -0
- data/lib/3.0/fast_mmaped_file_rs.so +0 -0
- data/lib/3.1/fast_mmaped_file_rs.so +0 -0
- data/lib/3.2/fast_mmaped_file_rs.so +0 -0
- data/lib/prometheus/client/support/puma.rb +44 -0
- data/lib/prometheus/client/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2b3f0a703d44fcc2299a7fd36f57684732164b28323afa3d07c466da6b69105
|
4
|
+
data.tar.gz: 296c9e632e97608a62e600f176e3e444a8523b497469eb5e667485f9113d74de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52610661822b0bcd3543f2fb6ba3a9ca47ce37284f04f8f1300a07a05c32cd7ec17762d098724ae65f8c44651c58e67282e8de6f023dccbb0dd469c61db35182
|
7
|
+
data.tar.gz: 8aa949ce960f3ee16ec405aa13562dcfe71d171dc7929bf0dfdbcbc52ce91b3da70c9ecabeb3355ba67366fe1707d9f1dd035c094dc1a205fcced208248b7011
|
data/README.md
CHANGED
@@ -241,8 +241,8 @@ To use the C extension, set the environment variable
|
|
241
241
|
|
242
242
|
### PID cardinality
|
243
243
|
|
244
|
-
In multiprocess setup e.g. running under Unicorn, having worker process restart often
|
245
|
-
lead to performance problems when proccesing metric files. By default each process using
|
244
|
+
In multiprocess setup e.g. running under Unicorn or Puma, having worker process restart often
|
245
|
+
can lead to performance problems when proccesing metric files. By default each process using
|
246
246
|
Prometheus metrics will create a set of files based on that process PID. With high worker
|
247
247
|
churn this will lead to creation of thousands of files and in turn will cause very noticable
|
248
248
|
slowdown when displaying metrics
|
@@ -250,14 +250,20 @@ slowdown when displaying metrics
|
|
250
250
|
To reduce this problem, a surrogate process id can be used. Set of all such IDs needs
|
251
251
|
have low cardinality, and each process id must be unique among all running process.
|
252
252
|
|
253
|
-
For Unicorn a worker id/number can be used to greatly speedup the metrics rendering.
|
253
|
+
For Unicorn and Puma a worker id/number can be used to greatly speedup the metrics rendering.
|
254
254
|
|
255
|
-
|
255
|
+
If you are using Unicorn, add this line to your `configure` block:
|
256
256
|
|
257
257
|
```ruby
|
258
258
|
config.pid_provider = Prometheus::Client::Support::Unicorn.method(:worker_pid_provider)
|
259
259
|
```
|
260
260
|
|
261
|
+
If you are using Puma, add this line to your `configure` block:
|
262
|
+
|
263
|
+
```ruby
|
264
|
+
config.pid_provider = Prometheus::Client::Support::Puma.method(:worker_pid_provider)
|
265
|
+
```
|
266
|
+
|
261
267
|
## Tools
|
262
268
|
|
263
269
|
### `bin/parse`
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Prometheus
|
2
|
+
module Client
|
3
|
+
module Support
|
4
|
+
module Puma
|
5
|
+
extend self
|
6
|
+
|
7
|
+
def worker_pid_provider
|
8
|
+
wid = worker_id
|
9
|
+
if wid = worker_id
|
10
|
+
wid
|
11
|
+
else
|
12
|
+
"process_id_#{Process.pid}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def object_based_worker_id
|
19
|
+
return unless defined?(::Puma::Cluster::Worker)
|
20
|
+
|
21
|
+
workers = ObjectSpace.each_object(::Puma::Cluster::Worker)
|
22
|
+
return if workers.nil?
|
23
|
+
|
24
|
+
workers_first = workers.first
|
25
|
+
workers_first.index unless workers_first.nil?
|
26
|
+
end
|
27
|
+
|
28
|
+
def program_name
|
29
|
+
$PROGRAM_NAME
|
30
|
+
end
|
31
|
+
|
32
|
+
def worker_id
|
33
|
+
if matchdata = program_name.match(/puma.*cluster worker ([0-9]+):/)
|
34
|
+
"puma_#{matchdata[1]}"
|
35
|
+
elsif object_worker_id = object_based_worker_id
|
36
|
+
"puma_#{object_worker_id}"
|
37
|
+
elsif program_name.include?('puma')
|
38
|
+
'puma_master'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prometheus-client-mmap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.28.0
|
5
5
|
platform: x86_64-linux
|
6
6
|
authors:
|
7
7
|
- Tobias Schmidt
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2023-
|
14
|
+
date: 2023-09-02 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rb_sys
|
@@ -197,6 +197,7 @@ files:
|
|
197
197
|
- lib/prometheus/client/registry.rb
|
198
198
|
- lib/prometheus/client/simple_value.rb
|
199
199
|
- lib/prometheus/client/summary.rb
|
200
|
+
- lib/prometheus/client/support/puma.rb
|
200
201
|
- lib/prometheus/client/support/unicorn.rb
|
201
202
|
- lib/prometheus/client/uses_value_type.rb
|
202
203
|
- lib/prometheus/client/version.rb
|