From 522dc7bc7a545227f10a9af77231e29728f5e43c Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Thu, 9 Mar 2023 03:45:20 +0000 Subject: [PATCH] fix: only sum connection latencies when they are set This was producing a median that didn't make sense. --- coderd/database/dbfake/databasefake.go | 3 +++ coderd/database/queries.sql.go | 3 ++- coderd/database/queries/workspaceagentstats.sql | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/coderd/database/dbfake/databasefake.go b/coderd/database/dbfake/databasefake.go index 255e378beb4ad..40e004e157527 100644 --- a/coderd/database/dbfake/databasefake.go +++ b/coderd/database/dbfake/databasefake.go @@ -340,6 +340,9 @@ func (q *fakeQuerier) GetDeploymentWorkspaceAgentStats(_ context.Context, create latencies := make([]float64, 0) for _, agentStat := range agentStatsCreatedAfter { + if agentStat.ConnectionMedianLatencyMS <= 0 { + continue + } stat.WorkspaceRxBytes += agentStat.RxBytes stat.WorkspaceTxBytes += agentStat.TxBytes latencies = append(latencies, agentStat.ConnectionMedianLatencyMS) diff --git a/coderd/database/queries.sql.go b/coderd/database/queries.sql.go index a7b9ae077b78d..afda32650f7ff 100644 --- a/coderd/database/queries.sql.go +++ b/coderd/database/queries.sql.go @@ -5552,7 +5552,8 @@ WITH agent_stats AS ( coalesce((PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY connection_median_latency_ms)), -1)::FLOAT AS workspace_connection_latency_50, coalesce((PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY connection_median_latency_ms)), -1)::FLOAT AS workspace_connection_latency_95 FROM workspace_agent_stats - WHERE workspace_agent_stats.created_at > $1 + -- The greater than 0 is to support legacy agents that don't report connection_median_latency_ms. + WHERE workspace_agent_stats.created_at > $1 AND connection_median_latency_ms > 0 ), latest_agent_stats AS ( SELECT coalesce(SUM(session_count_vscode), 0)::bigint AS session_count_vscode, diff --git a/coderd/database/queries/workspaceagentstats.sql b/coderd/database/queries/workspaceagentstats.sql index 1c309107faea0..176dcec96d49e 100644 --- a/coderd/database/queries/workspaceagentstats.sql +++ b/coderd/database/queries/workspaceagentstats.sql @@ -60,7 +60,8 @@ WITH agent_stats AS ( coalesce((PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY connection_median_latency_ms)), -1)::FLOAT AS workspace_connection_latency_50, coalesce((PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY connection_median_latency_ms)), -1)::FLOAT AS workspace_connection_latency_95 FROM workspace_agent_stats - WHERE workspace_agent_stats.created_at > $1 + -- The greater than 0 is to support legacy agents that don't report connection_median_latency_ms. + WHERE workspace_agent_stats.created_at > $1 AND connection_median_latency_ms > 0 ), latest_agent_stats AS ( SELECT coalesce(SUM(session_count_vscode), 0)::bigint AS session_count_vscode,