fluentd 1.13.1-x64-mingw32 → 1.14.1-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of fluentd might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.yaml +69 -0
- data/.github/ISSUE_TEMPLATE/feature_request.yaml +38 -0
- data/.github/workflows/windows-test.yaml +3 -3
- data/CHANGELOG.md +136 -0
- data/README.md +2 -2
- data/example/v0_12_filter.conf +2 -2
- data/fluentd.gemspec +1 -1
- data/lib/fluent/command/fluentd.rb +8 -0
- data/lib/fluent/command/plugin_generator.rb +15 -5
- data/lib/fluent/compat/output.rb +9 -6
- data/lib/fluent/config/parser.rb +1 -1
- data/lib/fluent/config/types.rb +15 -0
- data/lib/fluent/config/v1_parser.rb +4 -3
- data/lib/fluent/config.rb +1 -1
- data/lib/fluent/env.rb +2 -1
- data/lib/fluent/event_router.rb +28 -1
- data/lib/fluent/oj_options.rb +62 -0
- data/lib/fluent/plugin/bare_output.rb +49 -8
- data/lib/fluent/plugin/buffer.rb +84 -22
- data/lib/fluent/plugin/file_wrapper.rb +22 -0
- data/lib/fluent/plugin/filter.rb +35 -1
- data/lib/fluent/plugin/formatter.rb +1 -0
- data/lib/fluent/plugin/formatter_json.rb +9 -7
- data/lib/fluent/plugin/in_http.rb +21 -2
- data/lib/fluent/plugin/in_monitor_agent.rb +4 -2
- data/lib/fluent/plugin/in_syslog.rb +13 -1
- data/lib/fluent/plugin/in_tail/position_file.rb +20 -18
- data/lib/fluent/plugin/in_tail.rb +77 -6
- data/lib/fluent/plugin/input.rb +39 -1
- data/lib/fluent/plugin/metrics.rb +119 -0
- data/lib/fluent/plugin/metrics_local.rb +96 -0
- data/lib/fluent/plugin/multi_output.rb +43 -6
- data/lib/fluent/plugin/out_copy.rb +1 -1
- data/lib/fluent/plugin/out_forward.rb +15 -7
- data/lib/fluent/plugin/output.rb +77 -36
- data/lib/fluent/plugin/parser_json.rb +2 -3
- data/lib/fluent/plugin.rb +10 -1
- data/lib/fluent/plugin_helper/event_emitter.rb +8 -1
- data/lib/fluent/plugin_helper/metrics.rb +129 -0
- data/lib/fluent/plugin_helper/server.rb +4 -2
- data/lib/fluent/plugin_helper.rb +1 -0
- data/lib/fluent/root_agent.rb +6 -0
- data/lib/fluent/supervisor.rb +2 -0
- data/lib/fluent/system_config.rb +9 -1
- data/lib/fluent/test/driver/storage.rb +30 -0
- data/lib/fluent/version.rb +1 -1
- data/templates/new_gem/lib/fluent/plugin/storage.rb.erb +40 -0
- data/templates/new_gem/test/plugin/test_storage.rb.erb +18 -0
- data/test/command/test_plugin_generator.rb +2 -1
- data/test/config/test_system_config.rb +6 -0
- data/test/config/test_types.rb +7 -0
- data/test/plugin/in_tail/test_io_handler.rb +12 -4
- data/test/plugin/in_tail/test_position_file.rb +48 -8
- data/test/plugin/test_bare_output.rb +13 -0
- data/test/plugin/test_buffer.rb +8 -2
- data/test/plugin/test_file_wrapper.rb +11 -0
- data/test/plugin/test_filter.rb +11 -0
- data/test/plugin/test_in_http.rb +40 -0
- data/test/plugin/test_in_monitor_agent.rb +214 -8
- data/test/plugin/test_in_syslog.rb +35 -0
- data/test/plugin/test_in_tail.rb +157 -29
- data/test/plugin/test_input.rb +11 -0
- data/test/plugin/test_metrics.rb +294 -0
- data/test/plugin/test_metrics_local.rb +96 -0
- data/test/plugin/test_multi_output.rb +25 -1
- data/test/plugin/test_output.rb +16 -0
- data/test/plugin_helper/test_event_emitter.rb +29 -0
- data/test/plugin_helper/test_metrics.rb +137 -0
- data/test/test_event_time.rb +2 -2
- data/test/test_oj_options.rb +55 -0
- data/test/test_plugin_classes.rb +102 -0
- data/test/test_root_agent.rb +30 -1
- metadata +21 -6
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
data/test/test_plugin_classes.rb
CHANGED
@@ -5,11 +5,78 @@ require 'fluent/plugin/bare_output'
|
|
5
5
|
require 'fluent/plugin/filter'
|
6
6
|
|
7
7
|
module FluentTest
|
8
|
+
class FluentTestCounterMetrics < Fluent::Plugin::Metrics
|
9
|
+
Fluent::Plugin.register_metrics('test_counter', self)
|
10
|
+
|
11
|
+
attr_reader :data
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
super
|
15
|
+
@data = 0
|
16
|
+
end
|
17
|
+
def get
|
18
|
+
@data
|
19
|
+
end
|
20
|
+
def inc
|
21
|
+
@data +=1
|
22
|
+
end
|
23
|
+
def add(value)
|
24
|
+
@data += value
|
25
|
+
end
|
26
|
+
def set(value)
|
27
|
+
@data = value
|
28
|
+
end
|
29
|
+
def close
|
30
|
+
@data = 0
|
31
|
+
super
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class FluentTestGaugeMetrics < Fluent::Plugin::Metrics
|
36
|
+
Fluent::Plugin.register_metrics('test_gauge', self)
|
37
|
+
|
38
|
+
attr_reader :data
|
39
|
+
|
40
|
+
def initialize
|
41
|
+
super
|
42
|
+
@data = 0
|
43
|
+
end
|
44
|
+
def get
|
45
|
+
@data
|
46
|
+
end
|
47
|
+
def inc
|
48
|
+
@data += 1
|
49
|
+
end
|
50
|
+
def dec
|
51
|
+
@data -=1
|
52
|
+
end
|
53
|
+
def add(value)
|
54
|
+
@data += value
|
55
|
+
end
|
56
|
+
def sub(value)
|
57
|
+
@data -= value
|
58
|
+
end
|
59
|
+
def set(value)
|
60
|
+
@data = value
|
61
|
+
end
|
62
|
+
def close
|
63
|
+
@data = 0
|
64
|
+
super
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
8
68
|
class FluentTestInput < ::Fluent::Plugin::Input
|
9
69
|
::Fluent::Plugin.register_input('test_in', self)
|
10
70
|
|
11
71
|
attr_reader :started
|
12
72
|
|
73
|
+
def initialize
|
74
|
+
super
|
75
|
+
# stub metrics instances
|
76
|
+
@emit_records_metrics = FluentTest::FluentTestCounterMetrics.new
|
77
|
+
@emit_size_metrics = FluentTest::FluentTestCounterMetrics.new
|
78
|
+
end
|
79
|
+
|
13
80
|
def start
|
14
81
|
super
|
15
82
|
@started = true
|
@@ -28,6 +95,13 @@ module FluentTest
|
|
28
95
|
|
29
96
|
config_param :num, :integer, default: 10000
|
30
97
|
|
98
|
+
def initialize
|
99
|
+
super
|
100
|
+
# stub metrics instances
|
101
|
+
@emit_records_metrics = FluentTest::FluentTestCounterMetrics.new
|
102
|
+
@emit_size_metrics = FluentTest::FluentTestCounterMetrics.new
|
103
|
+
end
|
104
|
+
|
31
105
|
def start
|
32
106
|
super
|
33
107
|
@started = true
|
@@ -49,6 +123,15 @@ module FluentTest
|
|
49
123
|
def initialize
|
50
124
|
super
|
51
125
|
@events = Hash.new { |h, k| h[k] = [] }
|
126
|
+
# stub metrics instances
|
127
|
+
@num_errors_metrics = FluentTest::FluentTestCounterMetrics.new
|
128
|
+
@emit_count_metrics = FluentTest::FluentTestCounterMetrics.new
|
129
|
+
@emit_records_metrics = FluentTest::FluentTestCounterMetrics.new
|
130
|
+
@emit_size_metrics = FluentTest::FluentTestCounterMetrics.new
|
131
|
+
@write_count_metrics = FluentTest::FluentTestCounterMetrics.new
|
132
|
+
@rollback_count_metrics = FluentTest::FluentTestCounterMetrics.new
|
133
|
+
@flush_time_count_metrics = FluentTest::FluentTestCounterMetrics.new
|
134
|
+
@slow_flush_count_metrics = FluentTest::FluentTestCounterMetrics.new
|
52
135
|
end
|
53
136
|
|
54
137
|
attr_reader :events
|
@@ -168,6 +251,19 @@ module FluentTest
|
|
168
251
|
class FluentTestErrorOutput < ::Fluent::Plugin::Output
|
169
252
|
::Fluent::Plugin.register_output('test_out_error', self)
|
170
253
|
|
254
|
+
def initialize
|
255
|
+
super
|
256
|
+
# stub metrics instances
|
257
|
+
@num_errors_metrics = FluentTest::FluentTestCounterMetrics.new
|
258
|
+
@emit_count_metrics = FluentTest::FluentTestCounterMetrics.new
|
259
|
+
@emit_records_metrics = FluentTest::FluentTestCounterMetrics.new
|
260
|
+
@emit_size_metrics = FluentTest::FluentTestCounterMetrics.new
|
261
|
+
@write_count_metrics = FluentTest::FluentTestCounterMetrics.new
|
262
|
+
@rollback_count_metrics = FluentTest::FluentTestCounterMetrics.new
|
263
|
+
@flush_time_count_metrics = FluentTest::FluentTestCounterMetrics.new
|
264
|
+
@slow_flush_count_metrics = FluentTest::FluentTestCounterMetrics.new
|
265
|
+
end
|
266
|
+
|
171
267
|
def format(tag, time, record)
|
172
268
|
raise "emit error!"
|
173
269
|
end
|
@@ -184,6 +280,9 @@ module FluentTest
|
|
184
280
|
super()
|
185
281
|
@num = 0
|
186
282
|
@field = field
|
283
|
+
# stub metrics instances
|
284
|
+
@emit_records_metrics = FluentTest::FluentTestCounterMetrics.new
|
285
|
+
@emit_size_metrics = FluentTest::FluentTestCounterMetrics.new
|
187
286
|
end
|
188
287
|
|
189
288
|
attr_reader :num
|
@@ -213,6 +312,9 @@ module FluentTest
|
|
213
312
|
super()
|
214
313
|
@num = 0
|
215
314
|
@field = field
|
315
|
+
# stub metrics instances
|
316
|
+
@emit_records_metrics = FluentTest::FluentTestCounterMetrics.new
|
317
|
+
@emit_size_metrics = FluentTest::FluentTestCounterMetrics.new
|
216
318
|
end
|
217
319
|
|
218
320
|
attr_reader :num
|
data/test/test_root_agent.rb
CHANGED
@@ -16,7 +16,8 @@ class RootAgentTest < ::Test::Unit::TestCase
|
|
16
16
|
|
17
17
|
data(
|
18
18
|
'suppress interval' => [{'emit_error_log_interval' => 30}, {:@suppress_emit_error_log_interval => 30}],
|
19
|
-
'without source' => [{'without_source' => true}, {:@without_source => true}]
|
19
|
+
'without source' => [{'without_source' => true}, {:@without_source => true}],
|
20
|
+
'enable input metrics' => [{'enable_input_metrics' => true}, {:@enable_input_metrics => true}],
|
20
21
|
)
|
21
22
|
def test_initialize_with_opt(data)
|
22
23
|
opt, expected = data
|
@@ -109,6 +110,34 @@ EOC
|
|
109
110
|
end
|
110
111
|
end
|
111
112
|
|
113
|
+
test 'raises configuration error for label without name' do
|
114
|
+
conf = <<-EOC
|
115
|
+
<label>
|
116
|
+
@type test_out
|
117
|
+
</label>
|
118
|
+
EOC
|
119
|
+
errmsg = "Missing symbol argument on <label> directive"
|
120
|
+
assert_raise Fluent::ConfigError.new(errmsg) do
|
121
|
+
configure_ra(conf)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
test 'raises configuration error for <label @ROOT>' do
|
126
|
+
conf = <<-EOC
|
127
|
+
<source>
|
128
|
+
@type test_in
|
129
|
+
@label @ROOT
|
130
|
+
</source>
|
131
|
+
<label @ROOT>
|
132
|
+
@type test_out
|
133
|
+
</label>
|
134
|
+
EOC
|
135
|
+
errmsg = "@ROOT for <label> is not permitted, reserved for getting root router"
|
136
|
+
assert_raise Fluent::ConfigError.new(errmsg) do
|
137
|
+
configure_ra(conf)
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
112
141
|
test 'raises configuration error if there are not match sections in label section' do
|
113
142
|
conf = <<-EOC
|
114
143
|
<source>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluentd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.1
|
5
5
|
platform: x64-mingw32
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -107,7 +107,7 @@ dependencies:
|
|
107
107
|
version: 0.5.1
|
108
108
|
- - "<"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
110
|
+
version: 0.8.0
|
111
111
|
type: :runtime
|
112
112
|
prerelease: false
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -117,7 +117,7 @@ dependencies:
|
|
117
117
|
version: 0.5.1
|
118
118
|
- - "<"
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version: 0.
|
120
|
+
version: 0.8.0
|
121
121
|
- !ruby/object:Gem::Dependency
|
122
122
|
name: sigdump
|
123
123
|
requirement: !ruby/object:Gem::Requirement
|
@@ -463,9 +463,9 @@ files:
|
|
463
463
|
- ".deepsource.toml"
|
464
464
|
- ".drone.yml"
|
465
465
|
- ".github/ISSUE_TEMPLATE.md"
|
466
|
-
- ".github/ISSUE_TEMPLATE/bug_report.
|
466
|
+
- ".github/ISSUE_TEMPLATE/bug_report.yaml"
|
467
467
|
- ".github/ISSUE_TEMPLATE/config.yml"
|
468
|
-
- ".github/ISSUE_TEMPLATE/feature_request.
|
468
|
+
- ".github/ISSUE_TEMPLATE/feature_request.yaml"
|
469
469
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
470
470
|
- ".github/workflows/issue-auto-closer.yml"
|
471
471
|
- ".github/workflows/linux-test.yaml"
|
@@ -609,6 +609,7 @@ files:
|
|
609
609
|
- lib/fluent/match.rb
|
610
610
|
- lib/fluent/mixin.rb
|
611
611
|
- lib/fluent/msgpack_factory.rb
|
612
|
+
- lib/fluent/oj_options.rb
|
612
613
|
- lib/fluent/output.rb
|
613
614
|
- lib/fluent/output_chain.rb
|
614
615
|
- lib/fluent/parser.rb
|
@@ -658,6 +659,8 @@ files:
|
|
658
659
|
- lib/fluent/plugin/in_udp.rb
|
659
660
|
- lib/fluent/plugin/in_unix.rb
|
660
661
|
- lib/fluent/plugin/input.rb
|
662
|
+
- lib/fluent/plugin/metrics.rb
|
663
|
+
- lib/fluent/plugin/metrics_local.rb
|
661
664
|
- lib/fluent/plugin/multi_output.rb
|
662
665
|
- lib/fluent/plugin/out_copy.rb
|
663
666
|
- lib/fluent/plugin/out_exec.rb
|
@@ -722,6 +725,7 @@ files:
|
|
722
725
|
- lib/fluent/plugin_helper/http_server/server.rb
|
723
726
|
- lib/fluent/plugin_helper/http_server/ssl_context_builder.rb
|
724
727
|
- lib/fluent/plugin_helper/inject.rb
|
728
|
+
- lib/fluent/plugin_helper/metrics.rb
|
725
729
|
- lib/fluent/plugin_helper/parser.rb
|
726
730
|
- lib/fluent/plugin_helper/record_accessor.rb
|
727
731
|
- lib/fluent/plugin_helper/retry_state.rb
|
@@ -754,6 +758,7 @@ files:
|
|
754
758
|
- lib/fluent/test/driver/multi_output.rb
|
755
759
|
- lib/fluent/test/driver/output.rb
|
756
760
|
- lib/fluent/test/driver/parser.rb
|
761
|
+
- lib/fluent/test/driver/storage.rb
|
757
762
|
- lib/fluent/test/driver/test_event_router.rb
|
758
763
|
- lib/fluent/test/filter_test.rb
|
759
764
|
- lib/fluent/test/formatter_test.rb
|
@@ -779,12 +784,14 @@ files:
|
|
779
784
|
- templates/new_gem/lib/fluent/plugin/input.rb.erb
|
780
785
|
- templates/new_gem/lib/fluent/plugin/output.rb.erb
|
781
786
|
- templates/new_gem/lib/fluent/plugin/parser.rb.erb
|
787
|
+
- templates/new_gem/lib/fluent/plugin/storage.rb.erb
|
782
788
|
- templates/new_gem/test/helper.rb.erb
|
783
789
|
- templates/new_gem/test/plugin/test_filter.rb.erb
|
784
790
|
- templates/new_gem/test/plugin/test_formatter.rb.erb
|
785
791
|
- templates/new_gem/test/plugin/test_input.rb.erb
|
786
792
|
- templates/new_gem/test/plugin/test_output.rb.erb
|
787
793
|
- templates/new_gem/test/plugin/test_parser.rb.erb
|
794
|
+
- templates/new_gem/test/plugin/test_storage.rb.erb
|
788
795
|
- templates/plugin_config_formatter/param.md-compact.erb
|
789
796
|
- templates/plugin_config_formatter/param.md-table.erb
|
790
797
|
- templates/plugin_config_formatter/param.md.erb
|
@@ -880,6 +887,8 @@ files:
|
|
880
887
|
- test/plugin/test_in_unix.rb
|
881
888
|
- test/plugin/test_input.rb
|
882
889
|
- test/plugin/test_metadata.rb
|
890
|
+
- test/plugin/test_metrics.rb
|
891
|
+
- test/plugin/test_metrics_local.rb
|
883
892
|
- test/plugin/test_multi_output.rb
|
884
893
|
- test/plugin/test_out_copy.rb
|
885
894
|
- test/plugin/test_out_exec.rb
|
@@ -955,6 +964,7 @@ files:
|
|
955
964
|
- test/plugin_helper/test_formatter.rb
|
956
965
|
- test/plugin_helper/test_http_server_helper.rb
|
957
966
|
- test/plugin_helper/test_inject.rb
|
967
|
+
- test/plugin_helper/test_metrics.rb
|
958
968
|
- test/plugin_helper/test_parser.rb
|
959
969
|
- test/plugin_helper/test_record_accessor.rb
|
960
970
|
- test/plugin_helper/test_retry_state.rb
|
@@ -989,6 +999,7 @@ files:
|
|
989
999
|
- test/test_match.rb
|
990
1000
|
- test/test_mixin.rb
|
991
1001
|
- test/test_msgpack_factory.rb
|
1002
|
+
- test/test_oj_options.rb
|
992
1003
|
- test/test_output.rb
|
993
1004
|
- test/test_plugin.rb
|
994
1005
|
- test/test_plugin_classes.rb
|
@@ -1119,6 +1130,8 @@ test_files:
|
|
1119
1130
|
- test/plugin/test_in_unix.rb
|
1120
1131
|
- test/plugin/test_input.rb
|
1121
1132
|
- test/plugin/test_metadata.rb
|
1133
|
+
- test/plugin/test_metrics.rb
|
1134
|
+
- test/plugin/test_metrics_local.rb
|
1122
1135
|
- test/plugin/test_multi_output.rb
|
1123
1136
|
- test/plugin/test_out_copy.rb
|
1124
1137
|
- test/plugin/test_out_exec.rb
|
@@ -1194,6 +1207,7 @@ test_files:
|
|
1194
1207
|
- test/plugin_helper/test_formatter.rb
|
1195
1208
|
- test/plugin_helper/test_http_server_helper.rb
|
1196
1209
|
- test/plugin_helper/test_inject.rb
|
1210
|
+
- test/plugin_helper/test_metrics.rb
|
1197
1211
|
- test/plugin_helper/test_parser.rb
|
1198
1212
|
- test/plugin_helper/test_record_accessor.rb
|
1199
1213
|
- test/plugin_helper/test_retry_state.rb
|
@@ -1228,6 +1242,7 @@ test_files:
|
|
1228
1242
|
- test/test_match.rb
|
1229
1243
|
- test/test_mixin.rb
|
1230
1244
|
- test/test_msgpack_factory.rb
|
1245
|
+
- test/test_oj_options.rb
|
1231
1246
|
- test/test_output.rb
|
1232
1247
|
- test/test_plugin.rb
|
1233
1248
|
- test/test_plugin_classes.rb
|
@@ -1,40 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: Bug Report
|
3
|
-
about: Create a report with a procedure for reproducing the bug
|
4
|
-
|
5
|
-
---
|
6
|
-
|
7
|
-
Check [CONTRIBUTING guideline](https://github.com/fluent/fluentd/blob/master/CONTRIBUTING.md) first and here is the list to help us investigate the problem.
|
8
|
-
|
9
|
-
**Describe the bug**
|
10
|
-
<!-- A clear and concise description of what the bug is. -->
|
11
|
-
|
12
|
-
**To Reproduce**
|
13
|
-
<!-- Steps to reproduce the behavior: -->
|
14
|
-
|
15
|
-
**Expected behavior**
|
16
|
-
<!-- A clear and concise description of what you expected to happen. -->
|
17
|
-
|
18
|
-
**Your Environment**
|
19
|
-
|
20
|
-
- Fluentd or td-agent version: `fluentd --version` or `td-agent --version`
|
21
|
-
- Operating system: `cat /etc/os-release`
|
22
|
-
- Kernel version: `uname -r`
|
23
|
-
|
24
|
-
If you hit the problem with older fluentd version, try latest version first.
|
25
|
-
|
26
|
-
**Your Configuration**
|
27
|
-
|
28
|
-
```
|
29
|
-
<!-- Write your configuration here -->
|
30
|
-
```
|
31
|
-
|
32
|
-
**Your Error Log**
|
33
|
-
|
34
|
-
```
|
35
|
-
<!-- Write your **ALL** error log here -->
|
36
|
-
```
|
37
|
-
|
38
|
-
**Additional context**
|
39
|
-
|
40
|
-
<!-- Add any other context about the problem here. -->
|
@@ -1,23 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: Feature request
|
3
|
-
about: Suggest an idea for this project
|
4
|
-
|
5
|
-
---
|
6
|
-
|
7
|
-
Check [CONTRIBUTING guideline](https://github.com/fluent/fluentd/blob/master/CONTRIBUTING.md) first and here is the list to help us investigate the problem.
|
8
|
-
|
9
|
-
**Is your feature request related to a problem? Please describe.**
|
10
|
-
|
11
|
-
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
|
12
|
-
|
13
|
-
**Describe the solution you'd like**
|
14
|
-
|
15
|
-
<!-- A clear and concise description of what you want to happen. -->
|
16
|
-
|
17
|
-
**Describe alternatives you've considered**
|
18
|
-
|
19
|
-
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
|
20
|
-
|
21
|
-
**Additional context**
|
22
|
-
|
23
|
-
<!-- Add any other context or screenshots about the feature request here. -->
|