Files
TPLinkSwitchExporter/main.go

45 lines
998 B
Go

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))
}