pod-volume-cleaner/cmd/pod-cleaner/main.go

45 lines
1.0 KiB
Go

package main
import (
"flag"
"github.com/cyrilix/pod-cleaner/pkg/cleaner"
"go.uber.org/zap"
"github.com/prometheus/client_golang/prometheus/promhttp"
"log"
"net/http"
)
func main() {
var metricPath string
var metricPort string
var logfile string
flag.StringVar(&metricPath, "metric-path", "/metrics", "Url path for metrics")
flag.StringVar(&metricPort, "metric-port", ":9098", "Http port to expose metrics")
flag.StringVar(&logfile, "log-file", "/var/syslog", "Log file to watch for orphan messages")
logLevel := zap.LevelFlag("log", zap.InfoLevel, "log level")
flag.Parse()
config := zap.NewDevelopmentConfig()
config.Level = zap.NewAtomicLevelAt(*logLevel)
lgr, err := config.Build()
if err != nil {
log.Fatalf("unable to init logger: %v", err)
}
defer lgr.Sync()
zap.ReplaceGlobals(lgr)
c := cleaner.NewPodWatcher("log-file")
defer c.Close()
go c.Watch()
http.Handle(metricPath, promhttp.Handler())
err = http.ListenAndServe(metricPort, nil)
if err != nil {
log.Panicf("unable to start prometheus listener: %v", err)
}
}