fluent-plugin-prometheus 1.8.3 → 1.8.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e739b07c782da7117d24c2fd38e06cfdb244d5acf68670a38ebad9550261d5c
4
- data.tar.gz: 93fcda335d86fc20d16b225cab8a075cc853823d0f616d453bc176fb26e787cb
3
+ metadata.gz: c268ed901a0c48ea1885ce64b621c3abc79983a95696180236156b7844029a4d
4
+ data.tar.gz: ac9aea40b3eab787f14ba1e402732898ab2cf355a3836d252b85867100914a93
5
5
  SHA512:
6
- metadata.gz: f0017117f4c478bf3bb41e28d5103396771450377997dc642dc9b80d66729ce1fb26eb68cda184c7ad8f9805e51377869772834f8248732d3e067c728d5b7681
7
- data.tar.gz: 6dc252c05caaf90530446fe8c102c8a60b89c1c918e3c00205b0c6ca845c9991faf8edc271b883fec402661f33f732cb7c027e705427097a8dc32af096005496
6
+ metadata.gz: 8bead7bf6d8534398ef24706348ae55d6437e3b898d89e6edb9981c6311d92be2e6d25f841a6bbf6be973a870966ff1296f3f4fb5314be62d06b900668f51b85
7
+ data.tar.gz: 8e9d8a48bdb3a3ba73626c01acda706a8af9f6dc309a1c005a240eb3cf051ef50ffe3b0012e966765ba8ffec415b2d2fd4a24852938c7fad84882ee842a96899
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ Release 1.8.4 - 2020/09/24
2
+
3
+ * in_prometheus_output_monitor: Add gauge_all parameter
4
+
1
5
  Release 1.8.3 - 2020/08/24
2
6
 
3
7
  * Fix resourcr leak in async-http based server
data/README.md CHANGED
@@ -152,6 +152,7 @@ More configuration parameters:
152
152
 
153
153
  - `<labels>`: additional labels for this metric (optional). See [Labels](#labels)
154
154
  - `interval`: interval to update monitor_agent information in seconds (default: 5)
155
+ - `gauge_all`: Specify metric type. If `true`, use `gauge` type. If `false`, use `counter` type. Since v2, this parameter will be removed and use `counter` type.
155
156
 
156
157
  ### prometheus_tail_monitor input plugin
157
158
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "fluent-plugin-prometheus"
3
- spec.version = "1.8.3"
3
+ spec.version = "1.8.4"
4
4
  spec.authors = ["Masahiro Sano"]
5
5
  spec.email = ["sabottenda@gmail.com"]
6
6
  spec.summary = %q{A fluent plugin that collects metrics and exposes for Prometheus.}
@@ -10,6 +10,7 @@ module Fluent::Plugin
10
10
  helpers :timer
11
11
 
12
12
  config_param :interval, :time, default: 5
13
+ config_param :gauge_all, :bool, default: true
13
14
  attr_reader :registry
14
15
 
15
16
  MONITOR_IVARS = [
@@ -54,6 +55,8 @@ module Fluent::Plugin
54
55
  end
55
56
 
56
57
  @monitor_agent = Fluent::Plugin::MonitorAgentInput.new
58
+
59
+ @gauge_or_counter = @gauge_all ? :gauge : :counter
57
60
  end
58
61
 
59
62
  def start
@@ -87,28 +90,28 @@ module Fluent::Plugin
87
90
  'Oldest timekey in buffer.'),
88
91
 
89
92
  # Output metrics
90
- retry_counts: get_gauge(
93
+ retry_counts: get_gauge_or_counter(
91
94
  :fluentd_output_status_retry_count,
92
95
  'Current retry counts.'),
93
- num_errors: get_gauge(
96
+ num_errors: get_gauge_or_counter(
94
97
  :fluentd_output_status_num_errors,
95
98
  'Current number of errors.'),
96
- emit_count: get_gauge(
99
+ emit_count: get_gauge_or_counter(
97
100
  :fluentd_output_status_emit_count,
98
101
  'Current emit counts.'),
99
- emit_records: get_gauge(
102
+ emit_records: get_gauge_or_counter(
100
103
  :fluentd_output_status_emit_records,
101
104
  'Current emit records.'),
102
- write_count: get_gauge(
105
+ write_count: get_gauge_or_counter(
103
106
  :fluentd_output_status_write_count,
104
107
  'Current write counts.'),
105
108
  rollback_count: get_gauge(
106
109
  :fluentd_output_status_rollback_count,
107
110
  'Current rollback counts.'),
108
- flush_time_count: get_gauge(
111
+ flush_time_count: get_gauge_or_counter(
109
112
  :fluentd_output_status_flush_time_count,
110
113
  'Total flush time.'),
111
- slow_flush_count: get_gauge(
114
+ slow_flush_count: get_gauge_or_counter(
112
115
  :fluentd_output_status_slow_flush_count,
113
116
  'Current slow flush counts.'),
114
117
  retry_wait: get_gauge(
@@ -157,14 +160,22 @@ module Fluent::Plugin
157
160
 
158
161
  monitor_info.each do |name, metric|
159
162
  if info[name]
160
- metric.set(label, info[name])
163
+ if metric.is_a?(::Prometheus::Client::Gauge)
164
+ metric.set(label, info[name])
165
+ elsif metric.is_a?(::Prometheus::Client::Counter)
166
+ metric.increment(label, info[name] - metric.get(label))
167
+ end
161
168
  end
162
169
  end
163
170
 
164
171
  if info['instance_variables']
165
172
  instance_vars_info.each do |name, metric|
166
173
  if info['instance_variables'][name]
167
- metric.set(label, info['instance_variables'][name])
174
+ if metric.is_a?(::Prometheus::Client::Gauge)
175
+ metric.set(label, info['instance_variables'][name])
176
+ elsif metric.is_a?(::Prometheus::Client::Counter)
177
+ metric.increment(label, info['instance_variables'][name] - metric.get(label))
178
+ end
168
179
  end
169
180
  end
170
181
  end
@@ -201,5 +212,13 @@ module Fluent::Plugin
201
212
  @registry.gauge(name, docstring)
202
213
  end
203
214
  end
215
+
216
+ def get_gauge_or_counter(name, docstring)
217
+ if @registry.exist?(name)
218
+ @registry.get(name)
219
+ else
220
+ @registry.public_send(@gauge_or_counter, name, docstring)
221
+ end
222
+ end
204
223
  end
205
224
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-prometheus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.3
4
+ version: 1.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro Sano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-24 00:00:00.000000000 Z
11
+ date: 2020-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd