Skip to content

Commit 229f546

Browse files
committed
WIP
1 parent 970d35a commit 229f546

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed

coderd/prometheusmetrics/prometheusmetrics.go

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ func Agents(ctx context.Context, logger slog.Logger, registerer prometheus.Regis
151151
Subsystem: "agents",
152152
Name: "connection_latencies_seconds",
153153
Help: "Agent connection latencies in seconds.",
154-
}, []string{"agent_id", "username", "workspace_name", "derp_region", "preferred"}))
154+
}, []string{"agent_name", "username", "workspace_name", "derp_region", "preferred"}))
155155
err = registerer.Register(agentsConnectionLatenciesGauge)
156156
if err != nil {
157157
return nil, err
@@ -308,6 +308,28 @@ func AgentStats(ctx context.Context, logger slog.Logger, registerer prometheus.R
308308
return nil, err
309309
}
310310

311+
agentStatsTxBytesGauge := NewCachedGaugeVec(prometheus.NewGaugeVec(prometheus.GaugeOpts{
312+
Namespace: "coderd",
313+
Subsystem: "agentstats",
314+
Name: "tx_bytes",
315+
Help: "Agent Tx bytes",
316+
}, []string{"agent_name", "username", "workspace_name"}))
317+
err = registerer.Register(agentStatsTxBytesGauge)
318+
if err != nil {
319+
return nil, err
320+
}
321+
322+
agentStatsRxBytesGauge := NewCachedGaugeVec(prometheus.NewGaugeVec(prometheus.GaugeOpts{
323+
Namespace: "coderd",
324+
Subsystem: "agentstats",
325+
Name: "rx_bytes",
326+
Help: "Agent Rx bytes",
327+
}, []string{"agent_name", "username", "workspace_name"}))
328+
err = registerer.Register(agentStatsRxBytesGauge)
329+
if err != nil {
330+
return nil, err
331+
}
332+
311333
createdAfter := database.Now().Add(-duration)
312334
ctx, cancelFunc := context.WithCancel(ctx)
313335
ticker := time.NewTicker(duration)
@@ -323,12 +345,20 @@ func AgentStats(ctx context.Context, logger slog.Logger, registerer prometheus.R
323345
logger.Debug(ctx, "Agent metrics collection is starting")
324346
timer := prometheus.NewTimer(metricsCollectorAgentStats)
325347

326-
_, err := db.GetWorkspaceAgentStats(ctx, createdAfter)
348+
stats, err := db.GetWorkspaceAgentStatsAndLabels(ctx, createdAfter)
327349
if err != nil {
328350
logger.Error(ctx, "can't get agent stats", slog.Error(err))
329351
goto done
330352
}
331353

354+
for _, agentStat := range stats {
355+
agentStatsRxBytesGauge.WithLabelValues(VectorOperationAdd, float64(agentStat.WorkspaceTxBytes), agentStat.AgentName, agentStat.Username, agentStat.WorkspaceName)
356+
agentStatsTxBytesGauge.WithLabelValues(VectorOperationAdd, float64(agentStat.WorkspaceRxBytes), agentStat.AgentName, agentStat.Username, agentStat.WorkspaceName)
357+
}
358+
359+
agentStatsRxBytesGauge.Commit()
360+
agentStatsTxBytesGauge.Commit()
361+
332362
done:
333363
logger.Debug(ctx, "Agent metrics collection is done")
334364
metricsCollectorAgentStats.Observe(timer.ObserveDuration().Seconds())

0 commit comments

Comments
 (0)