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.

Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.yaml +69 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.yaml +38 -0
  4. data/.github/workflows/windows-test.yaml +3 -3
  5. data/CHANGELOG.md +136 -0
  6. data/README.md +2 -2
  7. data/example/v0_12_filter.conf +2 -2
  8. data/fluentd.gemspec +1 -1
  9. data/lib/fluent/command/fluentd.rb +8 -0
  10. data/lib/fluent/command/plugin_generator.rb +15 -5
  11. data/lib/fluent/compat/output.rb +9 -6
  12. data/lib/fluent/config/parser.rb +1 -1
  13. data/lib/fluent/config/types.rb +15 -0
  14. data/lib/fluent/config/v1_parser.rb +4 -3
  15. data/lib/fluent/config.rb +1 -1
  16. data/lib/fluent/env.rb +2 -1
  17. data/lib/fluent/event_router.rb +28 -1
  18. data/lib/fluent/oj_options.rb +62 -0
  19. data/lib/fluent/plugin/bare_output.rb +49 -8
  20. data/lib/fluent/plugin/buffer.rb +84 -22
  21. data/lib/fluent/plugin/file_wrapper.rb +22 -0
  22. data/lib/fluent/plugin/filter.rb +35 -1
  23. data/lib/fluent/plugin/formatter.rb +1 -0
  24. data/lib/fluent/plugin/formatter_json.rb +9 -7
  25. data/lib/fluent/plugin/in_http.rb +21 -2
  26. data/lib/fluent/plugin/in_monitor_agent.rb +4 -2
  27. data/lib/fluent/plugin/in_syslog.rb +13 -1
  28. data/lib/fluent/plugin/in_tail/position_file.rb +20 -18
  29. data/lib/fluent/plugin/in_tail.rb +77 -6
  30. data/lib/fluent/plugin/input.rb +39 -1
  31. data/lib/fluent/plugin/metrics.rb +119 -0
  32. data/lib/fluent/plugin/metrics_local.rb +96 -0
  33. data/lib/fluent/plugin/multi_output.rb +43 -6
  34. data/lib/fluent/plugin/out_copy.rb +1 -1
  35. data/lib/fluent/plugin/out_forward.rb +15 -7
  36. data/lib/fluent/plugin/output.rb +77 -36
  37. data/lib/fluent/plugin/parser_json.rb +2 -3
  38. data/lib/fluent/plugin.rb +10 -1
  39. data/lib/fluent/plugin_helper/event_emitter.rb +8 -1
  40. data/lib/fluent/plugin_helper/metrics.rb +129 -0
  41. data/lib/fluent/plugin_helper/server.rb +4 -2
  42. data/lib/fluent/plugin_helper.rb +1 -0
  43. data/lib/fluent/root_agent.rb +6 -0
  44. data/lib/fluent/supervisor.rb +2 -0
  45. data/lib/fluent/system_config.rb +9 -1
  46. data/lib/fluent/test/driver/storage.rb +30 -0
  47. data/lib/fluent/version.rb +1 -1
  48. data/templates/new_gem/lib/fluent/plugin/storage.rb.erb +40 -0
  49. data/templates/new_gem/test/plugin/test_storage.rb.erb +18 -0
  50. data/test/command/test_plugin_generator.rb +2 -1
  51. data/test/config/test_system_config.rb +6 -0
  52. data/test/config/test_types.rb +7 -0
  53. data/test/plugin/in_tail/test_io_handler.rb +12 -4
  54. data/test/plugin/in_tail/test_position_file.rb +48 -8
  55. data/test/plugin/test_bare_output.rb +13 -0
  56. data/test/plugin/test_buffer.rb +8 -2
  57. data/test/plugin/test_file_wrapper.rb +11 -0
  58. data/test/plugin/test_filter.rb +11 -0
  59. data/test/plugin/test_in_http.rb +40 -0
  60. data/test/plugin/test_in_monitor_agent.rb +214 -8
  61. data/test/plugin/test_in_syslog.rb +35 -0
  62. data/test/plugin/test_in_tail.rb +157 -29
  63. data/test/plugin/test_input.rb +11 -0
  64. data/test/plugin/test_metrics.rb +294 -0
  65. data/test/plugin/test_metrics_local.rb +96 -0
  66. data/test/plugin/test_multi_output.rb +25 -1
  67. data/test/plugin/test_output.rb +16 -0
  68. data/test/plugin_helper/test_event_emitter.rb +29 -0
  69. data/test/plugin_helper/test_metrics.rb +137 -0
  70. data/test/test_event_time.rb +2 -2
  71. data/test/test_oj_options.rb +55 -0
  72. data/test/test_plugin_classes.rb +102 -0
  73. data/test/test_root_agent.rb +30 -1
  74. metadata +21 -6
  75. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
  76. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
@@ -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
@@ -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.13.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-06-25 00:00:00.000000000 Z
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.7.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.7.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.md"
466
+ - ".github/ISSUE_TEMPLATE/bug_report.yaml"
467
467
  - ".github/ISSUE_TEMPLATE/config.yml"
468
- - ".github/ISSUE_TEMPLATE/feature_request.md"
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. -->