tile38/tests/metrics_test.go

57 lines
1.5 KiB
Go
Raw Normal View History

2021-05-12 04:41:47 +03:00
package tests
2021-05-12 04:41:47 +03:00
import (
2022-09-23 17:30:03 +03:00
"io"
2021-05-12 04:41:47 +03:00
"net/http"
"strings"
"testing"
)
2021-05-12 04:41:47 +03:00
func downloadURLWithStatusCode(t *testing.T, u string) (int, string) {
resp, err := http.Get(u)
if err != nil {
t.Fatal(err)
}
defer resp.Body.Close()
2022-09-23 17:30:03 +03:00
body, err := io.ReadAll(resp.Body)
2021-05-12 04:41:47 +03:00
if err != nil {
t.Fatal(err)
}
return resp.StatusCode, string(body)
}
2021-05-12 04:41:47 +03:00
func subTestMetrics(t *testing.T, mc *mockServer) {
mc.Do("SET", "metrics_test_1", "1", "FIELD", "foo", 5.5, "POINT", 5, 5)
mc.Do("SET", "metrics_test_2", "2", "FIELD", "foo", 19.19, "POINT", 19, 19)
mc.Do("SET", "metrics_test_2", "3", "FIELD", "foo", 19.19, "POINT", 19, 19)
mc.Do("SET", "metrics_test_2", "truck1:driver", "STRING", "John Denton")
status, index := downloadURLWithStatusCode(t, "http://127.0.0.1:4321/")
if status != 200 {
t.Fatalf("Expected status code 200, got: %d", status)
}
if !strings.Contains(index, "<a href") {
t.Fatalf("missing link on index page")
}
status, metrics := downloadURLWithStatusCode(t, "http://127.0.0.1:4321/metrics")
if status != 200 {
t.Fatalf("Expected status code 200, got: %d", status)
}
for _, want := range []string{
2021-05-14 04:11:52 +03:00
`tile38_connected_clients`,
2021-05-12 04:41:47 +03:00
`tile38_cmd_duration_seconds_count{cmd="set"}`,
`go_build_info`,
`go_threads`,
`tile38_collection_objects{col="metrics_test_1"} 1`,
`tile38_collection_objects{col="metrics_test_2"} 3`,
`tile38_collection_points{col="metrics_test_2"} 2`,
`tile38_replication_info`,
`role="leader"`,
} {
if !strings.Contains(metrics, want) {
t.Fatalf("wanted metric: %s, got: %s", want, metrics)
}
}
}