prometheus-client-mmap 0.7.0.beta33 → 0.7.0.beta34
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/ext/fast_mmaped_file/fast_mmaped_file.c +1 -1
- data/lib/fast_mmaped_file.bundle +0 -0
- data/lib/prometheus/client/helper/entry_parser.rb +20 -8
- data/lib/prometheus/client/simple_value.rb +1 -1
- data/lib/prometheus/client/version.rb +1 -1
- data/lib/prometheus.rb +0 -2
- metadata +23 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1225b344f2939116817abcefbfe4483e38c7087c
|
4
|
+
data.tar.gz: 4fe5ade968d6d4df62d7ab7b9801ee8b1c80aa50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3afd81bf5703647413b61a0762882bc3796325a51fa0db271620d6b0c1d70bbcba0d5191c9acf740e2d856539982a04bdcc253c4f4c1ecb969e9affca7dcb73
|
7
|
+
data.tar.gz: f083690e3b0e19f3968576c64d7f31e71ffa982b90f29edfb5e8ce6b738f2e97a5345f6dfc2f23ed98dd6a04b0d06f6015fb377b519bd760d1bf9cc3b796ca7a
|
data/lib/fast_mmaped_file.bundle
CHANGED
Binary file
|
@@ -35,17 +35,24 @@ module Prometheus
|
|
35
35
|
size < MINIMUM_SIZE || used.zero?
|
36
36
|
end
|
37
37
|
|
38
|
-
def entries
|
38
|
+
def entries(ignore_errors = false)
|
39
39
|
return Enumerator.new {} if empty?
|
40
40
|
|
41
41
|
Enumerator.new do |yielder|
|
42
42
|
used_ = used # cache used to avoid unnecessary unpack operations
|
43
43
|
|
44
44
|
pos = START_POSITION # used + padding offset
|
45
|
-
while pos < used_
|
45
|
+
while pos < used_ && pos < size && pos > 0
|
46
46
|
data = slice(pos..-1)
|
47
|
-
|
48
|
-
|
47
|
+
unless data
|
48
|
+
raise ParsingError, "data slice is nil at pos #{pos}" unless ignore_errors
|
49
|
+
pos += 8
|
50
|
+
next
|
51
|
+
end
|
52
|
+
|
53
|
+
encoded_len, first_encoded_bytes = data.unpack('LL')
|
54
|
+
if encoded_len.nil? || encoded_len.zero? || first_encoded_bytes.nil? || first_encoded_bytes.zero?
|
55
|
+
# do not parse empty data
|
49
56
|
pos += 8
|
50
57
|
next
|
51
58
|
end
|
@@ -54,21 +61,24 @@ module Prometheus
|
|
54
61
|
value_offset = 4 + encoded_len + padding_len
|
55
62
|
pos += value_offset
|
56
63
|
|
57
|
-
|
58
|
-
|
64
|
+
if value_offset > 0 && (pos + 8) < size # if positions are safe
|
65
|
+
yielder.yield data, encoded_len, value_offset, pos
|
66
|
+
else
|
67
|
+
raise ParsingError, "data slice is nil at pos #{pos}" unless ignore_errors
|
68
|
+
end
|
59
69
|
pos += 8
|
60
70
|
end
|
61
71
|
end
|
62
72
|
end
|
63
73
|
|
64
74
|
def parsed_entries(ignore_errors = false)
|
65
|
-
result = entries.map do |data, encoded_len, value_offset, _|
|
75
|
+
result = entries(ignore_errors).map do |data, encoded_len, value_offset, _|
|
66
76
|
begin
|
67
77
|
encoded, value = data.unpack(format('@4A%d@%dd', encoded_len, value_offset))
|
68
78
|
[encoded, value]
|
69
79
|
rescue ArgumentError => e
|
70
80
|
Prometheus::Client.logger.debug("Error processing data: #{bin_to_hex(data[0, 7])} len: #{encoded_len} value_offset: #{value_offset}")
|
71
|
-
raise ParsingError
|
81
|
+
raise ParsingError, e unless ignore_errors
|
72
82
|
end
|
73
83
|
end
|
74
84
|
|
@@ -80,6 +90,8 @@ module Prometheus
|
|
80
90
|
parsed_entries(ignore_errors).each do |key, value|
|
81
91
|
begin
|
82
92
|
metric_name, name, labelnames, labelvalues = JsonParser.load(key)
|
93
|
+
labelnames = [] unless labelnames
|
94
|
+
labelvalues = [] unless labelvalues
|
83
95
|
metric = metrics.fetch(metric_name,
|
84
96
|
metric_name: metric_name,
|
85
97
|
help: 'Multiprocess metric',
|
data/lib/prometheus.rb
CHANGED
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.7.0.
|
4
|
+
version: 0.7.0.beta34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Schmidt
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-11-
|
12
|
+
date: 2017-11-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mmap2
|
@@ -31,6 +31,26 @@ dependencies:
|
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.2.9
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: fuzzbert
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.0'
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.0.4
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - "~>"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '1.0'
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.0.4
|
34
54
|
- !ruby/object:Gem::Dependency
|
35
55
|
name: gem_publisher
|
36
56
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
154
|
version: 1.3.1
|
135
155
|
requirements: []
|
136
156
|
rubyforge_project:
|
137
|
-
rubygems_version: 2.6.
|
157
|
+
rubygems_version: 2.6.8
|
138
158
|
signing_key:
|
139
159
|
specification_version: 4
|
140
160
|
summary: A suite of instrumentation metric primitivesthat can be exposed through a
|