-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathmain.go
57 lines (46 loc) · 1.05 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
54
55
56
57
package main
import (
"context"
"os"
"os/signal"
"syscall"
"github.com/alrevuelta/eth-pools-metrics/config"
"github.com/alrevuelta/eth-pools-metrics/metrics"
"github.com/alrevuelta/eth-pools-metrics/price"
"github.com/alrevuelta/eth-pools-metrics/prometheus"
log "github.com/sirupsen/logrus"
)
func main() {
config, err := config.NewCliConfig()
if err != nil {
log.Fatal(err)
}
logLevel, err := log.ParseLevel(config.Verbosity)
if err != nil {
log.Fatal(err)
}
log.SetLevel(logLevel)
prometheus.Run(config.PrometheusPort)
metrics, err := metrics.NewMetrics(
context.Background(),
config)
if err != nil {
log.Fatal(err)
}
price, err := price.NewPrice(config.Postgres)
if err != nil {
log.Fatal(err)
}
go price.Run()
metrics.Run()
// Wait for signal.
sigCh := make(chan os.Signal, 1)
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM, os.Interrupt)
for {
sig := <-sigCh
if sig == syscall.SIGINT || sig == syscall.SIGTERM || sig == os.Interrupt || sig == os.Kill {
break
}
}
log.Info("Stopping eth-pools-metrics")
}