Oron Cohen
05/15/2025, 2:40 PMJosh Baird
05/15/2025, 2:52 PMOron Cohen
05/15/2025, 2:54 PMapiVersion: <http://fluentbit.fluent.io/v1alpha2|fluentbit.fluent.io/v1alpha2>
kind: ClusterParser
metadata:
name: regex-for-clusterfilter-nbo-job
labels:
<http://fluentbit.fluent.io/component|fluentbit.fluent.io/component>: logging
<http://fluentbit.fluent.io/enabled|fluentbit.fluent.io/enabled>: 'true'
spec:
regex:
regex: '^(?<containertime>\S+)\s+(?<stdtype>(stdout|stderr))\s+(F|P)\s+(?<logtime>\d{4}-\d{1,2}-\d{1,2}\s+\d{1,2}:\d{1,2}:\d{1,2}\.\d*)\s+(?<level>.+)\s*---\s*\[\s*(?<thread>\S+)\]\s*(?<message>[.\s\S]+)'
timeKey: logtime
timeFormat: '%Y-%m-%d %H:%M:%S.%N'
timeKeep: falseOron Cohen
05/15/2025, 2:55 PMOron Cohen
05/15/2025, 2:55 PMOron Cohen
05/15/2025, 2:56 PMkind: ClusterFilter
metadata:
name: nbo-job
labels:
<http://fluentbit.fluent.io/component|fluentbit.fluent.io/component>: logging
<http://fluentbit.fluent.io/enabled|fluentbit.fluent.io/enabled>: 'true'
spec:
ordinal: 999
match: nbo.job.*
filters:
- parser:
keyName: log
parser: regex-for-clusterfilter-nbo-job
reserveData: trueChengwei Guo
05/16/2025, 1:00 AMOron Cohen
05/18/2025, 6:53 AMOron Cohen
05/18/2025, 7:02 AM<source>
@type tail
read_lines_limit 250
path_key tailed_path
path ...
tag ...
multiline_flush_interval 30s
<parse>
@type multiline
format_firstline /^\S+\s(stdout|stderr)\s(F|P)\s\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}/
format1 /^(?<containertime>\S+)\s+(?<stdtype>(stdout|stderr))\s+(F|P)\s+(?<logtime>\d{4}-\d{1,2}-\d{1,2}\s+\d{1,2}:\d{1,2}:\d{1,2}\.\d*)\s+(?<level>.+)\s*---\s*\[\s*(?<thread>\S+)\]\s*(?<message>[.\s\S]+)/
time_key logtime
time_format %Y-%m-%d %H:%M:%S.%N
</parse>
</source>
this works, and I try to re-create the same behavior for fluentbit