diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-20 11:06:50 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-20 11:06:50 +0200 |
| commit | 13b21feb07c86f65760f7338f284f3b492364cd9 (patch) | |
| tree | c9fa6fc4fb0c7fe8b927297d26e5f3b1448a3518 /internal/mapr/logformat/parser.go | |
| parent | da8e581617a0240626d2bc922916416440e65bae (diff) | |
Optimize mapr parsing and stabilize aggregate shutdown
Diffstat (limited to 'internal/mapr/logformat/parser.go')
| -rw-r--r-- | internal/mapr/logformat/parser.go | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/internal/mapr/logformat/parser.go b/internal/mapr/logformat/parser.go index b6ed87d..d7db826 100644 --- a/internal/mapr/logformat/parser.go +++ b/internal/mapr/logformat/parser.go @@ -20,6 +20,10 @@ type Parser interface { MakeFields(string) (map[string]string, error) } +type queryAwareParser interface { + setQuery(*mapr.Query) +} + // ParserFactory builds a Parser for a specific log format. type ParserFactory func(hostname, timeZoneName string, timeZoneOffset int) (Parser, error) @@ -86,7 +90,9 @@ func NewParser(logFormatName string, query *mapr.Query) (Parser, error) { timeZoneName, timeZoneOffset := now.Zone() if parserFactory, found := getParserFactory(logFormatName); found { - return parserFactory(hostname, timeZoneName, timeZoneOffset) + parser, err := parserFactory(hostname, timeZoneName, timeZoneOffset) + configureParserQuery(parser, query) + return parser, err } defaultFactory, found := getParserFactory("default") @@ -99,5 +105,17 @@ func NewParser(logFormatName string, query *mapr.Query) (Parser, error) { return p, fmt.Errorf("No '%s' mapr log format and problem creating default one: %v", logFormatName, err) } + configureParserQuery(p, query) return p, fmt.Errorf("No '%s' mapr log format", logFormatName) } + +func configureParserQuery(parser Parser, query *mapr.Query) { + if parser == nil { + return + } + queryAware, ok := parser.(queryAwareParser) + if !ok { + return + } + queryAware.setQuery(query) +} |
