Skip to content

Commit 34f07fc

Browse files
committed
refactor
1 parent 7b26267 commit 34f07fc

File tree

2 files changed

+34
-31
lines changed

2 files changed

+34
-31
lines changed

agent/agentssh/agentssh.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ type Server struct {
7373

7474
prometheusRegistry *prometheus.Registry
7575

76-
metrics *sshServerMetrics
77-
sessionMetrics sessionMetrics
76+
metrics *sshServerMetrics
7877
}
7978

8079
func NewServer(ctx context.Context, logger slog.Logger, prometheusRegistry *prometheus.Registry, fs afero.Fs, maxTimeout time.Duration, x11SocketDir string) (*Server, error) {
@@ -97,7 +96,6 @@ func NewServer(ctx context.Context, logger slog.Logger, prometheusRegistry *prom
9796
unixForwardHandler := &forwardedUnixHandler{log: logger}
9897

9998
metrics := newSSHServerMetrics(prometheusRegistry)
100-
sessionMetrics := newSessionMetrics(prometheusRegistry)
10199
s := &Server{
102100
listeners: make(map[net.Listener]struct{}),
103101
fs: fs,
@@ -106,8 +104,7 @@ func NewServer(ctx context.Context, logger slog.Logger, prometheusRegistry *prom
106104
logger: logger,
107105
x11SocketDir: x11SocketDir,
108106

109-
metrics: metrics,
110-
sessionMetrics: sessionMetrics,
107+
metrics: metrics,
111108
}
112109

113110
s.srv = &ssh.Server{
@@ -209,7 +206,7 @@ func (s *Server) sessionHandler(session ssh.Session) {
209206
return
210207
}
211208

212-
m := metricsForSession(s.sessionMetrics, magicType(session))
209+
m := metricsForSession(s.metrics.sessions, magicType(session))
213210
err := s.sessionStart(session, m, extraEnv)
214211
var exitError *exec.ExitError
215212
if xerrors.As(err, &exitError) {

agent/agentssh/metrics.go

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,35 @@ type sshServerMetrics struct {
2121
// X11
2222
x11SocketDirError prometheus.Counter
2323
x11XauthorityError prometheus.Counter
24+
25+
sessions sessionMetrics
2426
}
2527

28+
type sessionMetricsObject struct {
29+
// Agent sessions
30+
agentCreateCommandError prometheus.Counter
31+
agentListenerError prometheus.Counter
32+
startPTYSession prometheus.Counter
33+
startNonPTYSession prometheus.Counter
34+
sessionError prometheus.Counter
35+
36+
// Non-PTY sessions
37+
nonPTYStdinPipeError prometheus.Counter
38+
nonPTYStdinIoCopyError prometheus.Counter
39+
nonPTYCmdStartError prometheus.Counter
40+
41+
// PTY sessions
42+
ptyMotdError prometheus.Counter
43+
ptyCmdStartError prometheus.Counter
44+
ptyCloseError prometheus.Counter
45+
ptyResizeError prometheus.Counter
46+
ptyInputIoCopyError prometheus.Counter
47+
ptyOutputIoCopyError prometheus.Counter
48+
ptyWaitError prometheus.Counter
49+
}
50+
51+
type sessionMetrics map[string]sessionMetricsObject
52+
2653
func newSSHServerMetrics(registerer prometheus.Registerer) *sshServerMetrics {
2754
connectionFailedCallback := prometheus.NewCounter(prometheus.CounterOpts{
2855
Namespace: "agent", Subsystem: "ssh_server", Name: "connection_failed_callback",
@@ -69,6 +96,8 @@ func newSSHServerMetrics(registerer prometheus.Registerer) *sshServerMetrics {
6996
})
7097
registerer.MustRegister(x11XauthorityError)
7198

99+
sessions := newSessionMetrics(registerer)
100+
72101
return &sshServerMetrics{
73102
connectionFailedCallback: connectionFailedCallback,
74103
localPortForwardingCallback: localPortForwardingCallback,
@@ -79,34 +108,11 @@ func newSSHServerMetrics(registerer prometheus.Registerer) *sshServerMetrics {
79108
sftpServerError: sftpServerError,
80109
x11SocketDirError: x11SocketDirError,
81110
x11XauthorityError: x11XauthorityError,
82-
}
83-
}
84-
85-
type sessionMetricsObject struct {
86-
// Agent sessions
87-
agentCreateCommandError prometheus.Counter
88-
agentListenerError prometheus.Counter
89-
startPTYSession prometheus.Counter
90-
startNonPTYSession prometheus.Counter
91-
sessionError prometheus.Counter
92-
93-
// Non-PTY sessions
94-
nonPTYStdinPipeError prometheus.Counter
95-
nonPTYStdinIoCopyError prometheus.Counter
96-
nonPTYCmdStartError prometheus.Counter
97111

98-
// PTY sessions
99-
ptyMotdError prometheus.Counter
100-
ptyCmdStartError prometheus.Counter
101-
ptyCloseError prometheus.Counter
102-
ptyResizeError prometheus.Counter
103-
ptyInputIoCopyError prometheus.Counter
104-
ptyOutputIoCopyError prometheus.Counter
105-
ptyWaitError prometheus.Counter
112+
sessions: sessions,
113+
}
106114
}
107115

108-
type sessionMetrics map[string]sessionMetricsObject
109-
110116
func newSessionMetrics(registerer prometheus.Registerer) sessionMetrics {
111117
sm := sessionMetrics{}
112118
for _, magicType := range []string{MagicSessionTypeVSCode, MagicSessionTypeJetBrains, "ssh", "unknown"} {

0 commit comments

Comments
 (0)