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>