(reg prometheus.Registerer)
| 157 | } |
| 158 | |
| 159 | func NewMetrics(reg prometheus.Registerer) Metrics { |
| 160 | auto := promauto.With(reg) |
| 161 | |
| 162 | return Metrics{ |
| 163 | Runner: runner.Metrics{ |
| 164 | ConcurrentJobs: auto.NewGaugeVec(prometheus.GaugeOpts{ |
| 165 | Namespace: "coderd", |
| 166 | Subsystem: "provisionerd", |
| 167 | Name: "jobs_current", |
| 168 | Help: "The number of currently running provisioner jobs.", |
| 169 | }, []string{"provisioner"}), |
| 170 | NumDaemons: auto.NewGauge(prometheus.GaugeOpts{ |
| 171 | Namespace: "coderd", |
| 172 | Subsystem: "provisionerd", |
| 173 | Name: "num_daemons", |
| 174 | Help: "The number of provisioner daemons.", |
| 175 | }), |
| 176 | JobTimings: auto.NewHistogramVec(prometheus.HistogramOpts{ |
| 177 | Namespace: "coderd", |
| 178 | Subsystem: "provisionerd", |
| 179 | Name: "job_timings_seconds", |
| 180 | Help: "The provisioner job time duration in seconds.", |
| 181 | Buckets: []float64{ |
| 182 | 1, // 1s |
| 183 | 10, |
| 184 | 30, |
| 185 | 60, // 1min |
| 186 | 60 * 5, |
| 187 | 60 * 10, |
| 188 | 60 * 30, // 30min |
| 189 | 60 * 60, // 1hr |
| 190 | }, |
| 191 | }, []string{"provisioner", "status"}), |
| 192 | WorkspaceBuilds: auto.NewCounterVec(prometheus.CounterOpts{ |
| 193 | Namespace: "coderd", |
| 194 | Subsystem: "", // Explicitly empty to make this a top-level metric. |
| 195 | Name: "workspace_builds_total", |
| 196 | Help: "The number of workspaces started, updated, or deleted.", |
| 197 | }, []string{"workspace_owner", "workspace_name", "template_name", "template_version", "workspace_transition", "status"}), |
| 198 | WorkspaceBuildTimings: auto.NewHistogramVec(prometheus.HistogramOpts{ |
| 199 | Namespace: "coderd", |
| 200 | Subsystem: "provisionerd", |
| 201 | Name: "workspace_build_timings_seconds", |
| 202 | Help: "The time taken for a workspace to build.", |
| 203 | Buckets: []float64{ |
| 204 | 1, // 1s |
| 205 | 10, |
| 206 | 30, |
| 207 | 60, // 1min |
| 208 | 60 * 5, |
| 209 | 60 * 10, |
| 210 | 60 * 30, // 30min |
| 211 | 60 * 60, // 1hr |
| 212 | }, |
| 213 | }, []string{"template_name", "template_version", "workspace_transition", "status"}), |
| 214 | }, |
| 215 | } |
| 216 | } |
no outgoing calls
no test coverage detected