Remove max errors parameter

This commit is contained in:
David Newhall II 2019-09-25 00:12:09 -07:00
parent 4117da25cd
commit bdfec45579
8 changed files with 3 additions and 38 deletions

View File

@ -101,18 +101,6 @@ is provided so the application can be easily adapted to any environment.
This mode can also be combined with a "test database" in InfluxDB to
give yourself a "test config file" you may run ad-hoc to test changes.
max_errors default: 0
If you restart the UniFI controller, the poller will lose access until
it is restarted. Specifying a number greater than -1 for max_errors will
cause the poller to exit when it reaches the error count specified.
This problematic condition can be triggered by InfluxDB having issues
too. Generally only 1 error per interval is created, but if more than one
backend is having issues > 1 error could be generated per interval. Once
the poller exits, it is expected that something will restart it
automatically so it gets back in line; something is usually systemd,
docker or launchd. The default setting of 0 will cause an exit after
just 1 error. Recommended values are 0-5.
influx_url default: http://127.0.0.1:8086
This is the URL where the Influx web server is available.

View File

@ -31,12 +31,6 @@ quiet = false
# or a simple crontab to keep the timings accurate on UniFi Poller run intervals.
mode = "influx"
# If the poller experiences an error from the UniFi controller or from InfluxDB
# it will exit. If you do not want it to exit, change max_errors to -1. You can
# adjust the config to tolerate more errors by setting this to a higher value.
# Recommend setting this between 0 and 5. See man page for more explanation.
max_errors = 0
# InfluxDB does not require auth by default, so the user/password are probably unimportant.
influx_url = "http://127.0.0.1:8086"
influx_user = "unifi"

View File

@ -4,7 +4,6 @@
"debug": false,
"quiet": false,
"mode": "influx",
"max_errors": 0,
"influx_url": "http://127.0.0.1:8086",
"influx_user": "unifi",
"influx_pass": "unifi",

View File

@ -48,14 +48,6 @@
-->
<mode>influx</mode>
<!--
# If the poller experiences an error from the UniFi controller or from InfluxDB
# it will exit. If you do not want it to exit, change max_errors to -1. You can
# adjust the config to tolerate more errors by setting this to a higher value.
# Recommend setting this between 0 and 5. See man page for more explanation.
-->
<max_errors>0</max_errors>
<!--
# InfluxDB does not require auth by default, so the user/password are probably unimportant.
-->

View File

@ -32,12 +32,6 @@ quiet: false
# or a simple crontab to keep the timings accurate on UniFi Poller run intervals.
mode: "influx"
# If the poller experiences an error from the UniFi controller or from InfluxDB
# it will exit. If you do not want it to exit, change max_errors to -1. You can
# adjust the config to tolerate more errors by setting this to a higher value.
# Recommend setting this between 0 and 5. See man page for more explanation.
max_errors: 0
# InfluxDB does not require auth by default, so the user/password are probably unimportant.
influx_url: "http://127.0.0.1:8086"
influx_user: "unifi"

View File

@ -69,7 +69,6 @@ type Metrics struct {
// This is all of the data stored in the config file.
// Any with explicit defaults have _omitempty on json and toml tags.
type Config struct {
MaxErrors int `json:"max_errors" toml:"max_errors" xml:"max_errors" yaml:"max_errors" env:"MAX_ERRORS"`
Interval Duration `json:"interval,_omitempty" toml:"interval,_omitempty" xml:"interval" yaml:"interval" env:"POLLING_INTERVAL"`
Debug bool `json:"debug" toml:"debug" xml:"debug" yaml:"debug" env:"DEBUG_MODE"`
Quiet bool `json:"quiet,_omitempty" toml:"quiet,_omitempty" xml:"quiet" yaml:"quiet" env:"QUIET_MODE"`

View File

@ -11,7 +11,7 @@ import (
func (u *UnifiPoller) LogError(err error, prefix string) {
if err != nil {
u.errorCount++
_ = log.Output(2, fmt.Sprintf("[ERROR] (%v/%v) %v: %v", u.errorCount, u.Config.MaxErrors, prefix, err))
_ = log.Output(2, fmt.Sprintf("[ERROR] %v: %v", prefix, err))
}
}

View File

@ -62,9 +62,8 @@ func (u *UnifiPoller) PollController() error {
// Only run this if the authentication procedure didn't return error.
_ = u.CollectAndReport()
}
if u.Config.MaxErrors >= 0 && u.errorCount > u.Config.MaxErrors {
return fmt.Errorf("reached maximum error count, stopping poller (%d > %d)",
u.errorCount, u.Config.MaxErrors)
if u.errorCount > 0 {
return fmt.Errorf("controller or influxdb errors, stopping poller")
}
}
return nil