/** * {@inheritDoc} * * Poll the specified address for service availability. * <p> * @param svc * @param parameters * @return * <p> * @see #poll(InetAddress, Map) */ @Override public PollStatus poll(MonitoredService svc, Map<String, Object> parameters) { return poll(svc.getAddress(), parameters); }
@Override public Map<String, Object> getRuntimeAttributes(MonitoredService svc, Map<String, Object> parameters) { Map<String, String> convert = new HashMap<>(); for (Map.Entry<String, Object> entry : parameters.entrySet()) { convert.put(entry.getKey(), (String) entry.getValue()); } Map<String, String> attributes = JmxUtils.getRuntimeAttributes(jmxConfigDao.get(), InetAddressUtils.str(svc.getAddress()), convert); return new HashMap<>(attributes); }
private InetAddress determineTargetAddress(MonitoredService svc, Map<String, Object> parameters) { String rawOverrideTarget = ParameterMap.getKeyedString(parameters, PARM_TARGET_IP_ADDR, null); String overrideTarget = rawOverrideTarget; if (rawOverrideTarget != null) { overrideTarget = PropertiesUtils.substitute(rawOverrideTarget, getServiceProperties(svc)); LOG.debug("Expanded value '{}' of parameter {} to '{}' for service {} on interface {}", rawOverrideTarget, PARM_TARGET_IP_ADDR, overrideTarget, svc.getSvcName(), svc.getAddress()); } if (overrideTarget == null) return svc.getAddress(); LOG.debug("Using user-specified override target IP address {} instead of service address {} for service {}", overrideTarget, svc.getAddress(), svc.getSvcName()); try { final InetAddress overrideAddr = InetAddressUtils.addr(overrideTarget); LOG.debug("Overriding service address ({}) with user-specified target address ({}) for service {}", svc.getAddress(), overrideAddr, svc.getSvcName()); return overrideAddr; } catch (final IllegalArgumentException e) { LOG.warn("Failed to look up {} override value {} for service {}. Using service interface {} instead", PARM_TARGET_IP_ADDR, overrideTarget, svc.getSvcName(), svc.getAddress()); } return svc.getAddress(); }
@Override public PollStatus poll(MonitoredService svc, Map<String, Object> parameters) { final LoopPlugin lp = new LoopPlugin(); boolean isAvailable = lp.isProtocolSupported(svc.getAddress(), parameters); int status = (isAvailable ? PollStatus.SERVICE_AVAILABLE : PollStatus.SERVICE_UNAVAILABLE); final StringBuilder sb = new StringBuilder(); sb.append("LoopMonitor configured with is-supported = "); sb.append(ParameterMap.getKeyedString(parameters, "is-supported", "false")); sb.append(" for ip-match: "); sb.append(ParameterMap.getKeyedString(parameters, "ip-match", "*.*.*.*")); return PollStatus.get(status, sb.toString()); } }
public SnmpAgentConfig getAgentConfig(MonitoredService svc, Map<String, Object> parameters) { return getKeyedInstance(parameters, "agent", () -> { return new SnmpAgentConfig(svc.getAddress()); }); }
@Override public Map<String, Object> getRuntimeAttributes(MonitoredService svc, Map<String, Object> parameters) { try { SnmpPeerFactory.init(); } catch (IOException e) { LOG.error("SnmpPeerFactory initialization failed.", e); } return ImmutableMap.of("agent", SnmpPeerFactory.getInstance().getAgentConfig(svc.getAddress(), svc.getNodeLocation())); }
private InetAddress determineProxyAddress(Map<String, Object> parameters, MonitoredService svc) { LOG.debug("Determining the proxy address on which to set up the ciscoPingEntry for target interface {}", svc.getAddress()); OnmsNode proxyNode = null; InetAddress proxyAddress = null; if (rawProxyIpAddr != null) { proxyIpAddr = PropertiesUtils.substitute(rawProxyIpAddr, getServiceProperties(svc)); LOG.debug("Expanded value '{}' of parameter {} to '{}' for service {} on interface {}", rawProxyIpAddr, PARM_PROXY_IP_ADDR, proxyIpAddr, svc.getSvcName(), svc.getAddress()); LOG.debug("Trying to look up proxy node with foreign-source {}, foreign-id {} for target interface {}", proxyNodeFS, proxyNodeFI, svc.getAddress()); proxyNode = nodeDao.get().findByForeignId(proxyNodeFS, proxyNodeFI); LOG.debug("Found a node via foreign-source / foreign-id '{}'/'{}' to use as proxy", proxyNodeFS, proxyNodeFI); LOG.debug("Trying to look up proxy node with database ID {} for target interface {}", proxyNodeId, svc.getAddress()); proxyNode = nodeDao.get().get(Integer.valueOf(proxyNodeId)); if (proxyNode != null && proxyNode.getPrimaryInterface() != null) proxyAddress = proxyNode.getPrimaryInterface().getIpAddress(); LOG.info("Trying to use address {} as proxy-ping agent address for target interface {}", proxyIpAddr, svc.getAddress()); try { if (!"".equals(proxyIpAddr)) {
InetAddress ipAddr = svc.getAddress();
public PollStatus poll(MonitoredService svc, Map<String, Object> parameters) { PollStatus status = PollStatus.available(); InetAddress ipaddr = svc.getAddress();
InetAddress ipaddr = svc.getAddress();
m_wsManConfigDao = BeanUtils.getBean("daoContext", "wsManConfigDao", WSManConfigDao.class); final WsmanAgentConfig config = m_wsManConfigDao.getAgentConfig(svc.getAddress()); final WSManEndpoint endpoint = WSManConfigDao.getEndpoint(config, svc.getAddress()); final WSManClient client = m_factory.getClient(endpoint); final RetryNTimesLoop retryLoop = new RetryNTimesLoop(config.getRetry() != null ? config.getRetry() : 0);
m_wsManConfigDao = BeanUtils.getBean("daoContext", "wsManConfigDao", WSManConfigDao.class); final WsmanAgentConfig config = m_wsManConfigDao.getAgentConfig(svc.getAddress()); final WSManEndpoint endpoint = WSManConfigDao.getEndpoint(config, svc.getAddress()); final WSManClient client = m_factory.getClient(endpoint); final RetryNTimesLoop retryLoop = new RetryNTimesLoop(config.getRetry() != null ? config.getRetry() : 0);
InetAddress ipAddr = svc.getAddress();
public PollStatus poll(MonitoredService svc, Map<String, Object> parameters) { PollStatus serviceStatus = PollStatus.unavailable(null); InetAddress host = svc.getAddress(); List<Number> responseTimes = null;
final InetAddress addr = svc.getAddress();
public PollStatus poll(MonitoredService svc, Map<String, Object> parameters) { Number rtt = null; InetAddress host = svc.getAddress();
InetAddress ipAddr = svc.getAddress();
/** {@inheritDoc} */ @Override public PollStatus poll(MonitoredService svc, Map<String, Object> parameters) { TimeoutTracker timeoutTracker = new TimeoutTracker(parameters, DEFAULT_RETRY, DEFAULT_TIMEOUT); for(timeoutTracker.reset(); timeoutTracker.shouldRetry(); timeoutTracker.nextAttempt()) { try { timeoutTracker.startAttempt(); if (svc.getAddress().isReachable(timeoutTracker.getSoTimeout())) { return PollStatus.available(timeoutTracker.elapsedTimeInMillis()); } } catch (IOException e) { LOG.debug("Unable to contact {}", svc.getIpAddr(), e); } } String reason = svc+" failed to respond"; LOG.debug(reason); return PollStatus.unavailable(reason); }
private SnmpAgentConfig configureAgent(MonitoredService svc, Map<String, Object> parameters) { // Retrieve this interface's SNMP peer object // final SnmpAgentConfig agentConfig = getAgentConfig(svc, parameters); LOG.debug("poll: setting SNMP peer attribute for interface {}", InetAddressUtils.str(svc.getAddress())); agentConfig.setTimeout(ParameterMap.getKeyedInteger(parameters, "timeout", agentConfig.getTimeout())); agentConfig.setRetries(ParameterMap.getKeyedInteger(parameters, "retry", ParameterMap.getKeyedInteger(parameters, "retries", agentConfig.getRetries()))); agentConfig.setPort(ParameterMap.getKeyedInteger(parameters, "port", agentConfig.getPort())); return agentConfig; }
request.setClassName(className != null ? className : serviceMonitor.getClass().getCanonicalName()); request.setServiceName(service.getSvcName()); request.setAddress(service.getAddress()); request.setNodeId(service.getNodeId()); request.setNodeLabel(service.getNodeLabel());