# make sure vcsa is running and responding

template: vcsa_last_collected_secs
      on: vcsa.system_health
    calc: $now - $last_collected_t
   units: seconds ago
   every: 10s
    warn: $this > (($status >= $WARNING)  ? ($update_every) : ( 5 * $update_every))
    crit: $this > (($status == $CRITICAL) ? ($update_every) : (60 * $update_every))
   delay: down 5m multiplier 1.5 max 1h
    info: number of seconds since the last successful data collection
      to: sysadmin

# Overall system health:
#  - 0: all components are healthy.
#  - 1: one or more components might become overloaded soon.
#  - 2: one or more components in the appliance might be degraded.
#  - 3: one or more components might be in an unusable status and the appliance might become unresponsive soon.
#  - 4: no health data is available.

template: vcsa_system_health
      on: vcsa.system_health
  lookup: max -10s unaligned of system
   units: status
   every: 10s
    warn: ($this == 1) || ($this == 2)
    crit: $this == 3
   delay: down 1m multiplier 1.5 max 1h
    info: overall system health status
      to: sysadmin

# Components health:
#  - 0: healthy.
#  - 1: healthy, but may have some problems.
#  - 2: degraded, and may have serious problems.
#  - 3: unavailable, or will stop functioning soon.
#  - 4: no health data is available.

template: vcsa_swap_health
      on: vcsa.components_health
  lookup: max -10s unaligned of swap
   units: status
   every: 10s
    warn: $this == 1
    crit: ($this == 2) || ($this == 3)
   delay: down 1m multiplier 1.5 max 1h
    info: swap health status
      to: sysadmin

template: vcsa_storage_health
      on: vcsa.components_health
  lookup: max -10s unaligned of storage
   units: status
   every: 10s
    warn: $this == 1
    crit: ($this == 2) || ($this == 3)
   delay: down 1m multiplier 1.5 max 1h
    info: storage health status
      to: sysadmin

template: vcsa_mem_health
      on: vcsa.components_health
  lookup: max -10s unaligned of mem
   units: status
   every: 10s
    warn: $this == 1
    crit: ($this == 2) || ($this == 3)
   delay: down 1m multiplier 1.5 max 1h
    info: mem health status
      to: sysadmin

template: vcsa_load_health
      on: vcsa.components_health
  lookup: max -10s unaligned of load
   units: status
   every: 10s
    warn: $this == 1
    crit: ($this == 2) || ($this == 3)
   delay: down 1m multiplier 1.5 max 1h
    info: load health status
      to: sysadmin

template: vcsa_database_storage_health
      on: vcsa.components_health
  lookup: max -10s unaligned of database_storage
   units: status
   every: 10s
    warn: $this == 1
    crit: ($this == 2) || ($this == 3)
   delay: down 1m multiplier 1.5 max 1h
    info: database storage health status
      to: sysadmin

template: vcsa_applmgmt_health
      on: vcsa.components_health
  lookup: max -10s unaligned of applmgmt
   units: status
   every: 10s
    warn: $this == 1
    crit: ($this == 2) || ($this == 3)
   delay: down 1m multiplier 1.5 max 1h
    info: appl mgmt health status
      to: sysadmin


# Software updates health:
#  - 0: no updates available.
#  - 2: non-security updates are available.
#  - 3: security updates are available.
#  - 4: an error retrieving information on software updates.

template: vcsa_software_updates_health
      on: vcsa.software_updates_health
  lookup: max -10s unaligned of software_packages
   units: status
   every: 10s
    warn: $this == 4
    crit: $this == 3
   delay: down 1m multiplier 1.5 max 1h
    info: software packages health status
      to: sysadmin