
# This is a fast-reacting no-notification alarm ideal for custom dashboards or badges
 template: httpcheck_web_service_up
 families: *
       on: httpcheck.status
    class: Utilization
     type: Web Server
component: HTTP endpoint
   lookup: average -1m unaligned percentage of success
     calc: ($this < 75) ? (0) : ($this)
    every: 5s
    units: up/down
     info: average ratio of successful HTTP requests over the last minute (at least 75%)
       to: silent

 template: httpcheck_web_service_bad_content
 families: *
       on: httpcheck.status
    class: Workload
     type: Web Server
component: HTTP endpoint
   lookup: average -5m unaligned percentage of bad_content
    every: 10s
    units: %
     warn: $this >= 10 AND $this < 40
     crit: $this >= 40
    delay: down 5m multiplier 1.5 max 1h
     info: average ratio of HTTP responses with unexpected content over the last 5 minutes
  options: no-clear-notification
       to: webmaster

 template: httpcheck_web_service_bad_status
 families: *
       on: httpcheck.status
    class: Workload
     type: Web Server
component: HTTP endpoint
   lookup: average -5m unaligned percentage of bad_status
    every: 10s
    units: %
     warn: $this >= 10 AND $this < 40
     crit: $this >= 40
    delay: down 5m multiplier 1.5 max 1h
     info: average ratio of HTTP responses with unexpected status over the last 5 minutes
  options: no-clear-notification
       to: webmaster

 template: httpcheck_web_service_timeouts
 families: *
       on: httpcheck.status
    class: Latency
     type: Web Server
component: HTTP endpoint
   lookup: average -5m unaligned percentage of timeout
    every: 10s
    units: %
     info: average ratio of HTTP request timeouts over the last 5 minutes

 template: httpcheck_no_web_service_connections
 families: *
       on: httpcheck.status
    class: Errors
     type: Other
component: HTTP endpoint
   lookup: average -5m unaligned percentage of no_connection
    every: 10s
    units: %
     info: average ratio of failed requests during the last 5 minutes

# combined timeout & no connection alarm
 template: httpcheck_web_service_unreachable
 families: *
       on: httpcheck.status
    class: Errors
     type: Web Server
component: HTTP endpoint
     calc: ($httpcheck_no_web_service_connections >= $httpcheck_web_service_timeouts) ? ($httpcheck_no_web_service_connections) : ($httpcheck_web_service_timeouts)
    units: %
    every: 10s
     warn: ($httpcheck_no_web_service_connections >= 10 OR $httpcheck_web_service_timeouts >= 10) AND ($httpcheck_no_web_service_connections < 40 OR $httpcheck_web_service_timeouts < 40)
     crit: $httpcheck_no_web_service_connections >= 40 OR $httpcheck_web_service_timeouts >= 40
    delay: down 5m multiplier 1.5 max 1h
     info: ratio of failed requests either due to timeouts or no connection over the last 5 minutes
  options: no-clear-notification
       to: webmaster

 template: httpcheck_1h_web_service_response_time
 families: *
       on: httpcheck.responsetime
    class: Latency
     type: Other
component: HTTP endpoint
   lookup: average -1h unaligned of time
    every: 30s
    units: ms
     info: average HTTP response time over the last hour

 template: httpcheck_web_service_slow
 families: *
       on: httpcheck.responsetime
    class: Latency
     type: Web Server
component: HTTP endpoint
   lookup: average -3m unaligned of time
    units: ms
    every: 10s
     warn: ($this > ($httpcheck_1h_web_service_response_time * 2) )
     crit: ($this > ($httpcheck_1h_web_service_response_time * 3) )
    delay: down 5m multiplier 1.5 max 1h
     info: average HTTP response time over the last 3 minutes, compared to the average over the last hour
  options: no-clear-notification
       to: webmaster
