diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 2d990c58dda..1d6dbe5f7a6 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -36,7 +36,6 @@ export interface FeatureToggles { influxdbBackendMigration?: boolean; newNavigation?: boolean; showFeatureFlagsInUI?: boolean; - disable_http_request_histogram?: boolean; publicDashboards?: boolean; lokiLive?: boolean; swaggerUi?: boolean; diff --git a/pkg/infra/metrics/metrics.go b/pkg/infra/metrics/metrics.go index d35115ee899..3eac92d8987 100644 --- a/pkg/infra/metrics/metrics.go +++ b/pkg/infra/metrics/metrics.go @@ -24,12 +24,6 @@ var ( // MProxyStatus is a metric proxy http response status MProxyStatus *prometheus.CounterVec - // MHttpRequestTotal is a metric http request counter - MHttpRequestTotal *prometheus.CounterVec - - // MHttpRequestSummary is a metric http request summary - MHttpRequestSummary *prometheus.SummaryVec - // MApiUserSignUpStarted is a metric amount of users who started the signup flow MApiUserSignUpStarted prometheus.Counter @@ -226,23 +220,6 @@ func init() { Namespace: ExporterName, }, []string{"code"}, httpStatusCodes...) - MHttpRequestTotal = prometheus.NewCounterVec( - prometheus.CounterOpts{ - Name: "http_request_total", - Help: "http request counter", - }, - []string{"handler", "statuscode", "method"}, - ) - - MHttpRequestSummary = prometheus.NewSummaryVec( - prometheus.SummaryOpts{ - Name: "http_request_duration_milliseconds", - Help: "http request summary", - Objectives: objectiveMap, - }, - []string{"handler", "statuscode", "method"}, - ) - MApiUserSignUpStarted = newCounterStartingAtZero(prometheus.CounterOpts{ Name: "api_user_signup_started_total", Help: "amount of users who started the signup flow", @@ -615,8 +592,6 @@ func initMetricVars() { MPageStatus, MApiStatus, MProxyStatus, - MHttpRequestTotal, - MHttpRequestSummary, MApiUserSignUpStarted, MApiUserSignUpCompleted, MApiUserSignUpInvite, diff --git a/pkg/middleware/request_metrics.go b/pkg/middleware/request_metrics.go index 6f9b2618993..a91b6849f1b 100644 --- a/pkg/middleware/request_metrics.go +++ b/pkg/middleware/request_metrics.go @@ -66,31 +66,22 @@ func RequestMetrics(features featuremgmt.FeatureToggles) web.Handler { } status := rw.Status() - code := sanitizeCode(status) - method := sanitizeMethod(req.Method) - // enable histogram and disable summaries + counters for http requests. - if features.IsEnabled(featuremgmt.FlagDisableHttpRequestHistogram) { - duration := time.Since(now).Nanoseconds() / int64(time.Millisecond) - metrics.MHttpRequestTotal.WithLabelValues(handler, code, method).Inc() - metrics.MHttpRequestSummary.WithLabelValues(handler, code, method).Observe(float64(duration)) - } else { - // avoiding the sanitize functions for in the new instrumentation - // since they dont make much sense. We should remove them later. - histogram := httpRequestDurationHistogram. - WithLabelValues(handler, code, req.Method) - if traceID := tracing.TraceIDFromContext(c.Req.Context(), true); traceID != "" { - // Need to type-convert the Observer to an - // ExemplarObserver. This will always work for a - // HistogramVec. - histogram.(prometheus.ExemplarObserver).ObserveWithExemplar( - time.Since(now).Seconds(), prometheus.Labels{"traceID": traceID}, - ) - return - } - histogram.Observe(time.Since(now).Seconds()) + // avoiding the sanitize functions for in the new instrumentation + // since they dont make much sense. We should remove them later. + histogram := httpRequestDurationHistogram. + WithLabelValues(handler, code, req.Method) + if traceID := tracing.TraceIDFromContext(c.Req.Context(), true); traceID != "" { + // Need to type-convert the Observer to an + // ExemplarObserver. This will always work for a + // HistogramVec. + histogram.(prometheus.ExemplarObserver).ObserveWithExemplar( + time.Since(now).Seconds(), prometheus.Labels{"traceID": traceID}, + ) + return } + histogram.Observe(time.Since(now).Seconds()) switch { case strings.HasPrefix(req.RequestURI, "/api/datasources/proxy"): @@ -142,10 +133,6 @@ func countProxyRequests(status int) { } } -func sanitizeMethod(m string) string { - return strings.ToLower(m) -} - // If the wrapped http.Handler has not set a status code, i.e. the value is // currently 0, sanitizeCode will return 200, for consistency with behavior in // the stdlib. diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index 69d4781256f..3182c53c179 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -117,11 +117,6 @@ var ( State: FeatureStateAlpha, RequiresDevMode: true, }, - { - Name: "disable_http_request_histogram", - Description: "Do not create histograms for http requests", - State: FeatureStateAlpha, - }, { Name: "publicDashboards", Description: "enables public access to dashboards", diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index f41fbacd7cb..13ad09f4067 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -87,10 +87,6 @@ const ( // Show feature flags in the settings UI FlagShowFeatureFlagsInUI = "showFeatureFlagsInUI" - // FlagDisableHttpRequestHistogram - // Do not create histograms for http requests - FlagDisableHttpRequestHistogram = "disable_http_request_histogram" - // FlagPublicDashboards // enables public access to dashboards FlagPublicDashboards = "publicDashboards" diff --git a/pkg/services/featuremgmt/toggles_gen_test.go b/pkg/services/featuremgmt/toggles_gen_test.go index 423057d6f3a..dc72fa4aaaa 100644 --- a/pkg/services/featuremgmt/toggles_gen_test.go +++ b/pkg/services/featuremgmt/toggles_gen_test.go @@ -18,14 +18,13 @@ import ( func TestFeatureToggleFiles(t *testing.T) { legacyNames := map[string]bool{ - "httpclientprovider_azure_auth": true, - "service-accounts": true, - "database_metrics": true, - "live-config": true, - "live-pipeline": true, - "live-service-web-worker": true, - "prometheus_azure_auth": true, - "disable_http_request_histogram": true, + "httpclientprovider_azure_auth": true, + "service-accounts": true, + "database_metrics": true, + "live-config": true, + "live-pipeline": true, + "live-service-web-worker": true, + "prometheus_azure_auth": true, } t.Run("verify files", func(t *testing.T) {