org.opennms.netmgt.poller.pollables
Class LatencyStoringServiceMonitorAdaptor

java.lang.Object
  extended by org.opennms.netmgt.poller.pollables.LatencyStoringServiceMonitorAdaptor
All Implemented Interfaces:
ServiceMonitor

public class LatencyStoringServiceMonitorAdaptor
extends Object
implements ServiceMonitor

LatencyStoringServiceMonitorAdaptor class.

Version:
$Id: $
Author:
Mathew Brozowski, Ben Reed, Mathew Brozowski, Ben Reed

Field Summary
static String DEFAULT_BASENAME
          Constant DEFAULT_BASENAME="response-time"
 
Constructor Summary
LatencyStoringServiceMonitorAdaptor(ServiceMonitor monitor, PollerConfig config, Package pkg)
          Constructor for LatencyStoringServiceMonitorAdaptor.
 
Method Summary
 boolean createRRD(String repository, InetAddress addr, String rrdBaseName, List<RrdDataSource> dsList)
          Create an RRD database file with multiple dsNames for storing latency/response time data.
 boolean createRRD(String repository, InetAddress addr, String rrdBaseName, String dsName)
          Create an RRD database file with a single dsName for storing latency/response time data.
 void initialize(Map<String,Object> parameters)
           This method is called after the framework creates an instance of the plug-in.
 void initialize(MonitoredService svc)
          initialize
 PollStatus poll(MonitoredService svc, Map<String,Object> parameters)
           This method is the heart of the plug-in monitor.
 void refreshThresholds()
          Should be called when thresholds configuration has been reloaded
 void release()
          release
 void release(MonitoredService svc)
           This method is the called whenever an interface is being removed from the scheduler.
 void updateRRD(String repository, InetAddress addr, String rrdBaseName, LinkedHashMap<String,Number> entries)
          Update an RRD database file with multiple latency/response time data sources.
 void updateRRD(String repository, InetAddress addr, String rrdBaseName, String dsName, long value)
          Update an RRD database file with latency/response time data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_BASENAME

public static final String DEFAULT_BASENAME
Constant DEFAULT_BASENAME="response-time"

See Also:
Constant Field Values
Constructor Detail

LatencyStoringServiceMonitorAdaptor

public LatencyStoringServiceMonitorAdaptor(ServiceMonitor monitor,
                                           PollerConfig config,
                                           Package pkg)

Constructor for LatencyStoringServiceMonitorAdaptor.

Parameters:
monitor - a ServiceMonitor object.
config - a PollerConfig object.
pkg - a Package object.
Method Detail

initialize

public void initialize(Map<String,Object> parameters)

This method is called after the framework creates an instance of the plug-in. The framework passes the object a proxy object that can be used to retrieve configuration information specific to the plug-in. Additionally, any parameters for the plug-in from the package definition are passed using the parameters element.

If there is a critical error, like missing service libraries, the the Monitor may throw a ServiceMonitorException. If the plug-in throws an exception then the plug-in will be disabled in the framework.

Specified by:
initialize in interface ServiceMonitor
Parameters:
parameters - Not currently used

initialize

public void initialize(MonitoredService svc)

initialize

Specified by:
initialize in interface ServiceMonitor
Parameters:
svc - a MonitoredService object.

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.

Specified by:
poll in interface ServiceMonitor
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

updateRRD

public void updateRRD(String repository,
                      InetAddress addr,
                      String rrdBaseName,
                      String dsName,
                      long value)
Update an RRD database file with latency/response time data.

Parameters:
repository - path to the RRD file repository
addr - interface address
dsName - the datasource name to update
value - value to update the RRD file with
rrdBaseName - a String object.

updateRRD

public void updateRRD(String repository,
                      InetAddress addr,
                      String rrdBaseName,
                      LinkedHashMap<String,Number> entries)
Update an RRD database file with multiple latency/response time data sources.

Parameters:
repository - path to the RRD file repository
addr - interface address
entries - the entries for the rrd, containing a Map of dsNames to values
rrdBaseName - a String object.

createRRD

public boolean createRRD(String repository,
                         InetAddress addr,
                         String rrdBaseName,
                         String dsName)
                  throws RrdException
Create an RRD database file with a single dsName for storing latency/response time data.

Parameters:
repository - path to the RRD file repository
addr - interface address
dsName - data source/RRD file name
rrdBaseName - a String object.
Returns:
true if RRD file successfully created, false otherwise
Throws:
RrdException - if any.

createRRD

public boolean createRRD(String repository,
                         InetAddress addr,
                         String rrdBaseName,
                         List<RrdDataSource> dsList)
                  throws RrdException
Create an RRD database file with multiple dsNames for storing latency/response time data.

Parameters:
repository - path to the RRD file repository
addr - interface address
rrdBaseName - a String object.
dsList - a List object.
Returns:
true if RRD file successfully created, false otherwise
Throws:
RrdException - if any.

release

public void release()

release

Specified by:
release in interface ServiceMonitor

release

public void release(MonitoredService svc)

This method is the called whenever an interface is being removed from the scheduler. For example, if a service is determined as being no longer supported then this method will be invoked to cleanup any information associated with this device. This gives the implementor of the interface the ability to serialize any data prior to the interface being discarded.

If an exception is thrown during the release the exception will be logged, but the interface will still be discarded for garbage collection.

Specified by:
release in interface ServiceMonitor
Parameters:
svc - TODO

refreshThresholds

public void refreshThresholds()
Should be called when thresholds configuration has been reloaded



Copyright © 2011. All Rights Reserved.