Compare commits

...

2 Commits
v0.4.0 ... main

Author SHA1 Message Date
28a0fe8f53 docs(readme): docs for wait parameter
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-22 16:17:09 +01:00
1492c8ca20 feat: adds wait parameter for a sleep time between download and upload job
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2021-11-22 16:14:32 +01:00
2 changed files with 16 additions and 1 deletions

View File

@ -49,6 +49,7 @@ Flags:
--time int time in seconds to transmit for (default 5)
--timeout duration scraping timeout (default 1m0s)
-v, --version print version
--wait duration time to wait between download and upload runs (default 1s)
```
### Configuration
@ -69,6 +70,7 @@ colors = false # disable colors. this is only usable if log.json is set to false
[iperf3] # straight up iperf3 command line flag options
time = 10 # this sets the --time flag of iperf3 to 10
wait = "10s" # wait time between download and upload scrape
```
#### Environment variables

15
main.go
View File

@ -57,7 +57,8 @@ type config struct {
Colors bool `validate:"required"`
}
Iperf3 struct {
Time int `validate:"required"`
Time int `validate:"required"`
Wait time.Duration `validation:"required,min=1ms"`
}
}
@ -268,15 +269,20 @@ func probeHandler(w http.ResponseWriter, r *http.Request) {
logger.Info().Msg("getting download metrics")
if err := download(ctx, t, logger); err != nil {
scrapeErrors.Inc()
logger.Error().Err(err).Msg("could not create download metrics")
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
logger.Debug().Dur("wait", c.Iperf3.Wait).Msg("waiting")
time.Sleep(c.Iperf3.Wait)
logger.Info().Msg("getting upload metrics")
if err := upload(ctx, t, logger); err != nil {
scrapeErrors.Inc()
logger.Error().Err(err).Msg("could not create upload metrics")
http.Error(w, err.Error(), http.StatusInternalServerError)
@ -350,6 +356,13 @@ func init() { //nolint:gochecknoinits,funlen
}
viper.SetDefault("iperf3.time", 5) //nolint:gomnd
// IPerf3.Wait.
rootCmd.PersistentFlags().Duration("wait", time.Second, "time to wait between download and upload runs")
if err := viper.BindPFlag("iperf3.wait", rootCmd.PersistentFlags().Lookup("wait")); err != nil {
log.Fatal().Err(err).Msg("could not bind flag")
}
}
func initConfig() {