
# detect if memcached cache is full

 template: memcached_cache_memory_usage
       on: memcached.cache
    class: Utilization
     type: KV Storage
component: Memcached
     calc: $used * 100 / ($used + $available)
    units: %
    every: 10s
     warn: $this > (($status >= $WARNING)  ? (70) : (80))
     crit: $this > (($status == $CRITICAL) ? (80) : (90))
    delay: up 0 down 15m multiplier 1.5 max 1h
     info: cache memory utilization
       to: dba


# find the rate memcached cache is filling

 template: memcached_cache_fill_rate
       on: memcached.cache
    class: Utilization
     type: KV Storage
component: Memcached
   lookup: min -10m at -50m unaligned of available
     calc: ($this - $available) / (($now - $after) / 3600)
    units: KB/hour
    every: 1m
     info: average rate the cache fills up (positive), or frees up (negative) space over the last hour


# find the hours remaining until memcached cache is full

 template: memcached_out_of_cache_space_time
       on: memcached.cache
    class: Utilization
     type: KV Storage
component: Memcached
     calc: ($memcached_cache_fill_rate > 0) ? ($available / $memcached_cache_fill_rate) : (inf)
    units: hours
    every: 10s
     warn: $this > 0 and $this < (($status >= $WARNING)  ? (48) : (8))
     crit: $this > 0 and $this < (($status == $CRITICAL) ? (24) : (2))
    delay: down 15m multiplier 1.5 max 1h
     info: estimated time the cache will run out of space \
           if the system continues to add data at the same rate as the past hour
       to: dba
