Skip to content

Commit 922f4c5

Browse files
fix: handle new agent stat format correctly (coder#14576)
--------- Co-authored-by: Ethan Dickson <ethan@coder.com>
1 parent 37885e2 commit 922f4c5

28 files changed

+1492
-67
lines changed

cli/server.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,8 @@ func enablePrometheus(
239239
afterCtx(ctx, closeInsightsMetricsCollector)
240240

241241
if vals.Prometheus.CollectAgentStats {
242-
closeAgentStatsFunc, err := prometheusmetrics.AgentStats(ctx, logger, options.PrometheusRegistry, options.Database, time.Now(), 0, options.DeploymentValues.Prometheus.AggregateAgentStatsBy.Value())
242+
experiments := coderd.ReadExperiments(options.Logger, options.DeploymentValues.Experiments.Value())
243+
closeAgentStatsFunc, err := prometheusmetrics.AgentStats(ctx, logger, options.PrometheusRegistry, options.Database, time.Now(), 0, options.DeploymentValues.Prometheus.AggregateAgentStatsBy.Value(), experiments.Enabled(codersdk.ExperimentWorkspaceUsage))
243244
if err != nil {
244245
return nil, xerrors.Errorf("register agent stats prometheus metric: %w", err)
245246
}

coderd/agentapi/stats.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ func (a *StatsAPI) UpdateStats(ctx context.Context, req *agentproto.UpdateStatsR
7474
workspaceAgent,
7575
getWorkspaceAgentByIDRow.TemplateName,
7676
req.Stats,
77+
false,
7778
)
7879
if err != nil {
7980
return nil, xerrors.Errorf("report agent stats: %w", err)

coderd/coderd.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,7 @@ func New(options *Options) *API {
407407
TemplateBuildTimes: options.MetricsCacheRefreshInterval,
408408
DeploymentStats: options.AgentStatsRefreshInterval,
409409
},
410+
experiments.Enabled(codersdk.ExperimentWorkspaceUsage),
410411
)
411412

412413
oauthConfigs := &httpmw.OAuth2Configs{

coderd/database/dbauthz/dbauthz.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,6 +1447,10 @@ func (q *querier) GetDeploymentWorkspaceAgentStats(ctx context.Context, createdA
14471447
return q.db.GetDeploymentWorkspaceAgentStats(ctx, createdAfter)
14481448
}
14491449

1450+
func (q *querier) GetDeploymentWorkspaceAgentUsageStats(ctx context.Context, createdAt time.Time) (database.GetDeploymentWorkspaceAgentUsageStatsRow, error) {
1451+
return q.db.GetDeploymentWorkspaceAgentUsageStats(ctx, createdAt)
1452+
}
1453+
14501454
func (q *querier) GetDeploymentWorkspaceStats(ctx context.Context) (database.GetDeploymentWorkspaceStatsRow, error) {
14511455
return q.db.GetDeploymentWorkspaceStats(ctx)
14521456
}
@@ -2425,6 +2429,14 @@ func (q *querier) GetWorkspaceAgentStatsAndLabels(ctx context.Context, createdAf
24252429
return q.db.GetWorkspaceAgentStatsAndLabels(ctx, createdAfter)
24262430
}
24272431

2432+
func (q *querier) GetWorkspaceAgentUsageStats(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentUsageStatsRow, error) {
2433+
return q.db.GetWorkspaceAgentUsageStats(ctx, createdAt)
2434+
}
2435+
2436+
func (q *querier) GetWorkspaceAgentUsageStatsAndLabels(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentUsageStatsAndLabelsRow, error) {
2437+
return q.db.GetWorkspaceAgentUsageStatsAndLabels(ctx, createdAt)
2438+
}
2439+
24282440
// GetWorkspaceAgentsByResourceIDs
24292441
// The workspace/job is already fetched.
24302442
func (q *querier) GetWorkspaceAgentsByResourceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgent, error) {

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2681,6 +2681,9 @@ func (s *MethodTestSuite) TestSystemFunctions() {
26812681
s.Run("GetDeploymentWorkspaceAgentStats", s.Subtest(func(db database.Store, check *expects) {
26822682
check.Args(time.Time{}).Asserts()
26832683
}))
2684+
s.Run("GetDeploymentWorkspaceAgentUsageStats", s.Subtest(func(db database.Store, check *expects) {
2685+
check.Args(time.Time{}).Asserts()
2686+
}))
26842687
s.Run("GetDeploymentWorkspaceStats", s.Subtest(func(db database.Store, check *expects) {
26852688
check.Args().Asserts()
26862689
}))
@@ -2717,9 +2720,15 @@ func (s *MethodTestSuite) TestSystemFunctions() {
27172720
s.Run("GetWorkspaceAgentStatsAndLabels", s.Subtest(func(db database.Store, check *expects) {
27182721
check.Args(time.Time{}).Asserts()
27192722
}))
2723+
s.Run("GetWorkspaceAgentUsageStatsAndLabels", s.Subtest(func(db database.Store, check *expects) {
2724+
check.Args(time.Time{}).Asserts()
2725+
}))
27202726
s.Run("GetWorkspaceAgentStats", s.Subtest(func(db database.Store, check *expects) {
27212727
check.Args(time.Time{}).Asserts()
27222728
}))
2729+
s.Run("GetWorkspaceAgentUsageStats", s.Subtest(func(db database.Store, check *expects) {
2730+
check.Args(time.Time{}).Asserts()
2731+
}))
27232732
s.Run("GetWorkspaceProxyByHostname", s.Subtest(func(db database.Store, check *expects) {
27242733
p, _ := dbgen.WorkspaceProxy(s.T(), db, database.WorkspaceProxy{
27252734
WildcardHostname: "*.example.com",

coderd/database/dbgen/dbgen.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -803,6 +803,7 @@ func WorkspaceAgentStat(t testing.TB, db database.Store, orig database.Workspace
803803
SessionCountReconnectingPTY: []int64{takeFirst(orig.SessionCountReconnectingPTY, 0)},
804804
SessionCountSSH: []int64{takeFirst(orig.SessionCountSSH, 0)},
805805
ConnectionMedianLatencyMS: []float64{takeFirst(orig.ConnectionMedianLatencyMS, 0)},
806+
Usage: []bool{takeFirst(orig.Usage, false)},
806807
}
807808
err := db.InsertWorkspaceAgentStats(genCtx, params)
808809
require.NoError(t, err, "insert workspace agent stat")
@@ -825,6 +826,7 @@ func WorkspaceAgentStat(t testing.TB, db database.Store, orig database.Workspace
825826
SessionCountJetBrains: params.SessionCountJetBrains[0],
826827
SessionCountReconnectingPTY: params.SessionCountReconnectingPTY[0],
827828
SessionCountSSH: params.SessionCountSSH[0],
829+
Usage: params.Usage[0],
828830
}
829831
}
830832

0 commit comments

Comments
 (0)