(t *testing.T)
| 67 | } |
| 68 | |
| 69 | func Test_BuildStats(t *testing.T) { |
| 70 | Edition("non-OSS") |
| 71 | Edition("OSS") |
| 72 | Target("distributor") |
| 73 | Target("backend-worker") |
| 74 | NewString("compression").Set("snappy") |
| 75 | NewString("compression").Set("lz4") |
| 76 | NewInt("compression_ratio").Set(50) |
| 77 | NewInt("compression_ratio").Set(100) |
| 78 | NewFloat("size_mb").Set(100.1) |
| 79 | NewFloat("size_mb").Set(200.1) |
| 80 | NewCounter("lines_written").Inc(200) |
| 81 | s := NewStatistics("test_build_stats") |
| 82 | s.Record(25) |
| 83 | s = NewStatistics("test_build_stats") |
| 84 | s.Record(300) |
| 85 | s.Record(5) |
| 86 | w := NewWordCounter("active_tenants_build_stats") |
| 87 | w.Add("buz") |
| 88 | w = NewWordCounter("active_tenants_build_stats") |
| 89 | w.Add("foo") |
| 90 | w.Add("bar") |
| 91 | w.Add("foo") |
| 92 | |
| 93 | r := BuildStats() |
| 94 | require.Equal(t, r.Arch, runtime.GOARCH) |
| 95 | require.Equal(t, r.Os, runtime.GOOS) |
| 96 | require.Equal(t, r.PrometheusVersion, build.GetVersion()) |
| 97 | require.Equal(t, r.Edition, "OSS") |
| 98 | require.Equal(t, r.Target, "backend-worker") |
| 99 | require.Equal(t, r.Metrics["num_cpu"], runtime.NumCPU()) |
| 100 | // Don't check num_goroutine because it could have changed since the report was created. |
| 101 | require.Equal(t, r.Metrics["compression"], "lz4") |
| 102 | require.Equal(t, r.Metrics["compression_ratio"], int64(100)) |
| 103 | require.Equal(t, r.Metrics["size_mb"], 200.1) |
| 104 | require.Equal(t, r.Metrics["lines_written"].(map[string]interface{})["total"], int64(200)) |
| 105 | require.Equal(t, r.Metrics["test_build_stats"].(map[string]interface{})["min"], float64(5)) |
| 106 | require.Equal(t, r.Metrics["test_build_stats"].(map[string]interface{})["max"], float64(300)) |
| 107 | require.Equal(t, r.Metrics["test_build_stats"].(map[string]interface{})["count"], int64(3)) |
| 108 | require.Equal(t, r.Metrics["test_build_stats"].(map[string]interface{})["avg"], float64(25+300+5)/3) |
| 109 | require.Equal(t, r.Metrics["active_tenants_build_stats"], int64(3)) |
| 110 | |
| 111 | // check if ClusterID and Seed related attrs are not set. |
| 112 | require.Equal(t, r.ClusterID, "") |
| 113 | require.Equal(t, r.CreatedAt, time.Time{}) |
| 114 | require.Equal(t, r.Interval, time.Time{}) |
| 115 | |
| 116 | out, _ := json.MarshalIndent(r, "", " ") |
| 117 | t.Log(string(out)) |
| 118 | } |
| 119 | |
| 120 | func TestCounter(t *testing.T) { |
| 121 | synctest.Test(t, func(t *testing.T) { |
nothing calls this directly
no test coverage detected