From c82c231ba7ec7c400e4d48ab943f57a6b29a2a2a Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Thu, 17 Sep 2020 17:23:58 -0600 Subject: [PATCH] caddyhttp: Remove server name from metrics For some reason this breaks automatic HTTP->HTTPS redirects. I am not sure why yet, but as a hotfix remove this until we understand it better. --- modules/caddyhttp/app.go | 2 -- modules/caddyhttp/metrics.go | 4 ---- modules/caddyhttp/metrics_test.go | 15 --------------- 3 files changed, 21 deletions(-) diff --git a/modules/caddyhttp/app.go b/modules/caddyhttp/app.go index c8bbc95e..375ca4d9 100644 --- a/modules/caddyhttp/app.go +++ b/modules/caddyhttp/app.go @@ -226,8 +226,6 @@ func (app *App) Provision(ctx caddy.Context) error { // route handler so that important security checks are done, etc. primaryRoute := emptyHandler if srv.Routes != nil { - // inject the server name for observability purposes - ctx.Context = contextWithServerName(ctx.Context, srvName) err := srv.Routes.ProvisionHandlers(ctx) if err != nil { return fmt.Errorf("server %s: setting up route handlers: %v", srvName, err) diff --git a/modules/caddyhttp/metrics.go b/modules/caddyhttp/metrics.go index dbf1033a..2b3b7c75 100644 --- a/modules/caddyhttp/metrics.go +++ b/modules/caddyhttp/metrics.go @@ -94,10 +94,6 @@ func serverNameFromContext(ctx context.Context) string { return srvName } -func contextWithServerName(ctx context.Context, serverName string) context.Context { - return context.WithValue(ctx, ctxKeyServerName{}, serverName) -} - type metricsInstrumentedHandler struct { labels prometheus.Labels statusLabels prometheus.Labels diff --git a/modules/caddyhttp/metrics_test.go b/modules/caddyhttp/metrics_test.go index 5c3bc1d6..14248a38 100644 --- a/modules/caddyhttp/metrics_test.go +++ b/modules/caddyhttp/metrics_test.go @@ -1,7 +1,6 @@ package caddyhttp import ( - "context" "errors" "net/http" "net/http/httptest" @@ -10,20 +9,6 @@ import ( "github.com/prometheus/client_golang/prometheus/testutil" ) -func TestServerNameFromContext(t *testing.T) { - ctx := context.Background() - expected := "UNKNOWN" - if actual := serverNameFromContext(ctx); actual != expected { - t.Errorf("Not equal: expected %q, but got %q", expected, actual) - } - - in := "foo" - ctx = contextWithServerName(ctx, in) - if actual := serverNameFromContext(ctx); actual != in { - t.Errorf("Not equal: expected %q, but got %q", in, actual) - } -} - func TestMetricsInstrumentedHandler(t *testing.T) { handlerErr := errors.New("oh noes") response := []byte("hello world!")