1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00
Files
openshift-docs/modules/log6x-multiline-except.adoc
libander f7f26dc60a xref fix
2024-09-24 21:20:30 +00:00

65 lines
1.9 KiB
Plaintext

// Module included in the following assemblies:
//
// * observability/logging/logging-6.0/log6x-clf.adoc
:_mod-docs-content-type: PROCEDURE
[id="log6x-multiline-except_{context}"]
= Enabling multi-line exception detection
Enables multi-line error detection of container logs.
[WARNING]
====
Enabling this feature could have performance implications and may require additional computing resources or alternate logging solutions.
====
Log parsers often incorrectly identify separate lines of the same exception as separate exceptions. This leads to extra log entries and an incomplete or inaccurate view of the traced information.
.Example java exception
[source,java]
----
java.lang.NullPointerException: Cannot invoke "String.toString()" because "<param1>" is null
at testjava.Main.handle(Main.java:47)
at testjava.Main.printMe(Main.java:19)
at testjava.Main.main(Main.java:10)
----
* To enable logging to detect multi-line exceptions and reassemble them into a single log entry, ensure that the `ClusterLogForwarder` Custom Resource (CR) contains a `detectMultilineErrors` field under the `.spec.filters`.
.Example ClusterLogForwarder CR
[source,yaml]
----
apiVersion: "observability.openshift.io/v1"
kind: ClusterLogForwarder
metadata:
name: <log_forwarder_name>
namespace: <log_forwarder_namespace>
spec:
serviceAccount:
name: <service_account_name>
filters:
- name: <name>
type: detectMultilineException
pipelines:
- inputRefs:
- <input-name>
name: <pipeline-name>
filterRefs:
- <filter-name>
outputRefs:
- <output-name>
----
== Details
When log messages appear as a consecutive sequence forming an exception stack trace, they are combined into a single, unified log record. The first log message's content is replaced with the concatenated content of all the message fields in the sequence.
The collector supports the following languages:
* Java
* JS
* Ruby
* Python
* Golang
* PHP
* Dart