in apps/couchbase.go [381:432]
func (lg LoggingProcessorCouchbaseGOXDCR) Components(ctx context.Context, tag string) []fluentbit.Component {
if len(lg.ReceiverMixin.IncludePaths) == 0 {
lg.ReceiverMixin.IncludePaths = []string{
"/opt/couchbase/var/lib/couchbase/logs/goxdcr.log",
}
}
c := lg.ReceiverMixin.Components(ctx, tag)
c = append(c, confgenerator.LoggingProcessorParseMultilineRegex{
LoggingProcessorParseRegexComplex: confgenerator.LoggingProcessorParseRegexComplex{
Parsers: []confgenerator.RegexParser{
{
Regex: `^(?<timestamp>\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d*Z) (?<level>\w+) (?<log_type>\w+.\w+): (?<message>.*)$`,
Parser: confgenerator.ParserShared{
TimeKey: "timestamp",
TimeFormat: "%Y-%m-%dT%H:%M:%S.%L",
},
},
},
},
Rules: []confgenerator.MultilineRule{
{
StateName: "start_state",
NextState: "cont",
Regex: `^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}`,
},
{
StateName: "cont",
NextState: "cont",
Regex: `^(?!\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})`,
},
},
}.Components(ctx, tag, lg.Type())...)
c = append(c,
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(lg.Type()),
},
}.Components(ctx, tag, lg.Type())...,
)
return c
}