@@ -72,7 +72,9 @@ type Server struct {
72
72
connCountSSHSession atomic.Int64
73
73
74
74
prometheusRegistry * prometheus.Registry
75
- metrics * sshServerMetrics
75
+
76
+ metrics * sshServerMetrics
77
+ sessionMetrics sessionMetrics
76
78
}
77
79
78
80
func NewServer (ctx context.Context , logger slog.Logger , prometheusRegistry * prometheus.Registry , fs afero.Fs , maxTimeout time.Duration , x11SocketDir string ) (* Server , error ) {
@@ -95,6 +97,7 @@ func NewServer(ctx context.Context, logger slog.Logger, prometheusRegistry *prom
95
97
unixForwardHandler := & forwardedUnixHandler {log : logger }
96
98
97
99
metrics := newSSHServerMetrics (prometheusRegistry )
100
+ sessionMetrics := newSessionMetrics (prometheusRegistry )
98
101
s := & Server {
99
102
listeners : make (map [net.Listener ]struct {}),
100
103
fs : fs ,
@@ -105,6 +108,7 @@ func NewServer(ctx context.Context, logger slog.Logger, prometheusRegistry *prom
105
108
106
109
prometheusRegistry : prometheusRegistry ,
107
110
metrics : metrics ,
111
+ sessionMetrics : sessionMetrics ,
108
112
}
109
113
110
114
s .srv = & ssh.Server {
@@ -206,7 +210,7 @@ func (s *Server) sessionHandler(session ssh.Session) {
206
210
return
207
211
}
208
212
209
- m := metricsForSession (magicType (session ))
213
+ m := metricsForSession (s . sessionMetrics , magicType (session ))
210
214
err := s .sessionStart (session , m , extraEnv )
211
215
var exitError * exec.ExitError
212
216
if xerrors .As (err , & exitError ) {
0 commit comments