summaryrefslogtreecommitdiff
path: root/internal/mapr/logformat/default_benchmark_test.go
blob: b3ae400a4a54bb2eb5f7bd38ad2b89b68ec605c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package logformat

import (
	"testing"

	"github.com/mimecast/dtail/internal/mapr"
)

func BenchmarkDefaultParserMakeFields(b *testing.B) {
	input := "INFO|20211002-072342|1|default_benchmark_test.go:0|8|14|7|0.21|471h0m21s|" +
		"MAPREDUCE:STATS|foo=bar|bar=baz|qux=quux|alpha=beta|gamma=delta"

	b.Run("all_fields", func(b *testing.B) {
		parser, err := NewParser("default", nil)
		if err != nil {
			b.Fatalf("Unable to create parser: %s", err.Error())
		}

		b.ReportAllocs()
		for i := 0; i < b.N; i++ {
			if _, err := parser.MakeFields(input); err != nil {
				b.Fatalf("Unable to parse input: %s", err.Error())
			}
		}
	})

	b.Run("query_specific", func(b *testing.B) {
		q, err := mapr.NewQuery(`select count(foo) from STATS where bar eq "baz"`)
		if err != nil {
			b.Fatalf("Unable to create query: %s", err.Error())
		}
		parser, err := NewParser("default", q)
		if err != nil {
			b.Fatalf("Unable to create parser: %s", err.Error())
		}

		b.ReportAllocs()
		for i := 0; i < b.N; i++ {
			if _, err := parser.MakeFields(input); err != nil {
				b.Fatalf("Unable to parse input: %s", err.Error())
			}
		}
	})
}