fluent-plugin-detect-exceptions 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa7202b2c054075601c3414037681c8896496af83168d427aa0056cab955e15d
4
- data.tar.gz: 7db36d1a418a7e2f51cbd5d9275618e8de8b8dd8fc1415d92849c158dbfeb1a1
3
+ metadata.gz: 2c58018cba8b1e1901dd3ee3535abab41cb1e6df827ed31b846af250ce8576b7
4
+ data.tar.gz: d9624b643b2beae71d8c8e4807241aed9c1ed811cef569fd4a07ef7e095d7f0b
5
5
  SHA512:
6
- metadata.gz: 05ca7ec1c8574e527c050be4ef45613b9395c53589b3baadc563b5f16f393f9a3c54d9cfab50345c40eceb6517f4cc445c44c221fce83e11288664c2725fb29a
7
- data.tar.gz: 0a24a67fd5f0a37ad35c1ee5d98814322498a2056f8cd766f4a2eea8090e09132b6a8d76468b398a2df9ca3b9f515f6d7d8f7cf30c217cf737b119807d498717
6
+ metadata.gz: 8d5a9de978855c5ac41e5639f9dab7705606c772ea35694299b1c917bdbc327ddf9937fcd64f4ee4c6e283c8dcc1b2de13b5dbc23f5c33ed96fe450dec0223f5
7
+ data.tar.gz: 5e04f33f4b0ec87ddfce9a9e0e1a09d8389e15c7896737ce8db11d41788aa0b0408e978047125908d7ff2917ad440f0c2144d0e974fa6d89c38d1878ca0f8279
@@ -0,0 +1,66 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ fluent-plugin-detect-exceptions (0.0.12)
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)
12
+ dig_rb (1.0.1)
13
+ flexmock (2.3.6)
14
+ fluentd (1.2.6)
15
+ cool.io (>= 1.4.5, < 2.0.0)
16
+ dig_rb (~> 1.0.0)
17
+ http_parser.rb (>= 0.5.1, < 0.7.0)
18
+ msgpack (>= 0.7.0, < 2.0.0)
19
+ serverengine (>= 2.0.4, < 3.0.0)
20
+ sigdump (~> 0.2.2)
21
+ strptime (>= 0.2.2, < 1.0.0)
22
+ tzinfo (~> 1.0)
23
+ tzinfo-data (~> 1.0)
24
+ yajl-ruby (~> 1.0)
25
+ http_parser.rb (0.6.0)
26
+ msgpack (1.2.6)
27
+ parser (2.6.0.0)
28
+ ast (~> 2.4.0)
29
+ power_assert (1.1.3)
30
+ powerpack (0.1.2)
31
+ rainbow (2.2.2)
32
+ rake
33
+ rake (10.5.0)
34
+ rubocop (0.42.0)
35
+ parser (>= 2.3.1.1, < 3.0)
36
+ powerpack (~> 0.1)
37
+ rainbow (>= 1.99.1, < 3.0)
38
+ ruby-progressbar (~> 1.7)
39
+ unicode-display_width (~> 1.0, >= 1.0.1)
40
+ ruby-progressbar (1.10.0)
41
+ serverengine (2.1.0)
42
+ sigdump (~> 0.2.2)
43
+ sigdump (0.2.4)
44
+ strptime (0.2.3)
45
+ test-unit (3.2.8)
46
+ power_assert
47
+ thread_safe (0.3.6)
48
+ tzinfo (1.2.5)
49
+ thread_safe (~> 0.1)
50
+ tzinfo-data (1.2018.9)
51
+ tzinfo (>= 1.0.0)
52
+ unicode-display_width (1.4.1)
53
+ yajl-ruby (1.4.1)
54
+
55
+ PLATFORMS
56
+ ruby
57
+
58
+ DEPENDENCIES
59
+ flexmock (~> 2.0)
60
+ fluent-plugin-detect-exceptions!
61
+ rake (~> 10.3)
62
+ rubocop (= 0.42.0)
63
+ test-unit (~> 3.0)
64
+
65
+ BUNDLED WITH
66
+ 1.17.3
@@ -98,12 +98,22 @@ The plugin supports the following parameters:
98
98
  Example configuration:
99
99
 
100
100
  <match **>
101
+ @type detect_exceptions
101
102
  remove_tag_prefix foo
102
103
  message log
103
104
  languages java, python
104
105
  multiline_flush_interval 0.1
105
106
  </match>
106
107
 
108
+ == Extending language support
109
+
110
+ Supporting a new language requires new detection rules in this gem and
111
+ additional changes in the
112
+ {Stackdriver Error Reporting}[https://cloud.google.com/error-reporting/]
113
+ service. Please contact our product team by
114
+ {filing a support case}[https://cloud.google.com/support-hub/#google-cloud-platform]
115
+ if you'd like to see support for a new language.
116
+
107
117
  == Copyright
108
118
 
109
119
  Copyright:: Copyright 2016 Google Inc. All rights reserved.
@@ -11,7 +11,7 @@ eos
11
11
  gem.homepage = \
12
12
  'https://github.com/GoogleCloudPlatform/fluent-plugin-detect-exceptions'
13
13
  gem.license = 'Apache-2.0'
14
- gem.version = '0.0.11'
14
+ gem.version = '0.0.12'
15
15
  gem.authors = ['Stackdriver Agents']
16
16
  gem.email = ['stackdriver-agents@google.com']
17
17
  gem.required_ruby_version = Gem::Requirement.new('>= 2.0')
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module Fluent
16
- Struct.new('Rule', :from_state, :pattern, :to_state)
16
+ Struct.new('Rule', :from_states, :pattern, :to_state)
17
17
 
18
18
  # Configuration of the state machine that detects exceptions.
19
19
  module ExceptionDetectorConfig
@@ -41,8 +41,10 @@ module Fluent
41
41
  end
42
42
  end
43
43
 
44
- def self.rule(from_state, pattern, to_state)
45
- Struct::Rule.new(from_state, pattern, to_state)
44
+ def self.rule(from_state_or_states, pattern, to_state)
45
+ from_state_or_states = [from_state_or_states] unless
46
+ from_state_or_states.is_a?(Array)
47
+ Struct::Rule.new(from_state_or_states, pattern, to_state)
46
48
  end
47
49
 
48
50
  def self.supported
@@ -50,12 +52,17 @@ module Fluent
50
52
  end
51
53
 
52
54
  JAVA_RULES = [
53
- rule(:start_state,
55
+ rule([:start_state, :java_start_exception],
54
56
  /(?:Exception|Error|Throwable|V8 errors stack trace)[:\r\n]/,
55
- :java),
56
- rule(:java, /^[\t ]+(?:eval )?at /, :java),
57
- rule(:java, /^[\t ]*(?:Caused by|Suppressed):/, :java),
58
- rule(:java, /^[\t ]*... \d+\ more/, :java)
57
+ :java_after_exception),
58
+ rule(:java_after_exception, /^[\t ]*nested exception is:[\t ]*/,
59
+ :java_start_exception),
60
+ rule(:java_after_exception, /^[\r\n]*$/, :java_after_exception),
61
+ rule([:java_after_exception, :java], /^[\t ]+(?:eval )?at /, :java),
62
+ rule([:java_after_exception, :java], /^[\t ]*(?:Caused by|Suppressed):/,
63
+ :java_after_exception),
64
+ rule([:java_after_exception, :java],
65
+ /^[\t ]*... \d+ (?:more|common frames omitted)/, :java)
59
66
  ].freeze
60
67
 
61
68
  PYTHON_RULES = [
@@ -76,13 +83,12 @@ module Fluent
76
83
 
77
84
  GO_RULES = [
78
85
  rule(:start_state, /\bpanic: /, :go_after_panic),
79
- rule(:go_after_panic, /^$/, :go_goroutine),
86
+ rule([:go_after_panic, :go_after_signal, :go_frame_1],
87
+ /^$/, :go_goroutine),
80
88
  rule(:go_after_panic, /^\[signal /, :go_after_signal),
81
- rule(:go_after_signal, /^$/, :go_goroutine),
82
89
  rule(:go_goroutine, /^goroutine \d+ \[[^\]]+\]:$/, :go_frame_1),
83
90
  rule(:go_frame_1, /^(?:[^\s.:]+\.)*[^\s.():]+\(|^created by /,
84
91
  :go_frame_2),
85
- rule(:go_frame_1, /^$/, :go_goroutine),
86
92
  rule(:go_frame_2, /^\s/, :go_frame_1)
87
93
  ].freeze
88
94
 
@@ -169,7 +175,9 @@ module Fluent
169
175
  rule_config.each do |r|
170
176
  target = ExceptionDetectorConfig::RuleTarget.new(r[:pattern],
171
177
  r[:to_state])
172
- @rules[r[:from_state]] << target
178
+ r[:from_states].each do |from_state|
179
+ @rules[from_state] << target
180
+ end
173
181
  end
174
182
  end
175
183
 
@@ -59,7 +59,35 @@ Caused by: com.example.myproject.MyProjectServletException
59
59
  at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
60
60
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
61
61
  at com.example.myproject.OpenSessionInViewFilter.doFilter(OpenSessionInViewFilter.java:30)
62
- ... 27 more
62
+ ... 27 common frames omitted
63
+ END
64
+
65
+ NESTED_JAVA_EXC = <<END.freeze
66
+ java.lang.RuntimeException: javax.mail.SendFailedException: Invalid Addresses;
67
+ nested exception is:
68
+ com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 <[REDACTED_EMAIL_ADDRESS]>... Relaying denied
69
+
70
+ at com.nethunt.crm.api.server.adminsync.AutomaticEmailFacade.sendWithSmtp(AutomaticEmailFacade.java:236)
71
+ at com.nethunt.crm.api.server.adminsync.AutomaticEmailFacade.sendSingleEmail(AutomaticEmailFacade.java:285)
72
+ at com.nethunt.crm.api.server.adminsync.AutomaticEmailFacade.lambda$sendSingleEmail$3(AutomaticEmailFacade.java:254)
73
+ at java.util.Optional.ifPresent(Optional.java:159)
74
+ at com.nethunt.crm.api.server.adminsync.AutomaticEmailFacade.sendSingleEmail(AutomaticEmailFacade.java:253)
75
+ at com.nethunt.crm.api.server.adminsync.AutomaticEmailFacade.sendSingleEmail(AutomaticEmailFacade.java:249)
76
+ at com.nethunt.crm.api.email.EmailSender.lambda$notifyPerson$0(EmailSender.java:80)
77
+ at com.nethunt.crm.api.util.ManagedExecutor.lambda$execute$0(ManagedExecutor.java:36)
78
+ at com.nethunt.crm.api.util.RequestContextActivator.lambda$withRequestContext$0(RequestContextActivator.java:36)
79
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
80
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
81
+ at java.base/java.lang.Thread.run(Thread.java:748)
82
+ Caused by: javax.mail.SendFailedException: Invalid Addresses;
83
+ nested exception is:
84
+ com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 <[REDACTED_EMAIL_ADDRESS]>... Relaying denied
85
+
86
+ at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:2064)
87
+ at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1286)
88
+ at com.nethunt.crm.api.server.adminsync.AutomaticEmailFacade.sendWithSmtp(AutomaticEmailFacade.java:229)
89
+ ... 12 more
90
+ Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 <[REDACTED_EMAIL_ADDRESS]>... Relaying denied
63
91
  END
64
92
 
65
93
  NODE_JS_EXC = <<END.freeze
@@ -531,6 +559,7 @@ END
531
559
  def test_java
532
560
  check_exception(JAVA_EXC, false)
533
561
  check_exception(COMPLEX_JAVA_EXC, false)
562
+ check_exception(NESTED_JAVA_EXC, false)
534
563
  end
535
564
 
536
565
  def test_js
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-detect-exceptions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stackdriver Agents
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-23 00:00:00.000000000 Z
11
+ date: 2019-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -93,6 +93,7 @@ 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