From 627cd4751901ff3000b5ed93ded49ac20fd9be1b Mon Sep 17 00:00:00 2001 From: Kevin Lyda <kevin@ie.suberic.net> Date: Sat, 11 Feb 2017 17:14:24 +0000 Subject: [PATCH] Add a sleep cycle param. --- cmd/gqgmcd/main.go | 3 ++- config/config.go | 2 ++ server/metrics/metrics.go | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/cmd/gqgmcd/main.go b/cmd/gqgmcd/main.go index 62892a5..ca140a5 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 22a0be3..ee48247 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 cc7368f..ff43209 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) } } -- GitLab