prometheus-client 4.2.4 → 5.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 28ff0bb1d55cb405e5e7a46dcda60af83ad4413c7ca8797b7c3428e508e9a03d
4
- data.tar.gz: c68d6afe95a11acc958e2a69e44cdca6025908ebe5636b554946f66ddbf7de88
3
+ metadata.gz: 703b8174a3ae4a293a02b4ca8bcb86f27917de2b65fd0620ddb60db98734c18d
4
+ data.tar.gz: 898b39b3aeb2f74428c0601e311eec09bc823145e7c1ac55d6d57ac3967918c3
5
5
  SHA512:
6
- metadata.gz: 6d723878ceb3297dfafb0e0781f8b909468c496134f23307eab4f2a92f207c9a5ec873ae84f468735a39c237f1ce7cc8540f53bff9f0b011880c6fea432d936a
7
- data.tar.gz: 030b3e45aa4921e19644d0f4d2f14f300d0317823c1719fc28344c5d4dbbce838292d2c12797d71ef579d6869128116b5b797fd08db3d0dca0e1ac94868f8d20
6
+ metadata.gz: 46056bc9e84a2fed451eb80f80bb79b253d8f7a24f082390d3b88d11e0048431319c4ac34b4109c66244f6d0fefce799ccb3f700c439069ee198bed31bd8dd6c
7
+ data.tar.gz: a4d2c9c470b07bf9ed6e46ecff048be472dc8c0c7f41ff04e8eacbfbcc9dd88a01b7f7a1cf52213676d6fcee6399337dd6bd4f4f0d5db6193526accf8ef0b529
data/README.md CHANGED
@@ -5,7 +5,7 @@ through a HTTP interface. Intended to be used together with a
5
5
  [Prometheus server][1].
6
6
 
7
7
  [![Gem Version][4]](http://badge.fury.io/rb/prometheus-client)
8
- [![Build Status][3]](https://circleci.com/gh/prometheus/client_ruby/tree/main.svg?style=svg)
8
+ [![Build Status][3]](https://github.com/prometheus/client_ruby/actions/workflows/ci.yml)
9
9
 
10
10
  ## Usage
11
11
 
@@ -504,7 +504,7 @@ rake
504
504
 
505
505
  [1]: https://github.com/prometheus/prometheus
506
506
  [2]: http://rack.github.io/
507
- [3]: https://circleci.com/gh/prometheus/client_ruby/tree/main.svg?style=svg
507
+ [3]: https://github.com/prometheus/client_ruby/actions/workflows/ci.yml/badge.svg
508
508
  [4]: https://badge.fury.io/rb/prometheus-client.svg
509
509
  [8]: https://github.com/prometheus/pushgateway
510
510
  [9]: lib/prometheus/middleware/exporter.rb
@@ -1,5 +1,5 @@
1
1
  require 'fileutils'
2
- require "cgi"
2
+ require "uri"
3
3
 
4
4
  module Prometheus
5
5
  module Client
@@ -133,12 +133,9 @@ module Prometheus
133
133
  begin
134
134
  store = FileMappedDict.new(file_path, true)
135
135
  store.all_values.each do |(labelset_qs, v, ts)|
136
- # Labels come as a query string, and CGI::parse returns arrays for each key
137
- # "foo=bar&x=y" => { "foo" => ["bar"], "x" => ["y"] }
138
- # Turn the keys back into symbols, and remove the arrays
139
- label_set = CGI::parse(labelset_qs).map do |k, vs|
140
- [k.to_sym, vs.first]
141
- end.to_h
136
+ # Labels come as a query string
137
+ # "foo=bar&x=y" => { foo: "bar", x: "y" }
138
+ label_set = URI.decode_www_form(labelset_qs).to_h.transform_keys(&:to_sym)
142
139
 
143
140
  stores_data[label_set] << [v, ts]
144
141
  end
@@ -165,7 +162,7 @@ module Prometheus
165
162
  labels[:pid] = process_id
166
163
  end
167
164
 
168
- labels.to_a.sort.map{|k,v| "#{CGI::escape(k.to_s)}=#{CGI::escape(v.to_s)}"}.join('&')
165
+ URI.encode_www_form(labels.to_a.sort)
169
166
  end
170
167
 
171
168
  def internal_store
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Prometheus
4
4
  module Client
5
- VERSION = '4.2.4'
5
+ VERSION = '5.0.0'
6
6
  end
7
7
  end
@@ -1,6 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require 'benchmark'
4
3
  require 'prometheus/client'
5
4
 
6
5
  module Prometheus
@@ -34,6 +33,12 @@ module Prometheus
34
33
 
35
34
  protected
36
35
 
36
+ def realtime
37
+ start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)
38
+ yield
39
+ Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time
40
+ end
41
+
37
42
  def init_request_metrics
38
43
  @requests = @registry.counter(
39
44
  :"#{@metrics_prefix}_requests_total",
@@ -58,7 +63,7 @@ module Prometheus
58
63
 
59
64
  def trace(env)
60
65
  response = nil
61
- duration = Benchmark.realtime { response = yield }
66
+ duration = realtime { response = yield }
62
67
  record(env, response.first.to_s, duration)
63
68
  return response
64
69
  rescue => exception
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prometheus-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.4
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Kochie
@@ -9,7 +9,7 @@ authors:
9
9
  - Daniel Magliola
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-02-02 00:00:00.000000000 Z
12
+ date: 2026-08-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: base64
@@ -25,6 +25,20 @@ dependencies:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: benchmark
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: benchmark-ips
30
44
  requirement: !ruby/object:Gem::Requirement