org.opennms.netmgt.poller.monitors
Class HttpMonitor

java.lang.Object
  extended by org.opennms.netmgt.poller.monitors.AbstractServiceMonitor
      extended by org.opennms.netmgt.poller.monitors.HttpMonitor
All Implemented Interfaces:
ServiceMonitor
Direct Known Subclasses:
HttpsMonitor

@Distributable
public class HttpMonitor
extends AbstractServiceMonitor

This class is designed to be used by the service poller framework to test the availability of the HTTP service on remote interfaces. The class implements the ServiceMonitor interface that allows it to be used along with other plug-ins by the service poller framework.

Author:
OpenNMS , Tarus Balog , Mike , David Hustace

Field Summary
static String PARAMETER_BASIC_AUTHENTICATION
           
static String PARAMETER_HOST_NAME
           
static String PARAMETER_NODE_LABEL_HOST_NAME
           
static String PARAMETER_PASSWORD
           
static String PARAMETER_PORT
           
static String PARAMETER_RESOLVE_IP
           
static String PARAMETER_RESPONSE
           
static String PARAMETER_RESPONSE_TEXT
           
static String PARAMETER_URL
           
static String PARAMETER_USER
           
static String PARAMETER_USER_AGENT
           
static String PARAMETER_VERBOSE
           
 
Constructor Summary
HttpMonitor()
           
 
Method Summary
protected  int[] determinePorts(Map<String,Object> parameters)
          determinePorts
 PollStatus poll(MonitoredService svc, Map<String,Object> parameters)
           This method is the heart of the plug-in monitor.
protected  Socket wrapSocket(Socket socket)
          wrapSocket
 
Methods inherited from class org.opennms.netmgt.poller.monitors.AbstractServiceMonitor
initialize, initialize, log, logDown, logDown, logUp, release, release
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PARAMETER_VERBOSE

public static final String PARAMETER_VERBOSE
See Also:
Constant Field Values

PARAMETER_USER_AGENT

public static final String PARAMETER_USER_AGENT
See Also:
Constant Field Values

PARAMETER_BASIC_AUTHENTICATION

public static final String PARAMETER_BASIC_AUTHENTICATION
See Also:
Constant Field Values

PARAMETER_USER

public static final String PARAMETER_USER
See Also:
Constant Field Values

PARAMETER_PASSWORD

public static final String PARAMETER_PASSWORD
See Also:
Constant Field Values

PARAMETER_RESOLVE_IP

public static final String PARAMETER_RESOLVE_IP
See Also:
Constant Field Values

PARAMETER_NODE_LABEL_HOST_NAME

public static final String PARAMETER_NODE_LABEL_HOST_NAME
See Also:
Constant Field Values

PARAMETER_HOST_NAME

public static final String PARAMETER_HOST_NAME
See Also:
Constant Field Values

PARAMETER_RESPONSE_TEXT

public static final String PARAMETER_RESPONSE_TEXT
See Also:
Constant Field Values

PARAMETER_RESPONSE

public static final String PARAMETER_RESPONSE
See Also:
Constant Field Values

PARAMETER_URL

public static final String PARAMETER_URL
See Also:
Constant Field Values

PARAMETER_PORT

public static final String PARAMETER_PORT
See Also:
Constant Field Values
Constructor Detail

HttpMonitor

public HttpMonitor()
Method Detail

poll

public PollStatus poll(MonitoredService svc,
                       Map<String,Object> parameters)

This method is the heart of the plug-in monitor. Each time an interface requires a check to be performed as defined by the scheduler the poll method is invoked. The poll is passed the interface to check

By default when the status transition from up to down or vice versa the framework will generate an event. Additionally, if the polling interval changes due to an extended unavailability, the framework will generate an additional down event. The plug-in can suppress the generation of the default events by setting the suppress event bit in the returned integer.

Poll the specified address for HTTP service availability. During the poll an attempt is made to connect on the specified port(s) (by default TCP ports 80, 8080, 8888). If the connection request is successful, an HTTP 'GET' command is sent to the interface. The response is parsed and a return code extracted and verified. Provided that the interface's response is valid we set the service status to SERVICE_AVAILABLE and return.

Specified by:
poll in interface ServiceMonitor
Specified by:
poll in class AbstractServiceMonitor
Parameters:
svc - TODO
parameters - The package parameters (timeout, retry, etc...) to be used for this poll.
Returns:
The availability of the interface and if a transition event should be suppressed.
See Also:
PollStatus.SERVICE_AVAILABLE, PollStatus.SERVICE_UNAVAILABLE, PollStatus.SERVICE_AVAILABLE, PollStatus.SERVICE_UNAVAILABLE

wrapSocket

protected Socket wrapSocket(Socket socket)
                     throws IOException

wrapSocket

Parameters:
socket - a Socket object.
Returns:
a Socket object.
Throws:
IOException - if any.

determinePorts

protected int[] determinePorts(Map<String,Object> parameters)

determinePorts

Parameters:
parameters - a Map object.
Returns:
an array of int.


Copyright © 2011. All Rights Reserved.