X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6fe8e52020d421797306e5c6536afbcee761510a..9cdec66d5b0238e9d99c1e8e1d5c8571d798689d:/services/health/main.go diff --git a/services/health/main.go b/services/health/main.go index 1d2ec47a6a..bc57d36d04 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.arvados.org/arvados.git/lib/cmd" + "git.arvados.org/arvados.git/lib/service" + "git.arvados.org/arvados.git/sdk/go/arvados" + "git.arvados.org/arvados.git/sdk/go/health" + "github.com/prometheus/client_golang/prometheus" +) - "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" +var ( + version = "dev" + command cmd.Handler = service.Command(arvados.ServiceNameHealth, newHandler) ) -var version = "dev" +func newHandler(ctx context.Context, cluster *arvados.Cluster, _ string, _ *prometheus.Registry) service.Handler { + return &health.Aggregator{Cluster: cluster} +} 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) - - 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) - } - - 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) - } + os.Exit(command.RunCommand(os.Args[0], os.Args[1:], os.Stdin, os.Stdout, os.Stderr)) }