prometheus-client 0.10.0.pre.alpha.2 → 0.10.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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: be821ad9a35fc316970961619d14342baa8166ff6143e21e30e527e0dc1bd325
|
|
4
|
+
data.tar.gz: bf6583e5e6b45cc96ffa9424abe5707e3f17ba5782ba6e42c89a994e8233a0f6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ff408a86bebf88bc757850dc69c3faf9b56dc8d556f0c837d350496ee37810390e5cf6f0b319785e3c9a79968f67467b1fd2a5213c07468a907bd5eae907363c
|
|
7
|
+
data.tar.gz: df5a509d431e8d7a9ca03f984400cfd3d0705d3322f9f2a336653f6956a828135b75efb99aa3817398c1f559bf4722d2580a5608b598f1d8312b24d97d18098c
|
|
@@ -133,7 +133,8 @@ module Prometheus
|
|
|
133
133
|
end
|
|
134
134
|
|
|
135
135
|
# Aggregate all the different values for each label_set
|
|
136
|
-
|
|
136
|
+
aggregate_hash = Hash.new { |hash, key| hash[key] = 0.0 }
|
|
137
|
+
stores_data.each_with_object(aggregate_hash) do |(label_set, values), acc|
|
|
137
138
|
acc[label_set] = aggregate_values(values)
|
|
138
139
|
end
|
|
139
140
|
end
|
|
@@ -153,7 +154,12 @@ module Prometheus
|
|
|
153
154
|
end
|
|
154
155
|
|
|
155
156
|
def internal_store
|
|
156
|
-
@
|
|
157
|
+
if @store_opened_by_pid != process_id
|
|
158
|
+
@store_opened_by_pid = process_id
|
|
159
|
+
@internal_store = FileMappedDict.new(filemap_filename)
|
|
160
|
+
else
|
|
161
|
+
@internal_store
|
|
162
|
+
end
|
|
157
163
|
end
|
|
158
164
|
|
|
159
165
|
# Filename for this metric's PStore (one per process)
|
|
@@ -18,7 +18,6 @@ module Prometheus
|
|
|
18
18
|
def initialize(expected_labels:, reserved_labels: [])
|
|
19
19
|
@expected_labels = expected_labels.sort
|
|
20
20
|
@reserved_labels = BASE_RESERVED_LABELS + reserved_labels
|
|
21
|
-
@validated = {}
|
|
22
21
|
end
|
|
23
22
|
|
|
24
23
|
def validate_symbols!(labels)
|
|
@@ -34,17 +33,17 @@ module Prometheus
|
|
|
34
33
|
end
|
|
35
34
|
|
|
36
35
|
def validate_labelset!(labelset)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"(keys given: #{labelset.keys.sort} vs." \
|
|
44
|
-
" keys expected: #{expected_labels}"
|
|
36
|
+
begin
|
|
37
|
+
return labelset if keys_match?(labelset)
|
|
38
|
+
rescue ArgumentError
|
|
39
|
+
# If labelset contains keys that are a mixture of strings and symbols, this will
|
|
40
|
+
# raise when trying to sort them, but the error should be the same:
|
|
41
|
+
# InvalidLabelSetError
|
|
45
42
|
end
|
|
46
43
|
|
|
47
|
-
|
|
44
|
+
raise InvalidLabelSetError, "labels must have the same signature " \
|
|
45
|
+
"(keys given: #{labelset.keys} vs." \
|
|
46
|
+
" keys expected: #{expected_labels}"
|
|
48
47
|
end
|
|
49
48
|
|
|
50
49
|
private
|
|
@@ -27,7 +27,7 @@ module Prometheus
|
|
|
27
27
|
|
|
28
28
|
@name = name
|
|
29
29
|
@docstring = docstring
|
|
30
|
-
@preset_labels = preset_labels
|
|
30
|
+
@preset_labels = stringify_values(preset_labels)
|
|
31
31
|
|
|
32
32
|
@store = Prometheus::Client.config.data_store.for_metric(
|
|
33
33
|
name,
|
|
@@ -85,8 +85,16 @@ module Prometheus
|
|
|
85
85
|
def label_set_for(labels)
|
|
86
86
|
# We've already validated, and there's nothing to merge. Save some cycles
|
|
87
87
|
return preset_labels if @all_labels_preset && labels.empty?
|
|
88
|
+
labels = stringify_values(labels)
|
|
88
89
|
@validator.validate_labelset!(preset_labels.merge(labels))
|
|
89
90
|
end
|
|
91
|
+
|
|
92
|
+
def stringify_values(labels)
|
|
93
|
+
stringified = {}
|
|
94
|
+
labels.each { |k,v| stringified[k] = v.to_s }
|
|
95
|
+
|
|
96
|
+
stringified
|
|
97
|
+
end
|
|
90
98
|
end
|
|
91
99
|
end
|
|
92
100
|
end
|
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: 0.10.0
|
|
4
|
+
version: 0.10.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ben Kochie
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2019-
|
|
13
|
+
date: 2019-10-07 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: benchmark-ips
|
|
@@ -84,12 +84,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
84
84
|
version: '0'
|
|
85
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
|
-
- - "
|
|
87
|
+
- - ">="
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
89
|
+
version: '0'
|
|
90
90
|
requirements: []
|
|
91
|
-
|
|
92
|
-
rubygems_version: 2.7.6
|
|
91
|
+
rubygems_version: 3.0.3
|
|
93
92
|
signing_key:
|
|
94
93
|
specification_version: 4
|
|
95
94
|
summary: A suite of instrumentation metric primitivesthat can be exposed through a
|