Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0f331e7

Browse files
committed
Add workspace build timing metrics
1 parent 069655a commit 0f331e7

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

provisionerd/provisionerd.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,22 @@ func NewMetrics(reg prometheus.Registerer) Metrics {
178178
Name: "workspace_builds_total",
179179
Help: "The number of workspaces started, updated, or deleted.",
180180
}, []string{"workspace_owner", "workspace_name", "template_name", "template_version", "workspace_transition", "status"}),
181+
WorkspaceBuildTimings: auto.NewHistogramVec(prometheus.HistogramOpts{
182+
Namespace: "coderd",
183+
Subsystem: "provisionerd",
184+
Name: "workspace_build_timings_seconds",
185+
Help: "workspace build time in seconds.",
186+
Buckets: []float64{
187+
1, // 1s
188+
10,
189+
30,
190+
60, // 1min
191+
60 * 5,
192+
60 * 10,
193+
60 * 30, // 30min
194+
60 * 60, // 1hr
195+
},
196+
}, []string{"workspace_owner", "workspace_name", "template_name", "template_version", "workspace_transition", "status"}),
181197
},
182198
}
183199
}

provisionerd/runner/runner.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ type Metrics struct {
8686
// JobTimings also counts the total amount of jobs.
8787
JobTimings *prometheus.HistogramVec
8888
// WorkspaceBuilds counts workspace build successes and failures.
89-
WorkspaceBuilds *prometheus.CounterVec
89+
WorkspaceBuilds *prometheus.CounterVec
90+
WorkspaceBuildTimings *prometheus.HistogramVec
9091
}
9192

9293
type JobUpdater interface {
@@ -189,6 +190,14 @@ func (r *Runner) Run() {
189190
build.Metadata.WorkspaceTransition.String(),
190191
status,
191192
).Inc()
193+
r.metrics.WorkspaceBuildTimings.WithLabelValues(
194+
build.Metadata.WorkspaceOwner,
195+
build.Metadata.WorkspaceName,
196+
build.Metadata.TemplateName,
197+
build.Metadata.TemplateVersion,
198+
build.Metadata.WorkspaceTransition.String(),
199+
status,
200+
).Observe(time.Since(start).Seconds())
192201
}
193202
r.metrics.JobTimings.WithLabelValues(r.job.Provisioner, status).Observe(time.Since(start).Seconds())
194203
}()

0 commit comments

Comments
 (0)