repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

commit
fb91f3d
parent
7368dc3
author
Antonio Mika
date
2025-03-12 19:16:45 -0400 EDT
Cleanup prom
1 files changed,  +15, -2
M pkg/pssh/server.go
+15, -2
 1@@ -270,9 +270,22 @@ func (s *SSHServer) ListenAndServe() error {
 2 		}, []string{"command"})
 3 
 4 		go func() {
 5-			http.Handle("/metrics", promhttp.Handler())
 6-			err := http.ListenAndServe(s.Config.PromListenAddr, nil)
 7+			mux := http.NewServeMux()
 8+			mux.Handle("/metrics", promhttp.Handler())
 9+
10+			srv := &http.Server{Addr: s.Config.PromListenAddr, Handler: mux}
11+
12+			go func() {
13+				<-s.Ctx.Done()
14+				srv.Close()
15+			}()
16+
17+			err := srv.ListenAndServe()
18 			if err != nil {
19+				if errors.Is(err, http.ErrServerClosed) {
20+					return
21+				}
22+
23 				s.Logger.Error("prometheus", "err", err)
24 				panic(err)
25 			}