forked from cortexproject/cortex
/
main.go
53 lines (44 loc) · 1.15 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main
import (
"flag"
"os"
"github.com/go-kit/kit/log/level"
"google.golang.org/grpc"
"github.com/weaveworks/common/middleware"
"github.com/weaveworks/common/server"
"github.com/weaveworks/cortex/pkg/configs/api"
"github.com/weaveworks/cortex/pkg/configs/db"
"github.com/weaveworks/cortex/pkg/util"
)
func main() {
var (
serverConfig = server.Config{
MetricsNamespace: "cortex",
// XXX: Cargo-culted from distributor. Probably don't need this
// for configs just yet?
GRPCMiddleware: []grpc.UnaryServerInterceptor{
middleware.ServerUserHeaderInterceptor,
},
}
dbConfig db.Config
logLevel util.LogLevel
)
util.RegisterFlags(&serverConfig, &dbConfig, &logLevel)
flag.Parse()
util.InitLogger(logLevel.AllowedLevel)
db, err := db.New(dbConfig)
if err != nil {
level.Error(util.Logger).Log("msg", "error initializing database", "err", err)
os.Exit(1)
}
defer db.Close()
a := api.New(db)
server, err := server.New(serverConfig)
if err != nil {
level.Error(util.Logger).Log("msg", "error initializing server", "err", err)
os.Exit(1)
}
defer server.Shutdown()
a.RegisterRoutes(server.HTTP)
server.Run()
}