in apps/couchbase.go [249:303]
func (lr LoggingReceiverCouchbase) Components(ctx context.Context, tag string) []fluentbit.Component {
if len(lr.ReceiverMixin.IncludePaths) == 0 {
lr.ReceiverMixin.IncludePaths = []string{
"/opt/couchbase/var/lib/couchbase/logs/couchdb.log",
"/opt/couchbase/var/lib/couchbase/logs/info.log",
"/opt/couchbase/var/lib/couchbase/logs/debug.log",
"/opt/couchbase/var/lib/couchbase/logs/error.log",
"/opt/couchbase/var/lib/couchbase/logs/babysitter.log",
}
}
components := lr.ReceiverMixin.Components(ctx, tag)
components = append(components, confgenerator.LoggingProcessorParseMultilineRegex{
LoggingProcessorParseRegexComplex: confgenerator.LoggingProcessorParseRegexComplex{
Parsers: []confgenerator.RegexParser{
{
Regex: `^\[(?<type>[^:]*):(?<level>[^,]*),(?<timestamp>\d+-\d+-\d+T\d+:\d+:\d+.\d+Z),(?<node_name>[^:]*):([^:]+):(?<source>[^\]]+)\](?<message>.*)$`,
Parser: confgenerator.ParserShared{
TimeKey: "timestamp",
TimeFormat: "%Y-%m-%dT%H:%M:%S.%L",
},
},
},
},
Rules: []confgenerator.MultilineRule{
{
StateName: "start_state",
NextState: "cont",
Regex: `^\[([^\s+:]*):`,
},
{
StateName: "cont",
NextState: "cont",
Regex: `^(?!\[([^\s+:]*):).*$`,
},
},
}.Components(ctx, tag, lr.Type())...)
components = append(components,
confgenerator.LoggingProcessorModifyFields{
Fields: map[string]*confgenerator.ModifyField{
"severity": {
CopyFrom: "jsonPayload.level",
MapValues: map[string]string{
"debug": "DEBUG",
"info": "INFO",
"warn": "WARNING",
"error": "ERROR",
},
MapValuesExclusive: true,
},
InstrumentationSourceLabel: instrumentationSourceValue(lr.Type()),
},
}.Components(ctx, tag, lr.Type())...)
return components
}