The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Jetty specific checks
# ========================================================

include common.cfg

# Servlet running
# $0: Name of servlet
<Check jetty_servlet_running>
  MBean = org.mortbay.jetty.servlet:name=$0,*
  Attribute = running
  String = 1
  Label = $0 running
  Name = $0 running
  Critical = false
</Check>

# Servlet failed status
# $0: Name of servlet
<Check jetty_servlet_failed>
  MBean = org.mortbay.jetty.servlet:name=$0,*
  Attribute = failed
  String = 1
  Label = $0 failing
  Name = $0 failed
  Critical = true
</Check>

# Jetty is low on threads ?
<Check jetty_threads_low>
  MBean = org.mortbay.thread:type=queuedthreadpool,*
  Attribute = lowOnThreads
  String = 1
  Label = Low on threads
  Name = LowOnThreads Flag
  Critical = true
</Check>

# Ratio between created threads to maximum threads
# $0: Critical value (default: 90%)
# $1: Warning value (default: 80%)
<Check jetty_threads>
  Use = relative_base($0,$1)
  Value = org.mortbay.thread:type=queuedthreadpool,*/threads
  Base = org.mortbay.thread:type=queuedthreadpool,*/maxThreads
  Name = Jetty-Threads
</Check>

# Server is running
<Check jetty_server_running>
  MBean = org.mortbay.jetty:type=server,*
  Attribute = running
  String = 1
  Label = Server running
  Name = Server running
  Critical = false
</Check>

# Server failed
<Check jetty_server_failed>
  MBean = org.mortbay.jetty:type=server,*
  Attribute = failed
  String = 1
  Label = Server failing
  Name = ServerFailedFlag
  Critical = true
</Check>

# =====================================================================
# Sessions

# The maximum number of sessions ever created (overall, all webapps)
# $0: Critical
# $1: Warning 
<Check jetty_sessions_max>
  MBean = org.mortbay.jetty.servlet:type=hashsessionmanager,*
  Attribute = maxSessions
  Label = Max Sessions = %v
  Name = MaxSessions
  Critical = $0
  Warning = $1
</Check>

# The current number of sessions (overall, all webapps)
# $0: Critical (default: 1000)
# $1: Warning (default: 800)
<Check jetty_sessions>
  MBean = org.mortbay.jetty.servlet:type=hashsessionmanager,*
  Attribute = sessions
  Label = Sessions = %v
  Name = Sessions
  Critical = ${0:1000}
  Warning = ${1:800}
</Check>


# =====================================================================
# Requests

# The overall requests / minute
# 'statsOn' has to be set to true in jetty.xml for letting jetty collects
# statistics information for the overall connector 
# $0: Critical (default: 6000)
# $1: Warning (default: 5000)
<Check jetty_request_nio>
  Use = count_per_minute("requests")
  MBean = org.mortbay.jetty.nio:type=selectchannelconnector,*
  Attribute = requests
  Name = Requests
  Critical = ${0:6000}
  Warning = ${1:5000}  
</Check>

# Number of accepted connections ('statsOn' must be set)
# $0: Critical (default: 6000)
# $1: Warning (default: 5000)
<Check jetty_connections>
  Use = count_per_minute("connections")
  MBean = org.mortbay.jetty.nio:type=selectchannelconnector,*
  Attribute = connections
  Name = Connections
  Critical = ${0:6000}
  Warning = ${1:5000}  
</Check>

# Number of open connections ('statsOn' must be set)
# $0: Critical (default: 1000)
# $1: Warning (default: 900)
<Check jetty_connections_open>
  MBean = org.mortbay.jetty.nio:type=selectchannelconnector,*
  Attribute = connectionsOpen
  Name = ConnectionsOpen
  Label = Open connections = %v
  Critical = ${0:1000}
  Warning = ${1:900}
</Check>

# ========================================================================

# Add $JETTY_HOME/etc/jetty-stats.xml to the configuration for collecting per 
# request duration statistics. 
#
# See also http://communitymapbuilder.osgeo.org/display/JETTY/Statistics
# for details

# Average duration of a request in ms
# $0: Critical (default: 400ms)
# $1: Warning (default: 300ms)
<Check jetty_request_duration_average>
  MBean = org.mortbay.jetty.handler:type=statisticshandler,*
  Attribute = requestsDurationAve
  Name = RequestDurationAverage
  Label = Average Request Duration = %v ms
  Critical = ${0:400}
  Warning = ${1:300}
</Check>

# Maximum duration of any request in ms
# $0: Critical (default: 400ms)
# $1: Warning (default: 300ms)
<Check jetty_request_duration_max>
  MBean = org.mortbay.jetty.handler:type=statisticshandler,*
  Attribute = requestsDurationMax
  Name = RequestDurationMaximum
  Label = Maximum Request Duration = %v ms
  Critical = ${0:1000}
  Warning = ${1:900}
</Check>

# Number of Requests per minute
# $0: Critical (default: 6000)
# $1: Warning (default: 5000)
<Check jetty_request_rate>
  Use = count_per_minute("requests")
  MBean = org.mortbay.jetty.handler:type=statisticshandler,*
  Attribute = requests
  Name = Requests
  Critical = ${0:6000}
  Warning = ${1:5000}  
</Check>

# Number of currently active requests
# $0: Critical (default: 1000)
# $1: Warning (default: 900)
<Check jetty_request_active>
  MBean = org.mortbay.jetty.handler:type=statisticshandler,*
  Attribute = requestsActive
  Name = ActiveRequests
  Label = Active Requests = %v
  Critical = ${0:1000}
  Warning = ${1:900}
</Check>