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 +4 -4
- data/README.md +2 -2
- data/fluent-plugin-label-router.gemspec +1 -2
- data/lib/fluent/plugin/out_label_router.rb +11 -5
- data/test/plugin/test_out_label_router.rb +31 -0
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2eccef2ba45a644db797ef22980134d652db67bf049467e3d404e2211dbedd9c
|
4
|
+
data.tar.gz: ab9a02cde570157b3b01228d06982a8cef69ab39c8b5f28ca7c1518ef91ccf35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 &&
|
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 `
|
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
|
+
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
|
-
|
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
|
-
|
78
|
-
|
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.
|
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-
|
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
|