# Alarms for various BOINC issues.

# Warn on any compute errors encountered.
template: boinc_compute_errors
      on: boinc.states
      os: *
   hosts: *
families: *
  lookup: average -10m unaligned of comperror
   units: tasks
   every: 1m
    warn: $this > 0
    crit: $this > 1
   delay: up 1m down 5m multiplier 1.5 max 1h
    info: the total number of compute errors over the past 10 minutes
      to: sysadmin

# Warn on lots of upload errors
template: boinc_upload_errors
      on: boinc.states
      os: *
   hosts: *
families: *
  lookup: average -10m unaligned of upload_failed
   units: tasks
   every: 1m
    warn: $this > 0
    crit: $this > 1
   delay: up 1m down 5m multiplier 1.5 max 1h
    info: the average number of failed uploads over the past 10 minutes
      to: sysadmin

# Warn on the task queue being empty
template: boinc_total_tasks
      on: boinc.tasks
      os: *
   hosts: *
families: *
  lookup: average -10m unaligned of total
   units: tasks
   every: 1m
    warn: $this < 1
    crit: $this < 0.1
   delay: up 5m down 10m multiplier 1.5 max 1h
    info: the total number of locally available tasks
      to: sysadmin

# Warn on no active tasks with a non-empty queue
template: boinc_active_tasks
      on: boinc.tasks
      os: *
   hosts: *
families: *
  lookup: average -10m unaligned of active
    calc: ($boinc_total_tasks >= 1) ? ($this) : (inf)
   units: tasks
   every: 1m
    warn: $this < 1
    crit: $this < 0.1
   delay: up 5m down 10m multiplier 1.5 max 1h
    info: the total number of active tasks
      to: sysadmin
