1-wire-temp/main.go

48 lines
874 B
Go

package main
import (
"flag"
"fmt"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
"net/http"
"os"
"time"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
var (
sensor string
currentTemp = promauto.NewGauge(prometheus.GaugeOpts{
Name: "current_temp",
Help: "The current temperature",
})
)
func init() {
flag.StringVar(&sensor, "s", "", "The sensor id as it shows up in /sys/bus/w1/devices/.")
flag.Parse()
}
func main() {
if sensor == "" {
fmt.Println("Please provide a sensor id via the -s flag.")
os.Exit(1)
}
fmt.Printf("Using sensor %s\n", sensor)
go func() {
for {
time.Sleep(5 * time.Second)
ParseAndSetTemp()
}
}()
fmt.Println("Starting http server on port 2112")
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":2112", nil)
}