From 7325372375324ff6818a5a98ce4f89ff1e412bdb Mon Sep 17 00:00:00 2001 From: Colin Adler Date: Fri, 4 Nov 2022 14:48:19 -0500 Subject: [PATCH] fix: use prometheus default registry Using a custom registry got rid of all of the default runtime metrics. --- cli/server.go | 10 ++++------ coderd/coderd.go | 8 ++++---- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/cli/server.go b/cli/server.go index 8a8e4998db5d7..24500e7d2c287 100644 --- a/cli/server.go +++ b/cli/server.go @@ -505,23 +505,21 @@ func Server(vip *viper.Viper, newAPI func(context.Context, *coderd.Options) (*co defer serveHandler(ctx, logger, nil, cfg.Pprof.Address.Value, "pprof")() } if cfg.Prometheus.Enable.Value { - options.PrometheusRegistry = prometheus.NewRegistry() - closeUsersFunc, err := prometheusmetrics.ActiveUsers(ctx, options.PrometheusRegistry, options.Database, 0) + options.PrometheusRegisterer = prometheus.DefaultRegisterer + closeUsersFunc, err := prometheusmetrics.ActiveUsers(ctx, options.PrometheusRegisterer, options.Database, 0) if err != nil { return xerrors.Errorf("register active users prometheus metric: %w", err) } defer closeUsersFunc() - closeWorkspacesFunc, err := prometheusmetrics.Workspaces(ctx, options.PrometheusRegistry, options.Database, 0) + closeWorkspacesFunc, err := prometheusmetrics.Workspaces(ctx, options.PrometheusRegisterer, options.Database, 0) if err != nil { return xerrors.Errorf("register workspaces prometheus metric: %w", err) } defer closeWorkspacesFunc() //nolint:revive - defer serveHandler(ctx, logger, promhttp.InstrumentMetricHandler( - options.PrometheusRegistry, promhttp.HandlerFor(options.PrometheusRegistry, promhttp.HandlerOpts{}), - ), cfg.Prometheus.Address.Value, "prometheus")() + defer serveHandler(ctx, logger, promhttp.Handler(), cfg.Prometheus.Address.Value, "prometheus")() } // We use a separate coderAPICloser so the Enterprise API diff --git a/coderd/coderd.go b/coderd/coderd.go index 43ae621be144b..14910a6381c05 100644 --- a/coderd/coderd.go +++ b/coderd/coderd.go @@ -78,7 +78,7 @@ type Options struct { GoogleTokenValidator *idtoken.Validator GithubOAuth2Config *GithubOAuth2Config OIDCConfig *OIDCConfig - PrometheusRegistry *prometheus.Registry + PrometheusRegisterer prometheus.Registerer SecureAuthCookie bool SSHKeygenAlgorithm gitsshkey.Algorithm Telemetry telemetry.Reporter @@ -132,8 +132,8 @@ func New(options *Options) *API { if options.Authorizer == nil { options.Authorizer = rbac.NewAuthorizer() } - if options.PrometheusRegistry == nil { - options.PrometheusRegistry = prometheus.NewRegistry() + if options.PrometheusRegisterer == nil { + options.PrometheusRegisterer = prometheus.NewRegistry() } if options.TailnetCoordinator == nil { options.TailnetCoordinator = tailnet.NewCoordinator() @@ -204,7 +204,7 @@ func New(options *Options) *API { httpmw.Recover(api.Logger), httpmw.ExtractRealIP(api.RealIPConfig), httpmw.Logger(api.Logger), - httpmw.Prometheus(options.PrometheusRegistry), + httpmw.Prometheus(options.PrometheusRegisterer), // handleSubdomainApplications checks if the first subdomain is a valid // app URL. If it is, it will serve that application. api.handleSubdomainApplications(