mirror of
https://github.com/coredns/coredns.git
synced 2025-11-01 10:43:17 -04:00
plugin/health: implement dyn health checks (#1214)
Implement health.Healther in erratic and kubernetes plugin. The kubernetes' healtcheck is only performed on startup - i.e. turn healthy after the initial loading. Erratic follow the drop count: every query%drop turns the healthcheck unhealthy. Fixes: #985
This commit is contained in:
@@ -25,6 +25,10 @@ erratic {
|
||||
* `delay`: delay 1 per **AMOUNT** of queries for **DURATION**, the default for **AMOUNT** is 2 and
|
||||
the default for **DURATION** is 100ms.
|
||||
|
||||
## Health
|
||||
|
||||
This plugin implements dynamic health checking. For every dropped query it turns unhealthy.
|
||||
|
||||
## Examples
|
||||
|
||||
~~~ corefile
|
||||
|
||||
14
plugin/erratic/health.go
Normal file
14
plugin/erratic/health.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package erratic
|
||||
|
||||
import (
|
||||
"sync/atomic"
|
||||
)
|
||||
|
||||
// Health implements the health.Healther interface.
|
||||
func (e *Erratic) Health() bool {
|
||||
q := atomic.LoadUint64(&e.q)
|
||||
if e.drop > 0 && q%e.drop == 0 {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user