Interface ServiceMonitor
-
- All Known Implementing Classes:
AbstractServiceMonitor
,AbstractVmwareMonitor
,ActiveMQMonitor
,AsteriskSIPPeerMonitor
,AvailabilityMonitor
,BgpSessionMonitor
,BSFMonitor
,CiscoIpSlaMonitor
,CiscoPingMibMonitor
,CitrixMonitor
,DhcpMonitor
,DiskUsageMonitor
,DnsMonitor
,DNSResolutionMonitor
,DominoIIOPMonitor
,DskTableMonitor
,FtpMonitor
,GpMonitor
,HostResourceSwRunMonitor
,HttpMonitor
,HttpPostMonitor
,HttpsMonitor
,IcmpMonitor
,ImapMonitor
,ImapsMonitor
,JCifsMonitor
,JDBCMonitor
,JDBCQueryMonitor
,JDBCStoredProcedureMonitor
,JMXMonitor
,JolokiaBeanMonitor
,JschSshMonitor
,Jsr160Monitor
,LaTableMonitor
,LdapMonitor
,LdapsMonitor
,LogMatchTableMonitor
,LoopMonitor
,MailTransportMonitor
,MemcachedMonitor
,MinionHeartbeatMonitor
,MinionRpcMonitor
,MockMonitor
,NetScalerGroupHealthMonitor
,NrpeMonitor
,NsclientMonitor
,NtpMonitor
,OmsaStorageMonitor
,OpenManageChassisMonitor
,PageSequenceMonitor
,ParameterSubstitutingMonitor
,PassiveServiceMonitor
,PercMonitor
,Pop3Monitor
,PrTableMonitor
,RadiusAuthMonitor
,SeleniumMonitor
,ServicePollerImpl
,SmbMonitor
,SmtpMonitor
,SnmpMonitor
,SnmpMonitorStrategy
,SshMonitor
,SSLCertMonitor
,StrafePingMonitor
,SystemExecuteMonitor
,TcpMonitor
,TrivialTimeMonitor
,VmwareCimMonitor
,VmwareMonitor
,WebMonitor
,Win32ServiceMonitor
,WmiMonitor
,WsManMonitor
,XmpMonitor
public interface ServiceMonitor
This is the interface that must be implemented by each poller plugin in the framework. This well defined interface allows the framework to treat each plugin identically.
As of 19.0.0, service monitor plugins are retrieved from a
ServiceMonitorRegistry
. See the registry implementation documentation for details on how make the service monitors available to the registry.NOTE: The plug-in poll() must be thread safe in order to operate. Any synchronized methods or data accessed in the poll() can negatively affect the framework if multiple poller threads are blocked on a critical resource. Synchronization issues should be seriously evaluated to ensure that the plug-in scales well to large deployments.
- Author:
- Jesse White, Brian Weaver , OpenNMS
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.String
getEffectiveLocation(java.lang.String location)
Allows the monitor to override the location at which it should be run.java.util.Map<java.lang.String,java.lang.Object>
getRuntimeAttributes(MonitoredService svc, java.util.Map<java.lang.String,java.lang.Object> parameters)
PollStatus
poll(MonitoredService svc, java.util.Map<java.lang.String,java.lang.Object> parameters)
This method is the heart of the plug-in monitor.
-
-
-
Method Detail
-
poll
PollStatus poll(MonitoredService svc, java.util.Map<java.lang.String,java.lang.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 service 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.
NOTE: This method may be invoked on a Minion, in which case certain bean and facilities will not be available. If any state related information is required such as agent related configuration, it should retrieved by the
getRuntimeAttributes(MonitoredService, Map)
.- Parameters:
svc
- Includes details about to the service being monitored.parameters
- Includes the service parameters defined in poller-configuration.xml and those returned bygetRuntimeAttributes(MonitoredService, Map)
.- Returns:
- The availability of the interface and if a transition event should be suppressed.
- Throws:
java.lang.RuntimeException
- Thrown if an unrecoverable error occurs that prevents the interface from being monitored.- See Also:
PollStatus.SERVICE_AVAILABLE
,PollStatus.SERVICE_UNAVAILABLE
,PollStatus.SERVICE_AVAILABLE
,PollStatus.SERVICE_UNAVAILABLE
-
getRuntimeAttributes
java.util.Map<java.lang.String,java.lang.Object> getRuntimeAttributes(MonitoredService svc, java.util.Map<java.lang.String,java.lang.Object> parameters)
- Parameters:
svc
- Includes details about to the service being monitored.parameters
- Includes the service parameters defined in poller-configuration.xml and those returned bygetRuntimeAttributes(MonitoredService, Map)
.- Returns:
- Additional attributes, which should be added to the parameter map before calling
poll(MonitoredService, Map)
.
-
getEffectiveLocation
java.lang.String getEffectiveLocation(java.lang.String location)
Allows the monitor to override the location at which it should be run.- Parameters:
location
- location associated with the service to be monitored- Returns:
- a possibly updated location
-
-