
 template: btrfs_allocated
       on: btrfs.disk
    class: Utilization
     type: System
component: File system
       os: *
    hosts: *
 families: *
     calc: 100 - ($unallocated * 100 / ($unallocated + $data_used + $data_free + $meta_used + $meta_free + $sys_used + $sys_free))
    units: %
    every: 10s
     warn: $this > (($status >= $WARNING)  ? (90) : (95))
     crit: $this > (($status == $CRITICAL) ? (95) : (98))
    delay: up 1m down 15m multiplier 1.5 max 1h
     info: percentage of allocated BTRFS physical disk space
       to: sysadmin

 template: btrfs_data
       on: btrfs.data
    class: Utilization
     type: System
component: File system
       os: *
    hosts: *
 families: *
     calc: $used * 100 / ($used + $free)
    units: %
    every: 10s
     warn: $this > (($status >= $WARNING)  ? (90) : (95)) && $btrfs_allocated > 98
     crit: $this > (($status == $CRITICAL) ? (95) : (98)) && $btrfs_allocated > 98
    delay: up 1m down 15m multiplier 1.5 max 1h
     info: utilization of BTRFS data space
       to: sysadmin

 template: btrfs_metadata
       on: btrfs.metadata
    class: Utilization
     type: System
component: File system
       os: *
    hosts: *
 families: *
     calc: ($used + $reserved) * 100 / ($used + $free + $reserved)
    units: %
    every: 10s
     warn: $this > (($status >= $WARNING)  ? (90) : (95)) && $btrfs_allocated > 98
     crit: $this > (($status == $CRITICAL) ? (95) : (98)) && $btrfs_allocated > 98
    delay: up 1m down 15m multiplier 1.5 max 1h
     info: utilization of BTRFS metadata space
       to: sysadmin

 template: btrfs_system
       on: btrfs.system
    class: Utilization
     type: System
component: File system
       os: *
    hosts: *
 families: *
     calc: $used * 100 / ($used + $free)
    units: %
    every: 10s
     warn: $this > (($status >= $WARNING)  ? (90) : (95)) && $btrfs_allocated > 98
     crit: $this > (($status == $CRITICAL) ? (95) : (98)) && $btrfs_allocated > 98
    delay: up 1m down 15m multiplier 1.5 max 1h
     info: utilization of BTRFS system space
       to: sysadmin

 template: btrfs_device_read_errors
       on: btrfs.device_errors
    class: Errors
     type: System
component: File system
       os: *
    hosts: *
 families: *
    units: errors
   lookup: max -10m every 1m of read_errs
     warn: $this > 0
    delay: up 1m down 15m multiplier 1.5 max 1h
     info: number of encountered BTRFS read errors
       to: sysadmin

 template: btrfs_device_write_errors
       on: btrfs.device_errors
    class: Errors
     type: System
component: File system
       os: *
    hosts: *
 families: *
    units: errors
   lookup: max -10m every 1m of write_errs
     warn: $this > 0
    delay: up 1m down 15m multiplier 1.5 max 1h
     info: number of encountered BTRFS write errors
       to: sysadmin

 template: btrfs_device_flush_errors
       on: btrfs.device_errors
    class: Errors
     type: System
component: File system
       os: *
    hosts: *
 families: *
    units: errors
   lookup: max -10m every 1m of flush_errs
     warn: $this > 0
    delay: up 1m down 15m multiplier 1.5 max 1h
     info: number of encountered BTRFS flush errors
       to: sysadmin

 template: btrfs_device_corruption_errors
       on: btrfs.device_errors
    class: Errors
     type: System
component: File system
       os: *
    hosts: *
 families: *
    units: errors
   lookup: max -10m every 1m of corruption_errs
     warn: $this > 0
    delay: up 1m down 15m multiplier 1.5 max 1h
     info: number of encountered BTRFS corruption errors
       to: sysadmin

 template: btrfs_device_generation_errors
       on: btrfs.device_errors
    class: Errors
     type: System
component: File system
       os: *
    hosts: *
 families: *
    units: errors
   lookup: max -10m every 1m of generation_errs
     warn: $this > 0
    delay: up 1m down 15m multiplier 1.5 max 1h
     info: number of encountered BTRFS generation errors
       to: sysadmin
