diff --git a/cmd/gqgmcd/main.go b/cmd/gqgmcd/main.go index 62892a5fc77ac5d8f9513e8db15a52bb3acf3519..ca140a5f53db9bab6e811f3631a0f5845e8d853d 100644 --- a/cmd/gqgmcd/main.go +++ b/cmd/gqgmcd/main.go @@ -23,6 +23,7 @@ var device = flag.String("device", "/dev/gqgmc", "Device for Geiger Counter") var model = flag.String("model", "gqgmc", "Model of Geiger Counter") var templateDir = flag.String("template-dir", "templates", "Template directory") var staticDir = flag.String("static-dir", "static", "Static files directory") +var sleepCycle = flag.Int64("sleep-cycle", 5, "Seconds to sleep per cycle.") var cfg = flag.String("config", "gqgmc.conf", "Config file") func main() { @@ -39,6 +40,6 @@ func main() { p.Register() m := metrics.Register(gc) - go m.Gather() + go m.Gather(c.SleepCycle) log.Fatal(http.ListenAndServe(c.ListenAddress, nil)) } diff --git a/config/config.go b/config/config.go index 22a0be3865ff497460b6dac3d3eb345bd996565d..ee482474a7e66640b2ae0a941838dd9c947764b9 100644 --- a/config/config.go +++ b/config/config.go @@ -19,6 +19,7 @@ type Config struct { Model string `mapstructure:"model"` TemplateDir string `mapstructure:"template_dir"` StaticDir string `mapstructure:"static_dir"` + SleepCycle int64 `mapstructure:"sleep_cycle"` } func setDefaults() { @@ -27,6 +28,7 @@ func setDefaults() { viper.BindPFlag("model", pflag.Lookup("model")) viper.BindPFlag("template_dir", pflag.Lookup("template-dir")) viper.BindPFlag("static_dir", pflag.Lookup("static-dir")) + viper.BindPFlag("sleep_cycle", pflag.Lookup("sleep-cycle")) } // ReadConfig reads the client configuration from a file into a Config struct. diff --git a/server/metrics/metrics.go b/server/metrics/metrics.go index cc7368ffe892c01cc781e8ef67742b9209e8a6e5..ff4320951dd1e82fa3d687b13f7df8311b4fbce1 100644 --- a/server/metrics/metrics.go +++ b/server/metrics/metrics.go @@ -69,7 +69,7 @@ func Register(gc geiger.Counter) *Metrics { } // Gather loop to gather metrics -func (m *Metrics) Gather() { +func (m *Metrics) Gather(sleep int64) { var ( cpm, cps uint16 volts int16 @@ -97,6 +97,6 @@ func (m *Metrics) Gather() { m.volts.WithLabelValues(m.gc.Serial()).Observe(float64(volts)) } m.errs.WithLabelValues(m.gc.Serial()).Set(float64(errCt)) - time.Sleep(5 * time.Second) + time.Sleep(time.Duration(sleep) * time.Second) } }