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:
 spec:
   detectExceptions:
     languages: java, python
     multiline_flush_interval: 0.1

Configuration 🔗︎

DetectExceptions 🔗︎

Variable Name Type Required Default Description
message string No "” The field which contains the raw message text in the input JSON data.
remove_tag_prefix string No "” The prefix to be removed from the input tag when outputting a record.
multiline_flush_interval string No nil The interval of flushing the buffer for multiline format.
languages []string No [] Programming languages for which to detect exceptions.
max_lines int No 1000 Maximum number of lines to flush (0 means no limit)
max_bytes int No 0 Maximum number of bytes to flush (0 means no limit)
stream string No "” Separate log streams by this field in the input JSON data.

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: {}
 outputRefs:
   - 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>