fluent-plugin-detect-exceptions-xiniaoyun 0.0.1 → 0.0.2

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: 2d1058194be8d3fb52f3d199a9348f52810b836e2bae82842c17f59a7a922c44
4
- data.tar.gz: c3b9dbef4a81ed1b601f3c3fc032cf4798c5170120cc1532280f0bbc000d765b
3
+ metadata.gz: 67783b7c9d06f991adfedd7244368bf2c28300d012357062043e65cf43ccf24d
4
+ data.tar.gz: fdd107cc14cc23711ef9582589eb895dc4cc0196e2e0c18f36dd173da391e00d
5
5
  SHA512:
6
- metadata.gz: 995bdd40207983c5576b97ab82ee94f3bba8b4900523d59ec4155c95261d24d65895a0d27af786d949f9a051b2c6798b6c0002f371fa6ee38759e54bd7f8e8b8
7
- data.tar.gz: a3129ca850b705c26bd7879deb57fc8adac3367708aa48af2ec08037d8d857caeb2b0a59bbf3bcdc9153d2c02c5548f7445fcf6be72ff4b955aa3db2b9b5b103
6
+ metadata.gz: 4fbd3b2611515e67a0a0ef1ce4baddddfdf829b107cc1af59f45ca410f07a43ebfc7ed9999bbfd1a2480e29574eebeef4ab46466a69ad3997954d5f637fc9fc1
7
+ data.tar.gz: 40e55ff0f11157bd5540b56a63e5b5c870854cc9437c0e700653c7b03e060b1ddb1f931c940c64baa19c9bd2de9213f7f1cc3ffb2672f0b7adf5bcfb9ae7a0cf
@@ -0,0 +1,87 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ fluent-plugin-detect-exceptions-xiniaoyun (0.0.2)
5
+ fluentd (>= 0.10)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ ast (2.4.0)
11
+ cool.io (1.5.3-x86-mingw32)
12
+ dig_rb (1.0.1)
13
+ ffi (1.10.0-x86-mingw32)
14
+ ffi-win32-extensions (1.0.3)
15
+ ffi
16
+ flexmock (2.3.6)
17
+ fluentd (1.3.3-x86-mingw32)
18
+ cool.io (>= 1.4.5, < 2.0.0)
19
+ dig_rb (~> 1.0.0)
20
+ http_parser.rb (>= 0.5.1, < 0.7.0)
21
+ msgpack (>= 0.7.0, < 2.0.0)
22
+ serverengine (>= 2.0.4, < 3.0.0)
23
+ sigdump (~> 0.2.2)
24
+ strptime (>= 0.2.2, < 1.0.0)
25
+ tzinfo (~> 1.0)
26
+ tzinfo-data (~> 1.0)
27
+ win32-event (~> 0.6.1)
28
+ win32-ipc (~> 0.6.1)
29
+ win32-service (~> 0.8.3)
30
+ windows-pr (~> 1.2.5)
31
+ yajl-ruby (~> 1.0)
32
+ http_parser.rb (0.6.0)
33
+ msgpack (1.2.6-x86-mingw32)
34
+ parser (2.6.0.0)
35
+ ast (~> 2.4.0)
36
+ power_assert (1.1.3)
37
+ powerpack (0.1.2)
38
+ rainbow (2.2.2)
39
+ rake
40
+ rake (10.5.0)
41
+ rubocop (0.42.0)
42
+ parser (>= 2.3.1.1, < 3.0)
43
+ powerpack (~> 0.1)
44
+ rainbow (>= 1.99.1, < 3.0)
45
+ ruby-progressbar (~> 1.7)
46
+ unicode-display_width (~> 1.0, >= 1.0.1)
47
+ ruby-progressbar (1.10.0)
48
+ serverengine (2.1.0-x86-mingw32)
49
+ sigdump (~> 0.2.2)
50
+ windows-pr (~> 1.2.5)
51
+ sigdump (0.2.4)
52
+ strptime (0.2.3)
53
+ test-unit (3.3.0)
54
+ power_assert
55
+ thread_safe (0.3.6)
56
+ tzinfo (1.2.5)
57
+ thread_safe (~> 0.1)
58
+ tzinfo-data (1.2018.9)
59
+ tzinfo (>= 1.0.0)
60
+ unicode-display_width (1.4.1)
61
+ win32-api (1.8.0-universal-mingw32)
62
+ win32-event (0.6.3)
63
+ win32-ipc (>= 0.6.0)
64
+ win32-ipc (0.6.6)
65
+ ffi
66
+ win32-service (0.8.10)
67
+ ffi
68
+ ffi-win32-extensions
69
+ windows-api (0.4.4)
70
+ win32-api (>= 1.4.5)
71
+ windows-pr (1.2.6)
72
+ win32-api (>= 1.4.5)
73
+ windows-api (>= 0.4.0)
74
+ yajl-ruby (1.4.1)
75
+
76
+ PLATFORMS
77
+ x86-mingw32
78
+
79
+ DEPENDENCIES
80
+ flexmock (~> 2.0)
81
+ fluent-plugin-detect-exceptions-xiniaoyun!
82
+ rake (~> 10.3)
83
+ rubocop (= 0.42.0)
84
+ test-unit (~> 3.0)
85
+
86
+ BUNDLED WITH
87
+ 2.0.1
@@ -95,6 +95,9 @@ The plugin supports the following parameters:
95
95
  This parameter is only applicable to structured (JSON) log streams.
96
96
  Default: ''.
97
97
 
98
+ [join_separator] String used when joining multiple lines of the stack trace.
99
+ Default: ''.
100
+
98
101
  Example configuration:
99
102
 
100
103
  <match **>
@@ -9,11 +9,11 @@ eos
9
9
  gem.summary = \
10
10
  'fluentd output plugin for combining stack traces as multi-line JSON logs'
11
11
  gem.homepage = \
12
- 'https://github.com/GoogleCloudPlatform/fluent-plugin-detect-exceptions'
12
+ 'https://github.com/sunhao-java/fluent-plugin-detect-exceptions-xiniaoyun'
13
13
  gem.license = 'Apache-2.0'
14
- gem.version = '0.0.1'
15
- gem.authors = ['Stackdriver Agents']
16
- gem.email = ['stackdriver-agents@google.com']
14
+ gem.version = '0.0.2'
15
+ gem.authors = ['SunHao']
16
+ gem.email = ['sunhao.java@gmail.com']
17
17
  gem.required_ruby_version = Gem::Requirement.new('>= 2.0')
18
18
 
19
19
  gem.files = Dir['**/*'].keep_if { |file| File.file?(file) }
@@ -237,10 +237,11 @@ module Fluent
237
237
  # The named parameters max_lines and max_bytes limit the maximum amount
238
238
  # of data to be buffered. The default value 0 indicates 'no limit'.
239
239
  def initialize(message_field, languages, max_lines: 0, max_bytes: 0,
240
- &emit_callback)
240
+ join_separator: '', &emit_callback)
241
241
  @exception_detector = Fluent::ExceptionDetector.new(*languages)
242
242
  @max_lines = max_lines
243
243
  @max_bytes = max_bytes
244
+ @join_separator = join_separator
244
245
  @message_field = message_field
245
246
  @messages = []
246
247
  @buffer_start_time = Time.now
@@ -273,10 +274,7 @@ module Fluent
273
274
  when 1
274
275
  @emit.call(@first_timestamp, @first_record)
275
276
  else
276
- combined_message = @messages.each_with_object([]) do |line, memo|
277
- memo << LINE_SEPARATOR unless memo.empty? || memo[-1].end_with?("\n")
278
- memo << line
279
- end.join
277
+ combined_message = @messages.join(@join_separator)
280
278
  if @message_field.nil?
281
279
  output_record = combined_message
282
280
  else
@@ -336,7 +334,7 @@ module Fluent
336
334
 
337
335
  def add(time_sec, record, message)
338
336
  if @messages.empty?
339
- @first_record = record
337
+ @first_record = record unless @message_field.nil?
340
338
  @first_timestamp = time_sec
341
339
  @buffer_start_time = Time.now
342
340
  end
@@ -25,7 +25,7 @@ module Fluent
25
25
  desc 'The field which contains the raw message text in the input JSON data.'
26
26
  config_param :message, :string, default: ''
27
27
  desc 'The prefix to be removed from the input tag when outputting a record.'
28
- config_param :remove_tag_prefix, :string
28
+ config_param :remove_tag_prefix, :string, default: ''
29
29
  desc 'The interval of flushing the buffer for multiline format.'
30
30
  config_param :multiline_flush_interval, :time, default: nil
31
31
  desc 'Programming languages for which to detect exceptions. Default: all.'
@@ -36,12 +36,11 @@ module Fluent
36
36
  config_param :max_bytes, :integer, default: 0
37
37
  desc 'Separate log streams by this field in the input JSON data.'
38
38
  config_param :stream, :string, default: ''
39
+ desc 'String used when joining multiple lines of the stack trace'
40
+ config_param :join_separator, :string, default: ''
39
41
 
40
42
  Fluent::Plugin.register_output('detect_exceptions', self)
41
43
 
42
- ERROR_EMPTY_REMOVE_TAG_PREFIX =
43
- 'remove_tag_prefix must not be empty.'.freeze
44
-
45
44
  def configure(conf)
46
45
  super
47
46
 
@@ -49,10 +48,6 @@ module Fluent
49
48
  @check_flush_interval = [multiline_flush_interval * 0.1, 1].max
50
49
  end
51
50
 
52
- if remove_tag_prefix.empty?
53
- raise ConfigError, ERROR_EMPTY_REMOVE_TAG_PREFIX
54
- end
55
-
56
51
  @languages = languages.map(&:to_sym)
57
52
 
58
53
  # Maps log stream tags to a corresponding TraceAccumulator.
@@ -100,7 +95,8 @@ module Fluent
100
95
  @accumulators[log_id] =
101
96
  Fluent::TraceAccumulator.new(@message, @languages,
102
97
  max_lines: @max_lines,
103
- max_bytes: @max_bytes) do |t, r|
98
+ max_bytes: @max_bytes,
99
+ join_separator: @join_separator) do |t, r|
104
100
  router.emit(out_tag, t, r)
105
101
  end
106
102
  end
@@ -765,4 +765,17 @@ END
765
765
  # Check that the trace is flushed after the first part.
766
766
  assert_equal([JAVA_EXC_PART1] + JAVA_EXC_PART2.lines, out)
767
767
  end
768
+
769
+ def test_join_separator
770
+ # Custom join separator is used to join accumulated output
771
+ join_separator = ';'
772
+ out = []
773
+ buffer = Fluent::TraceAccumulator.new(nil,
774
+ [:all],
775
+ join_separator: join_separator) do |_, m|
776
+ out << m
777
+ end
778
+ feed_lines(buffer, JAVA_EXC)
779
+ assert_equal(JAVA_EXC.lines.length - 1, out[0].count(join_separator))
780
+ end
768
781
  end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-detect-exceptions-xiniaoyun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
- - Stackdriver Agents
7
+ - SunHao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
@@ -86,24 +86,25 @@ description: |2
86
86
  same stack trace into one multi-line message.
87
87
  This is an official Google Ruby gem.
88
88
  email:
89
- - stackdriver-agents@google.com
89
+ - sunhao.java@gmail.com
90
90
  executables: []
91
91
  extensions: []
92
92
  extra_rdoc_files: []
93
93
  files:
94
94
  - CONTRIBUTING
95
95
  - Gemfile
96
+ - Gemfile.lock
96
97
  - LICENSE
97
98
  - README.rdoc
98
99
  - Rakefile
99
- - fluent-plugin-detect-exceptions.gemspec
100
+ - fluent-plugin-detect-exceptions-xiniaoyun.gemspec
100
101
  - lib/fluent/plugin/exception_detector.rb
101
102
  - lib/fluent/plugin/out_detect_exceptions.rb
102
103
  - test/helper.rb
103
104
  - test/plugin/bench_exception_detector.rb
104
105
  - test/plugin/test_exception_detector.rb
105
106
  - test/plugin/test_out_detect_exceptions.rb
106
- homepage: https://github.com/GoogleCloudPlatform/fluent-plugin-detect-exceptions
107
+ homepage: https://github.com/sunhao-java/fluent-plugin-detect-exceptions-xiniaoyun
107
108
  licenses:
108
109
  - Apache-2.0
109
110
  metadata: {}
@@ -122,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
123
  - !ruby/object:Gem::Version
123
124
  version: '0'
124
125
  requirements: []
125
- rubygems_version: 3.0.1
126
+ rubygems_version: 3.0.2
126
127
  signing_key:
127
128
  specification_version: 4
128
129
  summary: fluentd output plugin for combining stack traces as multi-line JSON logs