From c01ab842ebad0031852ee19c114faf14bbe29692 Mon Sep 17 00:00:00 2001 From: Samuel Date: Fri, 24 Jan 2020 18:43:30 +0100 Subject: [PATCH] Go Exceptions completion The Kubernetes API server may throw exceptions that would not be caught by that plugin. A concrete sample would be to deploy FUSE on OpenShift, with NetworkPolicies. If said NetworkPolicies prevent the k8s API server to communicate with some Jolokia service, then we would find a trace in the API server logs. That traces starts with a `goroutine ...`, with no prior mention of a "panic" or "http: panic". --- lib/fluent/plugin/exception_detector.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/fluent/plugin/exception_detector.rb b/lib/fluent/plugin/exception_detector.rb index 2d868bf..927cec6 100644 --- a/lib/fluent/plugin/exception_detector.rb +++ b/lib/fluent/plugin/exception_detector.rb @@ -96,6 +96,7 @@ def self.supported GO_RULES = [ rule(:start_state, /\bpanic: /, :go_after_panic), rule(:start_state, /http: panic serving/, :go_goroutine), + rule(:start_state, /^goroutine \d+ \[[^\]]+\]:$/, :go_frame_1), rule(:go_after_panic, /^$/, :go_goroutine), rule([:go_after_panic, :go_after_signal, :go_frame_1], /^$/, :go_goroutine),