MCPcopy
hub / github.com/elastic/go-elasticsearch / main

Function main

_benchmarks/benchmarks/cmd/main.go:56–254  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

54)
55
56func main() {
57 log.SetFlags(0)
58
59 rand.Seed(time.Now().UnixNano())
60
61 start := time.Now().UTC()
62 benchmarks.Config = map[string]string{
63 "BUILD_ID": "",
64 "DATA_SOURCE": "",
65 "CLIENT_BRANCH": "",
66 "CLIENT_COMMIT": "",
67 "CLIENT_BENCHMARK_ENVIRONMENT": "",
68 "ELASTICSEARCH_TARGET_URL": "",
69 "ELASTICSEARCH_REPORT_URL": "",
70 "TARGET_SERVICE_TYPE": "",
71 "TARGET_SERVICE_NAME": "",
72 "TARGET_SERVICE_VERSION": "",
73 "TARGET_SERVICE_OS_FAMILY": "",
74 }
75
76 log.Printf(boldUnderline("Running benchmarks for go-elasticsearch@%s; %s/go%s"), elasticsearch.Version, runner.RuntimeOS, runner.RuntimeVersion)
77
78 var missingConfigs []string
79 for k := range benchmarks.Config {
80 v := os.Getenv(k)
81 if v == "" {
82 missingConfigs = append(missingConfigs, k)
83 } else {
84 benchmarks.Config[k] = v
85 }
86 }
87
88 if len(missingConfigs) > 0 {
89 log.Fatalf("ERROR: Required environment variables empty: %s", strings.Join(missingConfigs, ", "))
90 }
91
92 if _, err := os.Stat(benchmarks.Config["DATA_SOURCE"]); os.IsNotExist(err) {
93 log.Fatalf("ERROR: Data source at [%s] does not exist", benchmarks.Config["DATA_SOURCE"])
94 }
95
96 dirs, err := ioutil.ReadDir(benchmarks.Config["DATA_SOURCE"])
97 if err != nil {
98 log.Fatalf("ERROR: Unable to list files in [%s]", benchmarks.Config["DATA_SOURCE"])
99 }
100 for _, file := range dirs {
101 if !file.IsDir() {
102 continue
103 }
104 c, err := os.Open(filepath.Join(benchmarks.Config["DATA_SOURCE"], file.Name(), "document.json"))
105 if err != nil {
106 log.Fatalf("ERROR: Unable to open file: %s", err)
107 }
108 var b bytes.Buffer
109 b.ReadFrom(c)
110 c.Close()
111
112 benchmarks.DataSources[file.Name()] = &b
113 }

Callers

nothing calls this directly

Calls 12

RunMethod · 0.95
StatsMethod · 0.95
ErrsMethod · 0.95
PrintfMethod · 0.80
JoinMethod · 0.80
OpenMethod · 0.80
DurationMethod · 0.80
CloseMethod · 0.65
SeedMethod · 0.45
NameMethod · 0.45
TruncateMethod · 0.45
ErrsMethod · 0.45

Tested by

no test coverage detected