diff --git a/acceptance_test.go b/acceptance_test.go index 4e7735669126d54987095d88404ff6376f9f1109..f84a277c9c7511a568e018811d44049659648cfa 100644 --- a/acceptance_test.go +++ b/acceptance_test.go @@ -401,6 +401,7 @@ func TestPrometheusMetricsCanBeScraped(t *testing.T) { require.Contains(t, string(body), "gitlab_pages_domains_updated_total 1") 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_requests 0") require.Contains(t, string(body), "gitlab_pages_domains_source_cache_hit 0") require.Contains(t, string(body), "gitlab_pages_domains_source_cache_miss 0") require.Contains(t, string(body), "gitlab_pages_serverless_requests 0") diff --git a/internal/source/gitlab/client/client.go b/internal/source/gitlab/client/client.go index 59776a8fd9e39835b4f953d0cd7eae673789d9b0..1e083ad972e0dce6193f3c5de5c9194eabf1a88b 100644 --- a/internal/source/gitlab/client/client.go +++ b/internal/source/gitlab/client/client.go @@ -15,6 +15,7 @@ import ( "gitlab.com/gitlab-org/gitlab-pages/internal/httptransport" "gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/api" + "gitlab.com/gitlab-org/gitlab-pages/metrics" ) // Client is a HTTP client to access Pages internal API @@ -101,6 +102,8 @@ func (gc *Client) get(ctx context.Context, path string, params url.Values) (*htt return nil, err } + metrics.DomainsSourceRequests.Inc() + resp, err := gc.httpClient.Do(req) if err != nil { return nil, err diff --git a/metrics/metrics.go b/metrics/metrics.go index 1ae527a84874a83f146d850f3ee994561928fbe1..cad558b3ea44bc2e480adb72e1ade54f6eb0c87e 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -35,6 +35,12 @@ var ( Help: "The time (in seconds) it takes to update domains configuration from disk", }) + // DomainsSourceRequests is the number of GitLab API calls + DomainsSourceRequests = prometheus.NewCounter(prometheus.CounterOpts{ + Name: "gitlab_pages_domains_source_requests", + Help: "The number of GitLab domains API HTTP requests", + }) + // DomainsSourceCacheHit is the number of GitLab API call cache hits DomainsSourceCacheHit = prometheus.NewCounter(prometheus.CounterOpts{ Name: "gitlab_pages_domains_source_cache_hit", @@ -66,6 +72,7 @@ func init() { prometheus.MustRegister(DomainUpdates) prometheus.MustRegister(DomainLastUpdateTime) prometheus.MustRegister(DomainsConfigurationUpdateDuration) + prometheus.MustRegister(DomainsSourceRequests) prometheus.MustRegister(DomainsSourceCacheHit) prometheus.MustRegister(DomainsSourceCacheMiss) prometheus.MustRegister(ServerlessRequests)