fluent-plugin-label-router 0.2.6 → 0.2.10

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: 8db0a645ba254d2ab4e728cae01d96f8e0b4d10d299b69321740d0a183475aa3
4
- data.tar.gz: ce2821e9db352d06d402acc1a1962711a4256e40f754fc5fb01b7a444fa69e96
3
+ metadata.gz: 2eccef2ba45a644db797ef22980134d652db67bf049467e3d404e2211dbedd9c
4
+ data.tar.gz: ab9a02cde570157b3b01228d06982a8cef69ab39c8b5f28ca7c1518ef91ccf35
5
5
  SHA512:
6
- metadata.gz: 453fdada4c6b1d6d06102203cde03030fdb97e9ae3d4a3cbddd78eb5fa45c61b650c537e2e7333f7d775527512adf92247c795d24dffe945209887d7e7539562
7
- data.tar.gz: bad2d5a50a3b6a78bde32b3820690cfce2c2c97a56649ac6a319a7610d81a9634223ac078013145b6c04a39868712a0820fdd667d6820ef87ee273a825d65a86
6
+ metadata.gz: 3d61f1b61634e0afabc6e4f9418b8eb6d69eb6a5b20833973500b9094e123877af08971576fe6d11240fa53169bd87ed0ca0d94cfc42ba987f4bb3e74789afc6
7
+ data.tar.gz: d9ed37e986627feb738a384c89242fc8aadd05d58141f91573b3791f8498b6d6ce00e67ad6dfb38e5e151decb7ed5456392936ed3c0d821f241175e656c67a0e
data/README.md CHANGED
@@ -13,7 +13,7 @@ $ gem install fluent-plugin-label-router
13
13
  ### Specific install
14
14
 
15
15
  ```
16
- $ gem install specific_install && gem specific_install -l https://github.com/banzaicloud/fluent-plugin-label-router.git
16
+ $ gem install specific_install && gem specific_install -l https://github.com/banzaicloud/fluent-plugin-label-router.git
17
17
  ```
18
18
 
19
19
  ### Bundler
@@ -114,7 +114,7 @@ Configuration to re-tag and re-label all logs from `default` namespace with labe
114
114
  ```
115
115
 
116
116
  ### 2. Exclude specific `labels` and `namespaces`
117
- Configuration to re-tag and re-label all logs that **not** from `default` namespace **and not** have labels `ap=nginx` and `env=dev`
117
+ Configuration to re-tag and re-label all logs that **not** from `default` namespace **and not** have labels `app=nginx` and `env=dev`
118
118
  ```
119
119
  <match example.tag**>
120
120
  @type label_router
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "fluent-plugin-label-router"
6
- spec.version = "0.2.6"
6
+ spec.version = "0.2.10"
7
7
  spec.authors = ["Banzai Cloud"]
8
8
  spec.email = ["info@banzaicloud.com"]
9
9
 
@@ -20,7 +20,6 @@ Gem::Specification.new do |spec|
20
20
  spec.test_files = test_files
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.14"
24
23
  spec.add_development_dependency "rake", "~> 12.0"
25
24
  spec.add_development_dependency "test-unit", "~> 3.0"
26
25
  spec.add_dependency "prometheus-client", ">= 2.1.0"
@@ -33,6 +33,8 @@ module Fluent
33
33
  config_param :sticky_tags, :bool, default: true
34
34
  desc "Default label to drain unmatched patterns"
35
35
  config_param :default_route, :string, :default => ""
36
+ desc "Metrics labels for the default_route"
37
+ config_param :default_metrics_labels, :hash, :default => {}
36
38
  desc "Default tag to drain unmatched patterns"
37
39
  config_param :default_tag, :string, :default => ""
38
40
  desc "Enable metrics for the router"
@@ -69,14 +71,17 @@ module Fluent
69
71
  @metrics_labels = (rule['metrics_labels'].map { |k, v| [k.to_sym, v] }.to_h if rule['metrics_labels'])
70
72
  @counter = nil
71
73
  unless registry.nil?
72
- @counter = registry.counter(:fluentd_router_records_total, "Total number of events router for the flow")
74
+ if registry.exist?(:fluentd_router_records_total)
75
+ @counter = registry.get(:fluentd_router_records_total)
76
+ else
77
+ @counter = registry.counter(:fluentd_router_records_total, docstring: "Total number of events routed for the flow", labels: [:flow, :id])
78
+ end
73
79
  end
74
80
  end
75
81
 
76
82
  def get_labels
77
- default = { 'flow': @label }
78
- labels = default.merge(@metrics_labels)
79
- labels
83
+ labels = { 'flow': @label, 'id': "default" }
84
+ !@metrics_labels.nil? ? labels.merge(@metrics_labels) : labels
80
85
  end
81
86
 
82
87
  # Evaluate selectors
@@ -122,6 +127,7 @@ module Fluent
122
127
  else
123
128
  @router.emit(@tag, time, record)
124
129
  end
130
+ @counter&.increment(by: 1, labels: get_labels)
125
131
  end
126
132
 
127
133
  def emit_es(tag, es)
@@ -206,7 +212,7 @@ module Fluent
206
212
  end
207
213
 
208
214
  if @default_route != '' or @default_tag != ''
209
- default_rule = { 'matches' => nil, 'tag' => @default_tag, '@label' => @default_route}
215
+ default_rule = { 'matches' => nil, 'tag' => @default_tag, '@label' => @default_route, 'metrics_labels' => @default_metrics_labels }
210
216
  @default_router = Route.new(default_rule, event_emitter_router(@default_route), @registry)
211
217
  end
212
218
 
@@ -208,4 +208,35 @@ default_tag "new_tag"
208
208
  assert_equal ["new_app_tag", event_time, {"kubernetes" => {"labels" => {"app" => "app2"} } }], events[1]
209
209
  end
210
210
  end
211
+
212
+ sub_test_case 'test_metrics' do
213
+ test 'normal' do
214
+ CONFIG4 = %[
215
+ @id xxx
216
+ metrics true
217
+ <route>
218
+ metrics_labels {"id": "test"}
219
+ tag new_app_tag
220
+ <match>
221
+ labels
222
+ namespaces
223
+ </match>
224
+ </route>
225
+ ]
226
+ event_time = event_time("2019-07-17 11:11:11 UTC")
227
+ d = create_driver(CONFIG4)
228
+ d.run(default_tag: 'test') do
229
+ d.feed(event_time, {"kubernetes" => {"labels" => {"app" => "app1"} } } )
230
+ end
231
+ d.run(default_tag: 'test2') do
232
+ d.feed(event_time, {"kubernetes" => {"labels" => {"app" => "app2"} } } )
233
+ end
234
+ events = d.events
235
+
236
+ assert_equal(2, events.size)
237
+ assert_equal ["new_app_tag", event_time, {"kubernetes" => {"labels" => {"app" => "app1"} } }], events[0]
238
+ assert_equal ["new_app_tag", event_time, {"kubernetes" => {"labels" => {"app" => "app2"} } }], events[1]
239
+ end
240
+ end
241
+
211
242
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-label-router
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Banzai Cloud
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-27 00:00:00.000000000 Z
11
+ date: 2021-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.14'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.14'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rake
29
15
  requirement: !ruby/object:Gem::Requirement