| 123456789101112131415161718192021222324252627282930313233343536373839 | package telemetryimport (	"fmt"	"net/http"	"github.com/prometheus/client_golang/prometheus"	"github.com/prometheus/client_golang/prometheus/promauto"	"github.com/prometheus/client_golang/prometheus/promhttp")var (	//LightbulbActivations is a counter for the number of times the screen	// has changed power states	LightbulbActivations = promauto.NewCounter(prometheus.CounterOpts{		Name: "occupancyd_lightbulb_activations",		Help: "The number of times the screen has changed power states",	})	//OccupancyActivations is a counter for the number of times the occupancy	// sensor has changed state	OccupancyActivations = promauto.NewCounter(prometheus.CounterOpts{		Name: "occupancyd_occupancy_activations",		Help: "The number of times the occupancy sensor has changed state",	})	//IdleTime is a counter for the number of idle seconds, reported by xgb	IdleTime = promauto.NewGauge(prometheus.GaugeOpts{		Name: "occupancyd_idle_seconds",		Help: "Number of seconds x11 has been idle",	}))//PrometheusMetricsHandler Turn on promtheus metrics handlerfunc PrometheusMetricsHandler(promPort int) {	serveAddress := fmt.Sprintf(":%d", promPort)	http.Handle("/metrics", promhttp.Handler())	http.ListenAndServe(serveAddress, nil)}
 |