fix(coderd/prometheusmetrics)!: filter deleted wsbuilds to reduce db load (#19197)

This change removes the `GetLatestWorkspaceBuilds` query which includes
all workspaces for all time (including deleted). This allows us to also
stop using `GetProvisionerJobsByIDs` for said builds as the job status
is included in `GetWorkspaces` called separately.

**BREAKING CHANGE**: The `coderd_api_workspace_latest_build` Prometheus
metric no longer includes builds belonging to deleted workspaces, as
such, this metric will show fewer statuses.

Fixes coder/internal#717
This commit is contained in:
Mathias Fredriksson
2025-08-11 14:48:31 +03:00
committed by GitHub
parent 060fb57d28
commit 1b66495b70
9 changed files with 95 additions and 157 deletions
@@ -943,13 +943,6 @@ func (m queryMetricsStore) GetLatestWorkspaceBuildByWorkspaceID(ctx context.Cont
return build, err
}
func (m queryMetricsStore) GetLatestWorkspaceBuilds(ctx context.Context) ([]database.WorkspaceBuild, error) {
start := time.Now()
builds, err := m.s.GetLatestWorkspaceBuilds(ctx)
m.queryLatencies.WithLabelValues("GetLatestWorkspaceBuilds").Observe(time.Since(start).Seconds())
return builds, err
}
func (m queryMetricsStore) GetLatestWorkspaceBuildsByWorkspaceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceBuild, error) {
start := time.Now()
builds, err := m.s.GetLatestWorkspaceBuildsByWorkspaceIDs(ctx, ids)