(t *testing.T)
| 15 | ) |
| 16 | |
| 17 | func 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 | |
| 69 | func Test_BuildStats(t *testing.T) { |
| 70 | Edition("non-OSS") |
nothing calls this directly
no test coverage detected