package main import ( "log" "net/http" "os" "github.com/joho/godotenv" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" "minie4.de/tplinkswitchexporter/PrometheusCollector" "minie4.de/tplinkswitchexporter/TPLinkClient" ) func main() { godotenv.Load() var ( switchMac = os.Getenv("TPLINK_MAC") port = os.Getenv("LISTEN_PORT") ) if port == "" { port = "9717" } if switchMac == "" { log.Fatal("Env variable 'TPLINK_MAC' not set!") } log.Println("Initializing TP-Link Exporter") log.Printf("Switch MAC: '%s'", switchMac) // Create TPLink Client client := TPLinkClient.NewClient(switchMac) // Create and register Prometheus Collector collector := PrometheusCollector.NewPrometheusCollector(&client) prometheus.MustRegister(collector) // Start Web-Server http.Handle("/metrics", promhttp.Handler()) log.Printf("Listening on http://0.0.0.0:%s", port) log.Fatal(http.ListenAndServe(":"+port, nil)) }