9 "git.curoverse.com/arvados.git/sdk/go/arvados"
10 "git.curoverse.com/arvados.git/sdk/go/health"
11 "git.curoverse.com/arvados.git/sdk/go/httpserver"
12 log "github.com/Sirupsen/logrus"
18 configFile := flag.String("config", arvados.DefaultConfigFile, "`path` to arvados configuration file")
19 getVersion := flag.Bool("version", false, "Print version information and exit.")
22 // Print version information if requested
24 fmt.Printf("Version: %s\n", version)
28 log.SetFormatter(&log.JSONFormatter{
29 TimestampFormat: "2006-01-02T15:04:05.000000000Z07:00",
31 log.Printf("arvados health %q started", version)
33 cfg, err := arvados.GetConfig(*configFile)
37 clusterCfg, err := cfg.GetCluster("")
41 nodeCfg, err := clusterCfg.GetThisSystemNode()
46 log := log.WithField("Service", "Health")
47 srv := &httpserver.Server{
48 Addr: nodeCfg.Health.Listen,
50 Handler: &health.Aggregator{
52 Log: func(req *http.Request, err error) {
53 log.WithField("RemoteAddr", req.RemoteAddr).
54 WithField("Path", req.URL.Path).
61 if err := srv.Start(); err != nil {
64 log.WithField("Listen", srv.Addr).Info("listening")
65 if err := srv.Wait(); err != nil {