aboutsummaryrefslogtreecommitdiff
path: root/plugin/cache/setup.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/cache/setup.go')
-rw-r--r--plugin/cache/setup.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/plugin/cache/setup.go b/plugin/cache/setup.go
index e4ca494db..62c5c9d2c 100644
--- a/plugin/cache/setup.go
+++ b/plugin/cache/setup.go
@@ -1,6 +1,7 @@
package cache
import (
+ "errors"
"fmt"
"strconv"
"time"
@@ -31,7 +32,7 @@ func setup(c *caddy.Controller) error {
c.OnStartup(func() error {
metrics.MustRegister(c,
cacheSize, cacheHits, cacheMisses,
- cachePrefetches, cacheDrops)
+ cachePrefetches, cacheDrops, servedStale)
return nil
})
@@ -176,6 +177,22 @@ func cacheParse(c *caddy.Controller) (*Cache, error) {
ca.percentage = num
}
+ case "serve_stale":
+ args := c.RemainingArgs()
+ if len(args) > 1 {
+ return nil, c.ArgErr()
+ }
+ ca.staleUpTo = 1 * time.Hour
+ if len(args) == 1 {
+ d, err := time.ParseDuration(args[0])
+ if err != nil {
+ return nil, err
+ }
+ if d < 0 {
+ return nil, errors.New("invalid negative duration for serve_stale")
+ }
+ ca.staleUpTo = d
+ }
default:
return nil, c.ArgErr()
}