Skip to content

Commit f416287

Browse files
committed
PR comments part 1
1 parent db725a3 commit f416287

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

agent/agentssh/agentssh.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,25 +244,34 @@ func (s *Server) sessionStart(session ssh.Session, extraEnv []string) (retErr er
244244
}
245245

246246
magicTypeLabel := magicTypeMetricLabel(magicType)
247+
sshPty, windowSize, isPty := session.Pty()
247248

248249
cmd, err := s.CreateCommand(ctx, session.RawCommand(), env)
249250
if err != nil {
250-
s.metrics.sessionErrors.WithLabelValues(magicTypeLabel, "create_command").Add(1)
251+
ptyLabel := "no"
252+
if isPty {
253+
ptyLabel = "yes"
254+
}
255+
s.metrics.sessionErrors.WithLabelValues(magicTypeLabel, ptyLabel, "create_command").Add(1)
251256
return err
252257
}
253258

254259
if ssh.AgentRequested(session) {
255260
l, err := ssh.NewAgentListener()
256261
if err != nil {
257-
s.metrics.sessionErrors.WithLabelValues(magicTypeLabel, "listener").Add(1)
262+
ptyLabel := "no"
263+
if isPty {
264+
ptyLabel = "yes"
265+
}
266+
267+
s.metrics.sessionErrors.WithLabelValues(magicTypeLabel, ptyLabel, "listener").Add(1)
258268
return xerrors.Errorf("new agent listener: %w", err)
259269
}
260270
defer l.Close()
261271
go ssh.ForwardAgentConnections(l, session)
262272
cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", "SSH_AUTH_SOCK", l.Addr().String()))
263273
}
264274

265-
sshPty, windowSize, isPty := session.Pty()
266275
if isPty {
267276
return s.startPTYSession(session, magicTypeLabel, cmd, sshPty, windowSize)
268277
}

coderd/prometheusmetrics/aggregator.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ type annotatedMetric struct {
6363

6464
var _ prometheus.Collector = new(MetricsAggregator)
6565

66+
func (am *annotatedMetric) is(req updateRequest, m agentsdk.AgentMetric) bool {
67+
return am.username == req.username && am.workspaceName == req.workspaceName && am.agentName == req.agentName && am.Name == m.Name && slices.Equal(am.Labels, m.Labels)
68+
}
69+
6670
func NewMetricsAggregator(logger slog.Logger, registerer prometheus.Registerer, duration time.Duration) (*MetricsAggregator, error) {
6771
metricsCleanupInterval := defaultMetricsCleanupInterval
6872
if duration > 0 {
@@ -123,7 +127,7 @@ func (ma *MetricsAggregator) Run(ctx context.Context) func() {
123127
UpdateLoop:
124128
for _, m := range req.metrics {
125129
for i, q := range ma.queue {
126-
if q.username == req.username && q.workspaceName == req.workspaceName && q.agentName == req.agentName && q.Name == m.Name && slices.Equal(q.Labels, m.Labels) {
130+
if q.is(req, m) {
127131
ma.queue[i].AgentMetric.Value = m.Value
128132
ma.queue[i].expiryDate = req.timestamp.Add(ma.metricsCleanupInterval)
129133
continue UpdateLoop

0 commit comments

Comments
 (0)