From 2f7b64cd31b1a083a09d0768a73763512ebe950a Mon Sep 17 00:00:00 2001 From: Scott Leggett Date: Mon, 14 Oct 2024 21:38:22 +0800 Subject: [PATCH] feat: export metrics related to new limits --- internal/sshserver/sessionhandler.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/internal/sshserver/sessionhandler.go b/internal/sshserver/sessionhandler.go index da208296..5da1e3b4 100644 --- a/internal/sshserver/sessionhandler.go +++ b/internal/sshserver/sessionhandler.go @@ -28,6 +28,14 @@ var ( Name: "sshportal_sessions_total", Help: "The total number of ssh-portal sessions started", }) + execSessions = promauto.NewGauge(prometheus.GaugeOpts{ + Name: "sshportal_exec_sessions", + Help: "Current number of ssh-portal exec sessions", + }) + logsSessions = promauto.NewGauge(prometheus.GaugeOpts{ + Name: "sshportal_logs_sessions", + Help: "Current number of ssh-portal logs sessions", + }) ) // authCtxValues extracts the context values set by the authhandler. @@ -246,6 +254,9 @@ func startClientKeepalive(ctx context.Context, cancel context.CancelFunc, func doLogs(ctx ssh.Context, log *slog.Logger, s ssh.Session, deployment, container string, follow bool, tailLines int64, c K8SAPIService) { + // update metrics + logsSessions.Inc() + defer logsSessions.Dec() // Wrap the ssh.Context so we can cancel goroutines started from this // function without affecting the SSH session. childCtx, cancel := context.WithCancel(ctx) @@ -280,6 +291,9 @@ func doLogs(ctx ssh.Context, log *slog.Logger, s ssh.Session, deployment, func doExec(ctx ssh.Context, log *slog.Logger, s ssh.Session, deployment, container string, cmd []string, c K8SAPIService, pty bool, winch <-chan ssh.Window) { + // update metrics + execSessions.Inc() + defer execSessions.Dec() err := c.Exec(ctx, s.User(), deployment, container, cmd, s, s.Stderr(), pty, winch) if err != nil {