Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--acceptance_test.go32
-rw-r--r--metrics/metrics.go1
-rw-r--r--metrics/metrics_test.go60
3 files changed, 27 insertions, 66 deletions
diff --git a/acceptance_test.go b/acceptance_test.go
index 1fae9c8f..03e9ec01 100644
--- a/acceptance_test.go
+++ b/acceptance_test.go
@@ -448,28 +448,48 @@ func TestHttpsOnlyDomainDisabled(t *testing.T) {
func TestPrometheusMetricsCanBeScraped(t *testing.T) {
skipUnlessEnabled(t)
listener := []ListenSpec{{"http", "127.0.0.1", "37003"}}
- teardown := RunPagesProcess(t, *pagesBinary, listener, ":42345")
+
+ var apiCalled bool
+ source := NewGitlabDomainsSourceStub(t, &apiCalled)
+ defer source.Close()
+
+ gitLabAPISecretKey := CreateGitLabAPISecretKeyFixtureFile(t)
+
+ pagesArgs := []string{"-gitlab-server", source.URL, "-api-secret-key", gitLabAPISecretKey, "-domain-config-source", "gitlab"}
+ teardown := RunPagesProcessWithEnvs(t, true, *pagesBinary, listener, ":42345", []string{}, pagesArgs...)
defer teardown()
+ // need to call an actual resource to populate certain metrics e.g. gitlab_pages_domains_source_api_requests_total
+ _, err := GetPageFromListener(t, listener[0], "new-source-test.gitlab.io", "")
+ require.NoError(t, err)
+
resp, err := http.Get("http://localhost:42345/metrics")
require.NoError(t, err)
defer resp.Body.Close()
- body, _ := ioutil.ReadAll(resp.Body)
+ body, err := ioutil.ReadAll(resp.Body)
+ require.NoError(t, err)
require.Contains(t, string(body), "gitlab_pages_http_in_flight_requests 0")
- require.Contains(t, string(body), "gitlab_pages_served_domains 16")
+ // TODO: remove metrics for disk sourcehttps://gitlab.com/gitlab-org/gitlab-pages/-/issues/382
+ require.Contains(t, string(body), "gitlab_pages_served_domains 0")
require.Contains(t, string(body), "gitlab_pages_domains_failed_total 0")
- require.Contains(t, string(body), "gitlab_pages_domains_updated_total 1")
+ require.Contains(t, string(body), "gitlab_pages_domains_updated_total 0")
require.Contains(t, string(body), "gitlab_pages_last_domain_update_seconds gauge")
require.Contains(t, string(body), "gitlab_pages_domains_configuration_update_duration gauge")
- require.Contains(t, string(body), "gitlab_pages_domains_source_cache_hit 0")
- require.Contains(t, string(body), "gitlab_pages_domains_source_cache_miss 0")
+ // end TODO
+ require.Contains(t, string(body), "gitlab_pages_domains_source_cache_hit 3")
+ require.Contains(t, string(body), "gitlab_pages_domains_source_cache_miss 2")
require.Contains(t, string(body), "gitlab_pages_domains_source_failures_total 0")
require.Contains(t, string(body), "gitlab_pages_serverless_requests 0")
require.Contains(t, string(body), "gitlab_pages_serverless_latency_sum 0")
require.Contains(t, string(body), "gitlab_pages_disk_serving_file_size_bytes_sum 0")
require.Contains(t, string(body), "gitlab_pages_serving_time_seconds_sum 0")
+ require.Contains(t, string(body), `gitlab_pages_domains_source_api_requests_total{status_code="200"}`)
+ require.Contains(t, string(body), `gitlab_pages_domains_source_api_call_duration{status_code="200"}`)
+ // TODO: add test when Zip is enabled https://gitlab.com/gitlab-org/gitlab-pages/-/issues/443
+ // require.Contains(t, string(body), `gitlab_pages_httprange_zip_reader_requests_total{status_code="200"}`)
+ // require.Contains(t, string(body), `gitlab_pages_httprange_zip_reader_requests_duration{status_code="200"}`)
}
func TestStatusPage(t *testing.T) {
diff --git a/metrics/metrics.go b/metrics/metrics.go
index de4206b5..c2bf6566 100644
--- a/metrics/metrics.go
+++ b/metrics/metrics.go
@@ -5,6 +5,7 @@ import (
)
var (
+ // TODO: remove disk source metrics https://gitlab.com/gitlab-org/gitlab-pages/-/issues/382
// DomainsServed counts the total number of sites served
DomainsServed = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "gitlab_pages_served_domains",
diff --git a/metrics/metrics_test.go b/metrics/metrics_test.go
deleted file mode 100644
index c65aab3c..00000000
--- a/metrics/metrics_test.go
+++ /dev/null
@@ -1,60 +0,0 @@
-package metrics
-
-import (
- "io/ioutil"
- "net/http"
- "net/http/httptest"
- "testing"
- "time"
-
- "github.com/prometheus/client_golang/prometheus"
- "github.com/prometheus/client_golang/prometheus/promhttp"
- "github.com/prometheus/client_golang/prometheus/testutil"
- "github.com/stretchr/testify/require"
-)
-
-func TestMetricsVectorsCanBeScraped(t *testing.T) {
- reg := prometheus.NewRegistry()
-
- // vectors will only be available in /metrics after a label has been set/incremented so we can't test these in
- // TestPrometheusMetricsCanBeScraped as part of the acceptance tests
- reg.MustRegister(
- DomainsSourceAPIReqTotal,
- DomainsSourceAPICallDuration,
- ZipFileServingReqTotal,
- ZipFileServingReqDuration,
- )
-
- handler := promhttp.HandlerFor(reg, promhttp.HandlerOpts{})
- testServer := httptest.NewServer(handler)
- defer testServer.Close()
-
- DomainsSourceAPICallDuration.WithLabelValues("200").Set(float64(20 * time.Millisecond))
- DomainsSourceAPIReqTotal.WithLabelValues("200").Inc()
-
- c, err := DomainsSourceAPIReqTotal.GetMetricWithLabelValues("200")
- require.NoError(t, err)
- require.Equal(t, float64(1), testutil.ToFloat64(c))
-
- ZipFileServingReqDuration.WithLabelValues("200").Set(float64(20 * time.Millisecond))
- ZipFileServingReqTotal.WithLabelValues("200").Inc()
-
- c, err = ZipFileServingReqTotal.GetMetricWithLabelValues("200")
- require.NoError(t, err)
- require.Equal(t, float64(1), testutil.ToFloat64(c))
-
- metricFamilies, err := reg.Gather()
- require.NoError(t, err)
-
- require.Len(t, metricFamilies, 4)
-
- res, err := http.Get(testServer.URL + "/metrics")
- require.NoError(t, err)
- defer res.Body.Close()
- body, _ := ioutil.ReadAll(res.Body)
-
- require.Contains(t, string(body), `gitlab_pages_domains_source_api_requests_total{status_code="200"}`)
- require.Contains(t, string(body), `gitlab_pages_domains_source_api_call_duration{status_code="200"}`)
- require.Contains(t, string(body), `gitlab_pages_httprange_zip_reader_requests_total{status_code="200"}`)
- require.Contains(t, string(body), `gitlab_pages_httprange_zip_reader_requests_duration{status_code="200"}`)
-}