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

    alarm: used_ram_to_ignore
       on: system.ram
    class: Utilization
     type: System
component: Memory
       os: linux freebsd
    hosts: *
     calc: ($zfs.arc_size.arcsz = nan)?(0):($zfs.arc_size.arcsz - $zfs.arc_size.min)
    every: 10s
     info: amount of memory 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
    class: Utilization
     type: System
component: Memory
       os: linux
    hosts: *
     calc: ($used - $used_ram_to_ignore) * 100 / ($used + $cached + $free + $buffers)
    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 memory utilization
       to: sysadmin

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

      alarm: oom_kill
         on: mem.oom_kill
         os: linux
      hosts: *
     lookup: sum -30m unaligned
      units: kills
      every: 5m
       warn: $this > 0
      delay: down 10m
host labels: _is_k8s_node = false
       info: number of out of memory kills in the last 30 minutes
         to: sysadmin

## FreeBSD
    alarm: ram_in_use
       on: system.ram
    class: Utilization
     type: System
component: Memory
       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 memory utilization
       to: sysadmin

    alarm: ram_available
       on: system.ram
    class: Utilization
     type: System
component: Memory
       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)  ? (15) : (10))
     crit: $this < (($status == $CRITICAL) ? (10) : ( 5))
    delay: down 15m multiplier 1.5 max 1h
     info: percentage of estimated amount of RAM available for userspace processes, without causing swapping
       to: sysadmin
