Exception Detector
Exception Detector
Overview
This filter plugin consumes a log stream of JSON objects which contain single-line log messages. If a consecutive sequence of log messages form an exception stack trace, they forwarded as a single, combined JSON object. Otherwise, the input log data is forwarded as is. More info at https://github.com/GoogleCloudPlatform/fluent-plugin-detect-exceptions
Note: As Tag management is not supported yet, this Plugin is mutually exclusive with Tag normaliser
Example output configurations
filters:
- detectExceptions:
languages: java, python
multiline_flush_interval: 0.1
Configuration
DetectExceptions
force_line_breaks (bool, optional)
Force line breaks between each lines when comibining exception stacks.
Default: false
languages ([]string, optional)
Programming languages for which to detect exceptions.
Default: []
match_tag (string, optional)
Tag used in match directive.
Default: kubernetes.**
max_bytes (int, optional)
Maximum number of bytes to flush (0 means no limit)
Default: 0
max_lines (int, optional)
Maximum number of lines to flush (0 means no limit)
Default: 1000
message (string, optional)
The field which contains the raw message text in the input JSON data.
Default: ""
multiline_flush_interval (string, optional)
The interval of flushing the buffer for multiline format.
Default: nil
remove_tag_prefix (string, optional)
The prefix to be removed from the input tag when outputting a record.
Default: kubernetes
stream (string, optional)
Separate log streams by this field in the input JSON data.
Default: ""
Example Exception Detector
filter configurations
apiVersion: logging.banzaicloud.io/v1beta1
kind: Flow
metadata:
name: demo-flow
spec:
filters:
- detectExceptions:
multiline_flush_interval: 0.1
languages:
- java
- python
selectors: {}
localOutputRefs:
- demo-output
Fluentd config result:
<match kubernetes.**>
@type detect_exceptions
@id test_detect_exceptions
languages ["java","python"]
multiline_flush_interval 0.1
remove_tag_prefix kubernetes
</match>