| 123456789101112131415161718192021222324252627282930313233343536373839 | 
							- package telemetry
 
- import (
 
- 	"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 handler
 
- func PrometheusMetricsHandler(promPort int) {
 
- 	serveAddress := fmt.Sprintf(":%d", promPort)
 
- 	http.Handle("/metrics", promhttp.Handler())
 
- 	http.ListenAndServe(serveAddress, nil)
 
- }
 
 
  |