X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/911abf131639401b2ccfd23a6bc3ec983f7ed8f4..f04693da1811e670d4cbb981debeecf14d79137c:/services/health/main.go diff --git a/services/health/main.go b/services/health/main.go index 1d2ec47a6a..039954a000 100644 --- a/services/health/main.go +++ b/services/health/main.go @@ -5,67 +5,25 @@ package main import ( - "flag" - "fmt" - "net/http" + "context" + "os" + "git.curoverse.com/arvados.git/lib/cmd" + "git.curoverse.com/arvados.git/lib/service" "git.curoverse.com/arvados.git/sdk/go/arvados" "git.curoverse.com/arvados.git/sdk/go/health" - "git.curoverse.com/arvados.git/sdk/go/httpserver" - log "github.com/Sirupsen/logrus" + "github.com/prometheus/client_golang/prometheus" ) -var version = "dev" - -func main() { - configFile := flag.String("config", arvados.DefaultConfigFile, "`path` to arvados configuration file") - getVersion := flag.Bool("version", false, "Print version information and exit.") - flag.Parse() - - // Print version information if requested - if *getVersion { - fmt.Printf("arvados-health %s\n", version) - return - } - - log.SetFormatter(&log.JSONFormatter{ - TimestampFormat: "2006-01-02T15:04:05.000000000Z07:00", - }) - log.Printf("arvados-health %s started", version) +var ( + version = "dev" + command cmd.Handler = service.Command(arvados.ServiceNameHealth, newHandler) +) - cfg, err := arvados.GetConfig(*configFile) - if err != nil { - log.Fatal(err) - } - clusterCfg, err := cfg.GetCluster("") - if err != nil { - log.Fatal(err) - } - nodeCfg, err := clusterCfg.GetNodeProfile("") - if err != nil { - log.Fatal(err) - } +func newHandler(ctx context.Context, cluster *arvados.Cluster, _ string, _ *prometheus.Registry) service.Handler { + return &health.Aggregator{Cluster: cluster} +} - log := log.WithField("Service", "Health") - srv := &httpserver.Server{ - Addr: nodeCfg.Health.Listen, - Server: http.Server{ - Handler: &health.Aggregator{ - Config: cfg, - Log: func(req *http.Request, err error) { - log.WithField("RemoteAddr", req.RemoteAddr). - WithField("Path", req.URL.Path). - WithError(err). - Info("HTTP request") - }, - }, - }, - } - if err := srv.Start(); err != nil { - log.Fatal(err) - } - log.WithField("Listen", srv.Addr).Info("listening") - if err := srv.Wait(); err != nil { - log.Fatal(err) - } +func main() { + os.Exit(command.RunCommand(os.Args[0], os.Args[1:], os.Stdin, os.Stdout, os.Stderr)) }