package cmd import ( "flag" "fmt" "github.com/portainer/kubesolo-os/update/pkg/metrics" "github.com/portainer/kubesolo-os/update/pkg/state" ) // Metrics starts the Prometheus-compatible metrics HTTP server. func Metrics(args []string) error { fs := flag.NewFlagSet("metrics", flag.ExitOnError) listenAddr := fs.String("listen", ":9100", "Metrics HTTP listen address") grubenvPath := fs.String("grubenv", "/boot/grub/grubenv", "Path to grubenv file") statePath := fs.String("state", state.DefaultPath, "Path to update state.json") if err := fs.Parse(args); err != nil { return fmt.Errorf("parse flags: %w", err) } srv := metrics.NewServer(*listenAddr, *grubenvPath) srv.SetStatePath(*statePath) return srv.ListenAndServe() }