fluent-plugin-detect-exceptions 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +17 -17
- data/fluent-plugin-detect-exceptions.gemspec +1 -1
- data/lib/fluent/plugin/exception_detector.rb +14 -0
- data/test/plugin/test_exception_detector.rb +52 -0
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3fa3afee1139adec8fe98c8406bd72035d844aadf9f1715c01c5db3e45bd7e1c
|
4
|
+
data.tar.gz: 63b1bba51e317c9931d4904551b64ef94c56b0946bccec6f67edc2311c0bbba2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60bbd111f5818ebfa4eda68c87236c3d985df25e66acf12e29f2851f52c4f9e0c74a0d8bbeeb5f077f1b154c4f23fa2bb223ac26f230aff29fdc5d0ddfa69272
|
7
|
+
data.tar.gz: 85e20f53eb5e72b7062b6d60d724f55edc53997530dce6ca6adc252bb422a7c5466c73dc5370909ec944a52f7097a8d632649b2ed32fb16962689073dfe3415b
|
data/Gemfile.lock
CHANGED
@@ -1,32 +1,33 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fluent-plugin-detect-exceptions (0.0.
|
4
|
+
fluent-plugin-detect-exceptions (0.0.13)
|
5
5
|
fluentd (>= 0.10)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
10
|
ast (2.4.0)
|
11
|
-
|
11
|
+
concurrent-ruby (1.1.5)
|
12
|
+
cool.io (1.5.4)
|
12
13
|
dig_rb (1.0.1)
|
13
14
|
flexmock (2.3.6)
|
14
|
-
fluentd (1.
|
15
|
+
fluentd (1.7.4)
|
15
16
|
cool.io (>= 1.4.5, < 2.0.0)
|
16
17
|
dig_rb (~> 1.0.0)
|
17
18
|
http_parser.rb (>= 0.5.1, < 0.7.0)
|
18
|
-
msgpack (>=
|
19
|
+
msgpack (>= 1.2.0, < 2.0.0)
|
19
20
|
serverengine (>= 2.0.4, < 3.0.0)
|
20
21
|
sigdump (~> 0.2.2)
|
21
22
|
strptime (>= 0.2.2, < 1.0.0)
|
22
|
-
tzinfo (~>
|
23
|
+
tzinfo (~> 2.0)
|
23
24
|
tzinfo-data (~> 1.0)
|
24
25
|
yajl-ruby (~> 1.0)
|
25
26
|
http_parser.rb (0.6.0)
|
26
|
-
msgpack (1.
|
27
|
-
parser (2.6.
|
27
|
+
msgpack (1.3.1)
|
28
|
+
parser (2.6.5.0)
|
28
29
|
ast (~> 2.4.0)
|
29
|
-
power_assert (1.1.
|
30
|
+
power_assert (1.1.5)
|
30
31
|
powerpack (0.1.2)
|
31
32
|
rainbow (2.2.2)
|
32
33
|
rake
|
@@ -37,19 +38,18 @@ GEM
|
|
37
38
|
rainbow (>= 1.99.1, < 3.0)
|
38
39
|
ruby-progressbar (~> 1.7)
|
39
40
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
40
|
-
ruby-progressbar (1.10.
|
41
|
-
serverengine (2.1.
|
41
|
+
ruby-progressbar (1.10.1)
|
42
|
+
serverengine (2.1.1)
|
42
43
|
sigdump (~> 0.2.2)
|
43
44
|
sigdump (0.2.4)
|
44
45
|
strptime (0.2.3)
|
45
|
-
test-unit (3.
|
46
|
+
test-unit (3.3.4)
|
46
47
|
power_assert
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
tzinfo-data (1.2018.9)
|
48
|
+
tzinfo (2.0.0)
|
49
|
+
concurrent-ruby (~> 1.0)
|
50
|
+
tzinfo-data (1.2019.3)
|
51
51
|
tzinfo (>= 1.0.0)
|
52
|
-
unicode-display_width (1.
|
52
|
+
unicode-display_width (1.6.0)
|
53
53
|
yajl-ruby (1.4.1)
|
54
54
|
|
55
55
|
PLATFORMS
|
@@ -63,4 +63,4 @@ DEPENDENCIES
|
|
63
63
|
test-unit (~> 3.0)
|
64
64
|
|
65
65
|
BUNDLED WITH
|
66
|
-
|
66
|
+
2.0.2
|
@@ -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.
|
14
|
+
gem.version = '0.0.13'
|
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')
|
@@ -59,6 +59,18 @@ module Fluent
|
|
59
59
|
:java_start_exception),
|
60
60
|
rule(:java_after_exception, /^[\r\n]*$/, :java_after_exception),
|
61
61
|
rule([:java_after_exception, :java], /^[\t ]+(?:eval )?at /, :java),
|
62
|
+
|
63
|
+
rule([:java_after_exception, :java],
|
64
|
+
# C# nested exception.
|
65
|
+
/^[\t ]+--- End of inner exception stack trace ---$/,
|
66
|
+
:java),
|
67
|
+
|
68
|
+
rule([:java_after_exception, :java],
|
69
|
+
# C# exception from async code.
|
70
|
+
/^--- End of stack trace from previous (?x:
|
71
|
+
)location where exception was thrown ---$/,
|
72
|
+
:java),
|
73
|
+
|
62
74
|
rule([:java_after_exception, :java], /^[\t ]*(?:Caused by|Suppressed):/,
|
63
75
|
:java_after_exception),
|
64
76
|
rule([:java_after_exception, :java],
|
@@ -83,6 +95,8 @@ module Fluent
|
|
83
95
|
|
84
96
|
GO_RULES = [
|
85
97
|
rule(:start_state, /\bpanic: /, :go_after_panic),
|
98
|
+
rule(:start_state, /http: panic serving/, :go_goroutine),
|
99
|
+
rule(:go_after_panic, /^$/, :go_goroutine),
|
86
100
|
rule([:go_after_panic, :go_after_signal, :go_frame_1],
|
87
101
|
/^$/, :go_goroutine),
|
88
102
|
rule(:go_after_panic, /^\[signal /, :go_after_signal),
|
@@ -242,6 +242,26 @@ created by main.main
|
|
242
242
|
server.go:20 +0x91
|
243
243
|
END
|
244
244
|
|
245
|
+
GO_HTTP = <<END.freeze
|
246
|
+
2019/01/15 07:48:05 http: panic serving [::1]:54143: test panic
|
247
|
+
goroutine 24 [running]:
|
248
|
+
net/http.(*conn).serve.func1(0xc00007eaa0)
|
249
|
+
/usr/local/go/src/net/http/server.go:1746 +0xd0
|
250
|
+
panic(0x12472a0, 0x12ece10)
|
251
|
+
/usr/local/go/src/runtime/panic.go:513 +0x1b9
|
252
|
+
main.doPanic(0x12f0ea0, 0xc00010e1c0, 0xc000104400)
|
253
|
+
/Users/ingvar/src/go/src/httppanic.go:8 +0x39
|
254
|
+
net/http.HandlerFunc.ServeHTTP(0x12be2e8, 0x12f0ea0, 0xc00010e1c0, 0xc000104400)
|
255
|
+
/usr/local/go/src/net/http/server.go:1964 +0x44
|
256
|
+
net/http.(*ServeMux).ServeHTTP(0x14a17a0, 0x12f0ea0, 0xc00010e1c0, 0xc000104400)
|
257
|
+
/usr/local/go/src/net/http/server.go:2361 +0x127
|
258
|
+
net/http.serverHandler.ServeHTTP(0xc000085040, 0x12f0ea0, 0xc00010e1c0, 0xc000104400)
|
259
|
+
/usr/local/go/src/net/http/server.go:2741 +0xab
|
260
|
+
net/http.(*conn).serve(0xc00007eaa0, 0x12f10a0, 0xc00008a780)
|
261
|
+
/usr/local/go/src/net/http/server.go:1847 +0x646
|
262
|
+
created by net/http.(*Server).Serve
|
263
|
+
/usr/local/go/src/net/http/server.go:2851 +0x2f5
|
264
|
+
END
|
245
265
|
CSHARP_EXC = <<END.freeze
|
246
266
|
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
|
247
267
|
at System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.Dictionary`2[System.Int32,System.Double]].get_Item (System.String key) [0x00000] in <filename unknown>:0
|
@@ -256,6 +276,33 @@ System.Collections.Generic.KeyNotFoundException: The given key was not present i
|
|
256
276
|
at System.Threading.Thread.StartInternal () [0x00000] in <filename unknown>:0
|
257
277
|
END
|
258
278
|
|
279
|
+
CSHARP_NESTED_EXC = <<END.freeze
|
280
|
+
System.InvalidOperationException: This is the outer exception ---> System.InvalidOperationException: This is the inner exception
|
281
|
+
at ExampleApp.NestedExceptionExample.LowestLevelMethod() in c:/ExampleApp/ExampleApp/NestedExceptionExample.cs:line 33
|
282
|
+
at ExampleApp.NestedExceptionExample.ThirdLevelMethod() in c:/ExampleApp/ExampleApp/NestedExceptionExample.cs:line 28
|
283
|
+
at ExampleApp.NestedExceptionExample.SecondLevelMethod() in c:/ExampleApp/ExampleApp/NestedExceptionExample.cs:line 18
|
284
|
+
--- End of inner exception stack trace ---
|
285
|
+
at ExampleApp.NestedExceptionExample.SecondLevelMethod() in c:/ExampleApp/ExampleApp/NestedExceptionExample.cs:line 22
|
286
|
+
at ExampleApp.NestedExceptionExample.TopLevelMethod() in c:/ExampleApp/ExampleApp/NestedExceptionExample.cs:line 11
|
287
|
+
at ExampleApp.Program.Main(String[] args) in c:/ExampleApp/ExampleApp/Program.cs:line 11
|
288
|
+
END
|
289
|
+
|
290
|
+
CSHARP_ASYNC_EXC = <<END.freeze
|
291
|
+
System.InvalidOperationException: This is an exception
|
292
|
+
at ExampleApp2.AsyncExceptionExample.LowestLevelMethod() in c:/ExampleApp/ExampleApp/AsyncExceptionExample.cs:line 36
|
293
|
+
at ExampleApp2.AsyncExceptionExample.<ThirdLevelMethod>d__2.MoveNext() in c:/ExampleApp/ExampleApp/AsyncExceptionExample.cs:line 31
|
294
|
+
--- End of stack trace from previous location where exception was thrown ---
|
295
|
+
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
|
296
|
+
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
|
297
|
+
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
|
298
|
+
at ExampleApp2.AsyncExceptionExample.<SecondLevelMethod>d__1.MoveNext() in c:/ExampleApp/ExampleApp/AsyncExceptionExample.cs:line 25
|
299
|
+
--- End of stack trace from previous location where exception was thrown ---
|
300
|
+
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
|
301
|
+
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
|
302
|
+
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
|
303
|
+
at ExampleApp2.AsyncExceptionExample.<TopLevelMethod>d__0.MoveNext() in c:/ExampleApp/ExampleApp/AsyncExceptionExample.cs:line 14
|
304
|
+
END
|
305
|
+
|
259
306
|
RUBY_EXC = <<END.freeze
|
260
307
|
NoMethodError (undefined method `resursivewordload' for #<BooksController:0x007f8dd9a0c738>):
|
261
308
|
app/controllers/books_controller.rb:69:in `recursivewordload'
|
@@ -570,6 +617,8 @@ END
|
|
570
617
|
|
571
618
|
def test_csharp
|
572
619
|
check_exception(CSHARP_EXC, false)
|
620
|
+
check_exception(CSHARP_NESTED_EXC, false)
|
621
|
+
check_exception(CSHARP_ASYNC_EXC, false)
|
573
622
|
end
|
574
623
|
|
575
624
|
def test_python
|
@@ -585,6 +634,7 @@ END
|
|
585
634
|
check_exception(GO_EXC, false)
|
586
635
|
check_exception(GO_ON_GAE_EXC, false)
|
587
636
|
check_exception(GO_SIGNAL_EXC, false)
|
637
|
+
check_exception(GO_HTTP, false)
|
588
638
|
end
|
589
639
|
|
590
640
|
def test_ruby
|
@@ -627,6 +677,8 @@ END
|
|
627
677
|
check_exception(GO_ON_GAE_EXC, false)
|
628
678
|
check_exception(GO_SIGNAL_EXC, false)
|
629
679
|
check_exception(CSHARP_EXC, false)
|
680
|
+
check_exception(CSHARP_NESTED_EXC, false)
|
681
|
+
check_exception(CSHARP_ASYNC_EXC, false)
|
630
682
|
check_exception(V8_JS_EXC, false)
|
631
683
|
check_exception(RUBY_EXC, false)
|
632
684
|
check_exception(DART_ERR, false)
|
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.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stackdriver Agents
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -123,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
requirements: []
|
126
|
-
|
127
|
-
rubygems_version: 2.7.6
|
126
|
+
rubygems_version: 3.0.4
|
128
127
|
signing_key:
|
129
128
|
specification_version: 4
|
130
129
|
summary: fluentd output plugin for combining stack traces as multi-line JSON logs
|