phihos-fluent-plugin-prometheus 2.0.3.pre.1 → 2.0.3
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/fluent-plugin-prometheus.gemspec +1 -1
- data/lib/fluent/plugin/filter_prometheus.rb +0 -7
- data/lib/fluent/plugin/out_prometheus.rb +0 -7
- data/lib/fluent/plugin/prometheus/data_store.rb +0 -10
- data/lib/fluent/plugin/prometheus.rb +0 -27
- data/spec/fluent/plugin/filter_prometheus_spec.rb +2 -29
- data/spec/fluent/plugin/out_prometheus_spec.rb +2 -29
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3502c3486612aa7d3f802bb36b74e32546b0d794596ef36fd89212677f9ec7d4
|
4
|
+
data.tar.gz: 452afbd170f2d9236c48cd22932e9be5e5562272d400d76ca379c9e2b5e46265
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68ed7e87f2d2cedc1b8f1e688cca2825a1b2ca8309a0011a2e984a6a1fe6d1a4db0e41cf89b9ba5fdf839049b298d7636ef12c8a34a8b0d64427751adcedf009
|
7
|
+
data.tar.gz: 413c3d13f10213e5119ce34da437c8824a0d5dfa3ec1188ccf3d885ef224db8058237abd6cd3e6e972cb0f5ecdbe5c3be1c60583777169f90b8abbc81bb54fa5
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "phihos-fluent-plugin-prometheus"
|
3
|
-
spec.version = "2.0.3
|
3
|
+
spec.version = "2.0.3"
|
4
4
|
spec.authors = ["Philipp Hossner"]
|
5
5
|
spec.email = ["philipp.hossner@posteo.de"]
|
6
6
|
spec.summary = %q{A fluent plugin that collects metrics and exposes for Prometheus.}
|
@@ -33,13 +33,6 @@ module Fluent::Plugin
|
|
33
33
|
method(:thread_current_running?),
|
34
34
|
@log
|
35
35
|
)
|
36
|
-
Fluent::Plugin::Prometheus.start_reset_threads(
|
37
|
-
@metrics,
|
38
|
-
@registry,
|
39
|
-
method(:thread_create),
|
40
|
-
method(:thread_current_running?),
|
41
|
-
@log
|
42
|
-
)
|
43
36
|
end
|
44
37
|
|
45
38
|
def filter(tag, time, record)
|
@@ -33,13 +33,6 @@ module Fluent::Plugin
|
|
33
33
|
method(:thread_current_running?),
|
34
34
|
@log
|
35
35
|
)
|
36
|
-
Fluent::Plugin::Prometheus.start_reset_threads(
|
37
|
-
@metrics,
|
38
|
-
@registry,
|
39
|
-
method(:thread_create),
|
40
|
-
method(:thread_current_running?),
|
41
|
-
@log
|
42
|
-
)
|
43
36
|
end
|
44
37
|
|
45
38
|
def process(tag, es)
|
@@ -8,10 +8,6 @@ module Prometheus
|
|
8
8
|
label_set = label_set_for(labels)
|
9
9
|
@store.remove(labels: label_set)
|
10
10
|
end
|
11
|
-
|
12
|
-
def reset_values
|
13
|
-
@store.reset_values
|
14
|
-
end
|
15
11
|
end
|
16
12
|
end
|
17
13
|
end
|
@@ -88,12 +84,6 @@ module Fluent
|
|
88
84
|
end
|
89
85
|
end
|
90
86
|
end
|
91
|
-
|
92
|
-
def reset_values
|
93
|
-
synchronize do
|
94
|
-
@internal_store.transform_values! { |_| 0.0 }
|
95
|
-
end
|
96
|
-
end
|
97
87
|
end
|
98
88
|
|
99
89
|
private_constant :MetricStore
|
@@ -93,17 +93,6 @@ module Fluent
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
-
def self.start_reset_threads(metrics, registry, thread_create, thread_running, log)
|
97
|
-
metrics.select { |metric| metric.has_reset? }.each do |metric|
|
98
|
-
thread_create.call("prometheus_reset_#{metric.name}".to_sym) do
|
99
|
-
while thread_running.call()
|
100
|
-
sleep(metric.reset_after)
|
101
|
-
metric.reset_values(registry, log)
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
96
|
def self.placeholder_expander(log)
|
108
97
|
Fluent::Plugin::Prometheus::ExpandBuilder.new(log: log)
|
109
98
|
end
|
@@ -181,7 +170,6 @@ module Fluent
|
|
181
170
|
attr_reader :desc
|
182
171
|
attr_reader :retention
|
183
172
|
attr_reader :retention_check_interval
|
184
|
-
attr_reader :reset_after
|
185
173
|
|
186
174
|
def initialize(element, registry, labels)
|
187
175
|
['name', 'desc'].each do |key|
|
@@ -199,7 +187,6 @@ module Fluent
|
|
199
187
|
@last_modified_store = LastModifiedStore.new
|
200
188
|
end
|
201
189
|
@topk = element['topk'].to_i
|
202
|
-
@reset_after = element['reset_after'].to_i
|
203
190
|
|
204
191
|
@base_labels = Fluent::Plugin::Prometheus.parse_labels_elements(element)
|
205
192
|
@base_labels = labels.merge(@base_labels)
|
@@ -253,10 +240,6 @@ module Fluent
|
|
253
240
|
@retention > 0
|
254
241
|
end
|
255
242
|
|
256
|
-
def has_reset?
|
257
|
-
reset_after > 0
|
258
|
-
end
|
259
|
-
|
260
243
|
def remove_expired_metrics(registry, log)
|
261
244
|
if has_retention?
|
262
245
|
metric = registry.get(@name)
|
@@ -274,16 +257,6 @@ module Fluent
|
|
274
257
|
end
|
275
258
|
end
|
276
259
|
|
277
|
-
def reset_values(registry, log)
|
278
|
-
if has_reset?
|
279
|
-
metric = registry.get(@name)
|
280
|
-
log.debug "Resetting values nof metric #{@name}..."
|
281
|
-
metric.reset_values
|
282
|
-
else
|
283
|
-
log.warn('reset_store should not be called when reset_after is not set for this metric!')
|
284
|
-
end
|
285
|
-
end
|
286
|
-
|
287
260
|
class LastModifiedStore
|
288
261
|
def initialize
|
289
262
|
@internal_store = Hash.new
|
@@ -85,7 +85,7 @@ describe Fluent::Plugin::PrometheusFilter do
|
|
85
85
|
let(:message2) { { "foo" => 300, "bar" => "b" } }
|
86
86
|
let(:message3) { { "foo" => 100, "bar" => "c" } }
|
87
87
|
|
88
|
-
context 'config with
|
88
|
+
context 'config with retention 1' do
|
89
89
|
let(:config) {
|
90
90
|
BASE_CONFIG + %(
|
91
91
|
<metric>
|
@@ -101,7 +101,7 @@ describe Fluent::Plugin::PrometheusFilter do
|
|
101
101
|
)
|
102
102
|
}
|
103
103
|
|
104
|
-
it '
|
104
|
+
it 'expires metric after max 2s' do
|
105
105
|
expect(registry.metrics.map(&:name)).not_to eq([:simple])
|
106
106
|
driver.run(default_tag: tag) {
|
107
107
|
driver.feed(event_time, message1)
|
@@ -115,31 +115,4 @@ describe Fluent::Plugin::PrometheusFilter do
|
|
115
115
|
end
|
116
116
|
end
|
117
117
|
end
|
118
|
-
|
119
|
-
describe '#run with reset_after' do
|
120
|
-
let(:message) { { "foo" => 100 } }
|
121
|
-
|
122
|
-
context 'config with reset_after 1' do
|
123
|
-
let(:config) {
|
124
|
-
BASE_CONFIG + %(
|
125
|
-
<metric>
|
126
|
-
name simple
|
127
|
-
type counter
|
128
|
-
desc Something foo.
|
129
|
-
key foo
|
130
|
-
reset_after 1
|
131
|
-
</metric>
|
132
|
-
)
|
133
|
-
}
|
134
|
-
|
135
|
-
it 'resets metric values after max 2s' do
|
136
|
-
expect(registry.metrics.map(&:name)).not_to eq([:simple])
|
137
|
-
driver.run(default_tag: tag) {
|
138
|
-
driver.feed(event_time, message)
|
139
|
-
sleep(2)
|
140
|
-
}
|
141
|
-
expect(registry.metrics[0].values).to eq({ {} => 0 })
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
145
118
|
end
|
@@ -106,7 +106,7 @@ describe Fluent::Plugin::PrometheusOutput do
|
|
106
106
|
let(:message2) { { "foo" => 300, "bar" => "b" } }
|
107
107
|
let(:message3) { { "foo" => 100, "bar" => "c" } }
|
108
108
|
|
109
|
-
context 'config with
|
109
|
+
context 'config with retention 1' do
|
110
110
|
let(:config) {
|
111
111
|
BASE_CONFIG + %(
|
112
112
|
<metric>
|
@@ -122,7 +122,7 @@ describe Fluent::Plugin::PrometheusOutput do
|
|
122
122
|
)
|
123
123
|
}
|
124
124
|
|
125
|
-
it '
|
125
|
+
it 'expires metric after max 2s' do
|
126
126
|
expect(registry.metrics.map(&:name)).not_to eq([:simple])
|
127
127
|
driver.run(default_tag: tag) {
|
128
128
|
driver.feed(event_time, message1)
|
@@ -136,31 +136,4 @@ describe Fluent::Plugin::PrometheusOutput do
|
|
136
136
|
end
|
137
137
|
end
|
138
138
|
end
|
139
|
-
|
140
|
-
describe '#run with reset_after' do
|
141
|
-
let(:message) { { "foo" => 100 } }
|
142
|
-
|
143
|
-
context 'config with reset_after 1' do
|
144
|
-
let(:config) {
|
145
|
-
BASE_CONFIG + %(
|
146
|
-
<metric>
|
147
|
-
name simple
|
148
|
-
type counter
|
149
|
-
desc Something foo.
|
150
|
-
key foo
|
151
|
-
reset_after 1
|
152
|
-
</metric>
|
153
|
-
)
|
154
|
-
}
|
155
|
-
|
156
|
-
it 'resets metric values after max 2s' do
|
157
|
-
expect(registry.metrics.map(&:name)).not_to eq([:simple])
|
158
|
-
driver.run(default_tag: tag) {
|
159
|
-
driver.feed(event_time, message)
|
160
|
-
sleep(2)
|
161
|
-
}
|
162
|
-
expect(registry.metrics[0].values).to eq({ {} => 0 })
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
166
139
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phihos-fluent-plugin-prometheus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.3
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philipp Hossner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -156,9 +156,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
156
156
|
version: '0'
|
157
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
158
|
requirements:
|
159
|
-
- - "
|
159
|
+
- - ">="
|
160
160
|
- !ruby/object:Gem::Version
|
161
|
-
version:
|
161
|
+
version: '0'
|
162
162
|
requirements: []
|
163
163
|
rubygems_version: 3.3.5
|
164
164
|
signing_key:
|