13647: Use cluster config instead of custom keepstore config.
[arvados.git] / services / health / main.go
index b6358deefcf8d333971435b2a9ede4021bc68f54..039954a000d0a6bf381b043dd5cc25459cb7c843 100644 (file)
@@ -1,55 +1,29 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
 package main
 
 import (
-       "flag"
-       "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"
 )
 
-func main() {
-       configFile := flag.String("config", arvados.DefaultConfigFile, "`path` to arvados configuration file")
-       flag.Parse()
+var (
+       version             = "dev"
+       command cmd.Handler = service.Command(arvados.ServiceNameHealth, newHandler)
+)
 
-       log.SetFormatter(&log.JSONFormatter{
-               TimestampFormat: "2006-01-02T15:04:05.000000000Z07:00",
-       })
-       cfg, err := arvados.GetConfig(*configFile)
-       if err != nil {
-               log.Fatal(err)
-       }
-       clusterCfg, err := cfg.GetCluster("")
-       if err != nil {
-               log.Fatal(err)
-       }
-       nodeCfg, err := clusterCfg.GetThisSystemNode()
-       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))
 }