X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/91db2d8fd32bc3f6c2a26ffc37f6591b1e5f380b..9f768708156197decac1e6dc5dedf3a730a06fad:/services/health/main.go diff --git a/services/health/main.go b/services/health/main.go index 7f4d6481e0..376d4830b1 100644 --- a/services/health/main.go +++ b/services/health/main.go @@ -1,28 +1,66 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + package main import ( + "flag" + "fmt" + "net/http" + "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" + 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", }) - sysConf, err := arvados.GetSystemConfig() + 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.GetThisSystemNode() if err != nil { log.Fatal(err) } + log := log.WithField("Service", "Health") srv := &httpserver.Server{ - Addr: ":", // FIXME: should be dictated by Health on this SystemNode - Handler: &health.Aggregator{ - SystemConfig: sysConf, + 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") + }, + }, }, } - srv.HandleFunc() if err := srv.Start(); err != nil { log.Fatal(err) }