From 0f331e74cebb530680c1dc79cf0587c69f7f3b21 Mon Sep 17 00:00:00 2001 From: Kevin Ha Date: Fri, 6 Dec 2024 12:09:20 +1100 Subject: [PATCH 1/3] Add workspace build timing metrics --- provisionerd/provisionerd.go | 16 ++++++++++++++++ provisionerd/runner/runner.go | 11 ++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/provisionerd/provisionerd.go b/provisionerd/provisionerd.go index deac80466b48d..ae6ebc63524c2 100644 --- a/provisionerd/provisionerd.go +++ b/provisionerd/provisionerd.go @@ -178,6 +178,22 @@ func NewMetrics(reg prometheus.Registerer) Metrics { Name: "workspace_builds_total", Help: "The number of workspaces started, updated, or deleted.", }, []string{"workspace_owner", "workspace_name", "template_name", "template_version", "workspace_transition", "status"}), + WorkspaceBuildTimings: auto.NewHistogramVec(prometheus.HistogramOpts{ + Namespace: "coderd", + Subsystem: "provisionerd", + Name: "workspace_build_timings_seconds", + Help: "workspace build time in seconds.", + Buckets: []float64{ + 1, // 1s + 10, + 30, + 60, // 1min + 60 * 5, + 60 * 10, + 60 * 30, // 30min + 60 * 60, // 1hr + }, + }, []string{"workspace_owner", "workspace_name", "template_name", "template_version", "workspace_transition", "status"}), }, } } diff --git a/provisionerd/runner/runner.go b/provisionerd/runner/runner.go index d8b4149ec075f..97a2d261a27e8 100644 --- a/provisionerd/runner/runner.go +++ b/provisionerd/runner/runner.go @@ -86,7 +86,8 @@ type Metrics struct { // JobTimings also counts the total amount of jobs. JobTimings *prometheus.HistogramVec // WorkspaceBuilds counts workspace build successes and failures. - WorkspaceBuilds *prometheus.CounterVec + WorkspaceBuilds *prometheus.CounterVec + WorkspaceBuildTimings *prometheus.HistogramVec } type JobUpdater interface { @@ -189,6 +190,14 @@ func (r *Runner) Run() { build.Metadata.WorkspaceTransition.String(), status, ).Inc() + r.metrics.WorkspaceBuildTimings.WithLabelValues( + build.Metadata.WorkspaceOwner, + build.Metadata.WorkspaceName, + build.Metadata.TemplateName, + build.Metadata.TemplateVersion, + build.Metadata.WorkspaceTransition.String(), + status, + ).Observe(time.Since(start).Seconds()) } r.metrics.JobTimings.WithLabelValues(r.job.Provisioner, status).Observe(time.Since(start).Seconds()) }() From 455c61c9a21849bbfa3f110ec65ffc6127aac04b Mon Sep 17 00:00:00 2001 From: Kevin Ha Date: Mon, 9 Dec 2024 13:59:39 +1100 Subject: [PATCH 2/3] rc --- provisionerd/provisionerd.go | 2 +- provisionerd/runner/runner.go | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/provisionerd/provisionerd.go b/provisionerd/provisionerd.go index ae6ebc63524c2..e9f35eb213dc3 100644 --- a/provisionerd/provisionerd.go +++ b/provisionerd/provisionerd.go @@ -193,7 +193,7 @@ func NewMetrics(reg prometheus.Registerer) Metrics { 60 * 30, // 30min 60 * 60, // 1hr }, - }, []string{"workspace_owner", "workspace_name", "template_name", "template_version", "workspace_transition", "status"}), + }, []string{"template_name", "template_version", "workspace_transition", "status"}), }, } } diff --git a/provisionerd/runner/runner.go b/provisionerd/runner/runner.go index 97a2d261a27e8..ebecc3c89099e 100644 --- a/provisionerd/runner/runner.go +++ b/provisionerd/runner/runner.go @@ -191,8 +191,6 @@ func (r *Runner) Run() { status, ).Inc() r.metrics.WorkspaceBuildTimings.WithLabelValues( - build.Metadata.WorkspaceOwner, - build.Metadata.WorkspaceName, build.Metadata.TemplateName, build.Metadata.TemplateVersion, build.Metadata.WorkspaceTransition.String(), From 2f77a603f369b651eef138f9928b7ce3d02d609c Mon Sep 17 00:00:00 2001 From: Danny Kopping Date: Mon, 9 Dec 2024 08:41:52 +0200 Subject: [PATCH 3/3] Nit: consistency Signed-off-by: Danny Kopping --- provisionerd/provisionerd.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provisionerd/provisionerd.go b/provisionerd/provisionerd.go index e9f35eb213dc3..4cf2436ea1267 100644 --- a/provisionerd/provisionerd.go +++ b/provisionerd/provisionerd.go @@ -182,7 +182,7 @@ func NewMetrics(reg prometheus.Registerer) Metrics { Namespace: "coderd", Subsystem: "provisionerd", Name: "workspace_build_timings_seconds", - Help: "workspace build time in seconds.", + Help: "The time taken for a workspace to build.", Buckets: []float64{ 1, // 1s 10, pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy