prometheus-client-mmap 0.7.0.beta33 → 0.7.0.beta34
Sign up to get free protection for your applications and to get access to all the features.
- 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
|