diff --git a/cli/server.go b/cli/server.go index 84fd8cdb0ebab..61368f16fbd78 100644 --- a/cli/server.go +++ b/cli/server.go @@ -822,6 +822,7 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd. } provisionerDaemons = append(provisionerDaemons, daemon) } + provisionerdMetrics.Runner.NumDaemons.Set(float64(len(provisionerDaemons))) shutdownConnsCtx, shutdownConns := context.WithCancel(ctx) defer shutdownConns() diff --git a/provisionerd/provisionerd.go b/provisionerd/provisionerd.go index db295f321525f..7be6a48759ac3 100644 --- a/provisionerd/provisionerd.go +++ b/provisionerd/provisionerd.go @@ -140,6 +140,12 @@ func NewMetrics(reg prometheus.Registerer) Metrics { Name: "jobs_current", Help: "The number of currently running provisioner jobs.", }, []string{"provisioner"}), + NumDaemons: auto.NewGauge(prometheus.GaugeOpts{ + Namespace: "coderd", + Subsystem: "provisionerd", + Name: "num_daemons", + Help: "The number of provisioner daemons.", + }), JobTimings: auto.NewHistogramVec(prometheus.HistogramOpts{ Namespace: "coderd", Subsystem: "provisionerd", diff --git a/provisionerd/runner/runner.go b/provisionerd/runner/runner.go index e08b2fa555ddd..4b0d0df179a89 100644 --- a/provisionerd/runner/runner.go +++ b/provisionerd/runner/runner.go @@ -88,6 +88,7 @@ type Runner struct { type Metrics struct { ConcurrentJobs *prometheus.GaugeVec + NumDaemons prometheus.Gauge // JobTimings also counts the total amount of jobs. JobTimings *prometheus.HistogramVec // WorkspaceBuilds counts workspace build successes and failures.