fluent-plugin-prometheus-smarter 1.8.5 → 1.8.6

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: 6c2cda69af325db41ca82963d27f977bf9f538292722d45081ee679db4beceb1
4
- data.tar.gz: 39972b2ffe7e899412df2906979e6477acd5f794cad39dfe5cefdb6b5f2919c9
3
+ metadata.gz: f1fa3d38332098758e8a5503518f0952613e248cf0bc31fef028122f5325dc51
4
+ data.tar.gz: d134b4080167f1411d603be959133d6188001481b198d59a807f8e11677f0668
5
5
  SHA512:
6
- metadata.gz: d4758adde70167f804d93c031105127db3993fa9a1a02620543f9cc183aacc7587e2dd4bcac4cabb35b48c2ea149f3aa42a0d86ce72a08256d13ff6e1df1dffc
7
- data.tar.gz: 8569c124ee96a4c88868ab1fe601c96e49b3d12fa01046c3331d996c39207f421d572d1e0d14975db27075215f58e0fea3e694aa8a8a3b393ef98b2383967e43
6
+ metadata.gz: b8297dfaab8ac867534ece51cd1f4849c2c04fb1b4ad012274cdeb016a5bb617db78082e149fdb39f0bbf9cbb4d92d2ee42da831a511cce09dbb952c5a188ec5
7
+ data.tar.gz: 50f762bb5613a2c4ac96481ffdcfc426e430a24910d26355622fa85bf6a2229fa3ae59513ea5936412757263e9b6952ca7cf40986668ecad444db920d5a25bb3
@@ -1,11 +1,11 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "fluent-plugin-prometheus-smarter"
3
- spec.version = "1.8.5"
4
- spec.authors = ["Masahiro Sano, Josh Minor"]
5
- spec.email = ["sabottenda@gmail.com"]
3
+ spec.version = "1.8.6"
4
+ spec.authors = ["Masahiro Sano", "Josh Minor"]
5
+ spec.email = ["jishminor@gmail.com"]
6
6
  spec.summary = %q{A fluent plugin that collects metrics and exposes for Prometheus.}
7
7
  spec.description = %q{A fluent plugin that collects metrics and exposes for Prometheus.}
8
- spec.homepage = "https://github.com/fluent/fluent-plugin-prometheus"
8
+ spec.homepage = "https://github.com/jishminor/fluent-plugin-prometheus"
9
9
  spec.license = "Apache-2.0"
10
10
 
11
11
  spec.files = `git ls-files -z`.split("\x0")
@@ -0,0 +1,71 @@
1
+ require 'fluent/plugin/output'
2
+ require 'fluent/plugin/prometheus'
3
+
4
+ module Fluent::Plugin
5
+ class PrometheusOutput < Fluent::Plugin::Output
6
+ Fluent::Plugin.register_output('prometheus_metric', self)
7
+ include Fluent::Plugin::PrometheusLabelParser
8
+ include Fluent::Plugin::Prometheus
9
+
10
+ def initialize
11
+ super
12
+ @registry = ::Prometheus::Client.registry
13
+ end
14
+
15
+ def multi_workers_ready?
16
+ true
17
+ end
18
+
19
+ config_param :key, :string
20
+
21
+ def labels(record, expander)
22
+ label = {}
23
+ labels.each do |k, v|
24
+ if v.is_a?(String)
25
+ label[k] = expander.expand(v)
26
+ else
27
+ label[k] = v.call(record)
28
+ end
29
+ end
30
+ label
31
+ end
32
+
33
+ def configure(conf)
34
+ super
35
+ @labels = parse_labels_elements(conf)
36
+ @placeholder_values = {}
37
+ @placeholder_expander_builder = Fluent::Plugin::Prometheus.placeholder_expander(log)
38
+ @hostname = Socket.gethostname
39
+ end
40
+
41
+ def process(tag, es)
42
+ placeholder_values = {
43
+ 'tag' => tag,
44
+ 'hostname' => @hostname,
45
+ 'worker_id' => fluentd_worker_id,
46
+ }
47
+
48
+ # Create metric if not exists
49
+ begin
50
+ gauge = registry.gauge(tag.to_sym)
51
+ rescue ::Prometheus::Client::Registry::AlreadyRegisteredError
52
+ gauge = registry.get(tag.to_sym)
53
+ end
54
+
55
+ # Write out values in event stream to Registry
56
+ es.each do |time, record|
57
+ placeholders = record.merge(placeholder_values)
58
+ expander = @placeholder_expander_builder.build(placeholders)
59
+ if @key.is_a?(String)
60
+ value = record[@key]
61
+ else
62
+ value = @key.call(record)
63
+ end
64
+ if value
65
+ gauge.set(labels(record, expander), value)
66
+ end
67
+ end
68
+ end
69
+
70
+ end
71
+ end
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-prometheus-smarter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.5
4
+ version: 1.8.6
5
5
  platform: ruby
6
6
  authors:
7
- - Masahiro Sano, Josh Minor
7
+ - Masahiro Sano
8
+ - Josh Minor
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
@@ -102,7 +103,7 @@ dependencies:
102
103
  version: '0'
103
104
  description: A fluent plugin that collects metrics and exposes for Prometheus.
104
105
  email:
105
- - sabottenda@gmail.com
106
+ - jishminor@gmail.com
106
107
  executables: []
107
108
  extensions: []
108
109
  extra_rdoc_files: []
@@ -121,6 +122,7 @@ files:
121
122
  - lib/fluent/plugin/in_prometheus_output_monitor.rb
122
123
  - lib/fluent/plugin/in_prometheus_tail_monitor.rb
123
124
  - lib/fluent/plugin/out_prometheus.rb
125
+ - lib/fluent/plugin/out_prometheus_metric.rb
124
126
  - lib/fluent/plugin/prometheus.rb
125
127
  - lib/fluent/plugin/prometheus/placeholder_expander.rb
126
128
  - lib/fluent/plugin/prometheus_metrics.rb
@@ -137,7 +139,7 @@ files:
137
139
  - spec/fluent/plugin/prometheus_metrics_spec.rb
138
140
  - spec/fluent/plugin/shared.rb
139
141
  - spec/spec_helper.rb
140
- homepage: https://github.com/fluent/fluent-plugin-prometheus
142
+ homepage: https://github.com/jishminor/fluent-plugin-prometheus
141
143
  licenses:
142
144
  - Apache-2.0
143
145
  metadata: {}
@@ -156,8 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
158
  - !ruby/object:Gem::Version
157
159
  version: '0'
158
160
  requirements: []
159
- rubyforge_project:
160
- rubygems_version: 2.7.6
161
+ rubygems_version: 3.0.3
161
162
  signing_key:
162
163
  specification_version: 4
163
164
  summary: A fluent plugin that collects metrics and exposes for Prometheus.