summaryrefslogtreecommitdiff
path: root/internal/mapr/logformat/default.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2021-10-02 10:46:47 +0300
committerPaul Buetow <paul@buetow.org>2021-10-02 12:26:36 +0300
commit764ef99a3d779a0db1fb60679292af52425ba2f6 (patch)
tree2547b3bd4472a4178173dfe1d8f4178af591c37e /internal/mapr/logformat/default.go
parent609921f9c783941eaa9019a92b78ec45b49d681c (diff)
add more default fields to MAPREDUCE
Diffstat (limited to 'internal/mapr/logformat/default.go')
-rw-r--r--internal/mapr/logformat/default.go23
1 files changed, 19 insertions, 4 deletions
diff --git a/internal/mapr/logformat/default.go b/internal/mapr/logformat/default.go
index 7fb1700..8016667 100644
--- a/internal/mapr/logformat/default.go
+++ b/internal/mapr/logformat/default.go
@@ -11,7 +11,7 @@ import (
func (p *Parser) MakeFieldsDEFAULT(maprLine string) (map[string]string, error) {
splitted := strings.Split(maprLine, protocol.FieldDelimiter)
- if len(splitted) < 3 || !strings.HasPrefix(splitted[3], "MAPREDUCE:") || !strings.HasPrefix(splitted[0], "INFO") {
+ if len(splitted) < 11 || !strings.HasPrefix(splitted[9], "MAPREDUCE:") || !strings.HasPrefix(splitted[0], "INFO") {
// Not a DTail mapreduce log line.
return nil, IgnoreFieldsErr
}
@@ -27,10 +27,25 @@ func (p *Parser) MakeFieldsDEFAULT(maprLine string) (map[string]string, error) {
fields["$severity"] = splitted[0]
fields["$loglevel"] = splitted[0]
- // NEXT: Parse time like we do at Mimecast
- fields["$time"] = splitted[1]
- for _, kv := range splitted[4:] {
+ time := splitted[1]
+ fields["$time"] = time
+ if len(time) == 15 {
+ // Example: 20211002-071209
+ fields["$date"] = time[0:8]
+ fields["$hour"] = time[9:11]
+ fields["$minute"] = time[11:13]
+ fields["$second"] = time[13:]
+ }
+ fields["$pid"] = splitted[2]
+ fields["$caller"] = splitted[3]
+ fields["$cpus"] = splitted[4]
+ fields["$goroutines"] = splitted[5]
+ fields["$cgocalls"] = splitted[6]
+ fields["$loadavg"] = splitted[7]
+ fields["$uptime"] = splitted[8]
+
+ for _, kv := range splitted[10:] {
keyAndValue := strings.SplitN(kv, "=", 2)
if len(keyAndValue) != 2 {
return fields, fmt.Errorf("Unable to parse key-value token '%s'", kv)