
# you can disable an alarm notification by setting the 'to' line to: silent

   alarm: used_ram_to_ignore
      on: system.ram
      os: linux freebsd
   hosts: *
    calc: ($zfs.arc_size.arcsz = nan)?(0):($zfs.arc_size.arcsz)
   every: 10s
    info: the amount of memory that is reported as used, but it is actually capable for resizing itself based on the system needs (eg. ZFS ARC)

   alarm: ram_in_use
      on: system.ram
      os: linux
   hosts: *
#   calc: $used * 100 / ($used + $cached + $free)
    calc: ($used - $used_ram_to_ignore) * 100 / ($used - $used_ram_to_ignore + $cached + $free)
   units: %
   every: 10s
    warn: $this > (($status >= $WARNING)  ? (80) : (90))
    crit: $this > (($status == $CRITICAL) ? (90) : (98))
   delay: down 15m multiplier 1.5 max 1h
    info: system RAM used
      to: sysadmin

   alarm: ram_available
      on: mem.available
      os: linux
   hosts: *
    calc: ($avail + $used_ram_to_ignore) * 100 / ($system.ram.used + $system.ram.cached + $system.ram.free + $system.ram.buffers)
   units: %
   every: 10s
    warn: $this < (($status >= $WARNING)  ? ( 5) : (10))
    crit: $this < (($status == $CRITICAL) ? (10) : ( 5))
   delay: down 15m multiplier 1.5 max 1h
    info: estimated amount of RAM available for userspace processes, without causing swapping
      to: sysadmin

## FreeBSD
alarm: ram_in_use
   on: system.ram
   os: freebsd
hosts: *
 calc: ($active + $wired + $laundry + $buffers - $used_ram_to_ignore) * 100 / ($active + $wired + $laundry + $buffers - $used_ram_to_ignore + $cache + $free + $inactive)
units: %
every: 10s
 warn: $this > (($status >= $WARNING)  ? (80) : (90))
 crit: $this > (($status == $CRITICAL) ? (90) : (98))
delay: down 15m multiplier 1.5 max 1h
 info: system RAM usage
   to: sysadmin

 alarm: ram_available
    on: system.ram
    os: freebsd
 hosts: *
  calc: ($free + $inactive + $used_ram_to_ignore) * 100 / ($free + $active + $inactive + $wired + $cache + $laundry + $buffers)
 units: %
 every: 10s
  warn: $this < (($status >= $WARNING)  ? ( 5) : (10))
  crit: $this < (($status == $CRITICAL) ? (10) : ( 5))
 delay: down 15m multiplier 1.5 max 1h
  info: estimated amount of RAM available for userspace processes, without causing swapping
    to: sysadmin
