MCPcopy
hub / github.com/grafana/tempo / Test_BuildReport

Function Test_BuildReport

pkg/usagestats/stats_test.go:17–67  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

15)
16
17func Test_BuildReport(t *testing.T) {
18 now := time.Now()
19 seed := &ClusterSeed{
20 UID: uuid.New().String(),
21 CreatedAt: now,
22 }
23
24 Edition("non-OSS")
25 Edition("OSS")
26 Target("distributor")
27 Target("backend-worker")
28 NewString("compression").Set("snappy")
29 NewString("compression").Set("lz4")
30 NewInt("compression_ratio").Set(50)
31 NewInt("compression_ratio").Set(100)
32 NewFloat("size_mb").Set(100.1)
33 NewFloat("size_mb").Set(200.1)
34 NewCounter("lines_written").Inc(200)
35 s := NewStatistics("query_throughput")
36 s.Record(25)
37 s = NewStatistics("query_throughput")
38 s.Record(300)
39 s.Record(5)
40 w := NewWordCounter("active_tenants")
41 w.Add("buz")
42 w = NewWordCounter("active_tenants")
43 w.Add("foo")
44 w.Add("bar")
45 w.Add("foo")
46
47 r := buildReport(seed, now.Add(time.Hour))
48 require.Equal(t, r.Arch, runtime.GOARCH)
49 require.Equal(t, r.Os, runtime.GOOS)
50 require.Equal(t, r.PrometheusVersion, build.GetVersion())
51 require.Equal(t, r.Edition, "OSS")
52 require.Equal(t, r.Target, "backend-worker")
53 require.Equal(t, r.Metrics["num_cpu"], runtime.NumCPU())
54 // Don't check num_goroutine because it could have changed since the report was created.
55 require.Equal(t, r.Metrics["compression"], "lz4")
56 require.Equal(t, r.Metrics["compression_ratio"], int64(100))
57 require.Equal(t, r.Metrics["size_mb"], 200.1)
58 require.Equal(t, r.Metrics["lines_written"].(map[string]interface{})["total"], int64(200))
59 require.Equal(t, r.Metrics["query_throughput"].(map[string]interface{})["min"], float64(5))
60 require.Equal(t, r.Metrics["query_throughput"].(map[string]interface{})["max"], float64(300))
61 require.Equal(t, r.Metrics["query_throughput"].(map[string]interface{})["count"], int64(3))
62 require.Equal(t, r.Metrics["query_throughput"].(map[string]interface{})["avg"], float64(25+300+5)/3)
63 require.Equal(t, r.Metrics["active_tenants"], int64(3))
64
65 out, _ := json.MarshalIndent(r, "", " ")
66 t.Log(string(out))
67}
68
69func Test_BuildStats(t *testing.T) {
70 Edition("non-OSS")

Callers

nothing calls this directly

Calls 15

RecordMethod · 0.95
AddMethod · 0.95
EditionFunction · 0.85
TargetFunction · 0.85
NewStringFunction · 0.85
NewIntFunction · 0.85
NewFloatFunction · 0.85
NewCounterFunction · 0.85
NewStatisticsFunction · 0.85
NewWordCounterFunction · 0.85
buildReportFunction · 0.85
NowMethod · 0.65

Tested by

no test coverage detected