feat(api): prepare for svc implemention

This commit is contained in:
neo-f
2023-03-23 15:44:57 +08:00
parent a56f0b8150
commit 005a13d8a5
8 changed files with 277 additions and 101 deletions

View File

@@ -3,7 +3,6 @@ package server
import (
"context"
"fmt"
"net/http"
"os"
"os/signal"
"sync"
@@ -12,7 +11,6 @@ import (
"octopus/internal/config"
"octopus/pkg/logger"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/rs/zerolog/log"
"github.com/spf13/cobra"
)
@@ -40,28 +38,6 @@ var CmdRun = &cobra.Command{
}
}()
prometheusAddr := fmt.Sprintf(":%d", config.Get().PrometheusPort)
mux := http.NewServeMux()
mux.Handle("/metrics", promhttp.Handler())
server := &http.Server{Addr: prometheusAddr, Handler: mux}
wg.Add(1)
go func() {
defer wg.Done()
if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatal().Err(err).Msg("failed to start prometheus server")
}
}()
wg.Add(1)
go func() {
defer wg.Done()
<-ctx.Done()
if err := server.Shutdown(ctx); err != nil {
log.Fatal().Err(err).Msg("failed to shutdown prometheus server")
}
}()
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)