Search in sources :

Example 6 with MonitoringException

use of com.axway.ats.monitoring.model.exceptions.MonitoringException in project ats-framework by Axway.

the class SystemMonitor method stopMonitoringPhysicalHosts.

private boolean stopMonitoringPhysicalHosts(boolean getRemainingData) {
    boolean successfulOperation = true;
    // cancel the logging tasks
    Iterator<String> loggerTasksIterator = monitoredHosts.iterator();
    while (loggerTasksIterator.hasNext()) {
        String monitoredHost = loggerTasksIterator.next();
        log.debug("Stopping the logging task for the system monitoring on " + monitoredHost);
        ScheduledFuture<?> loggerTaskFuture = loggerTasksPerHost.get(monitoredHost);
        if (loggerTaskFuture != null) {
            if (loggerTaskFuture.isCancelled()) {
                throw new MonitoringException("Logging task for the system monitoring process on " + monitoredHost + " has been cancelled");
            }
            loggerTaskFuture.cancel(false);
            try {
                // log any remaining results by explicitly calling the task to get the results
                if (getRemainingData) {
                    log.debug("Get any remaining monitoring results for " + monitoredHost);
                    AbstractLoggerTask loggerTask = new SystemStatsLoggerTask(monitoredHost);
                    loggerTask.run();
                }
            } catch (Exception e) {
                successfulOperation = false;
                log.error("Error getting final monitoring results for " + monitoredHost, e);
            }
        }
    }
    // stop the monitoring process
    Iterator<String> monitoredHostsIterator = monitoredHosts.iterator();
    while (monitoredHostsIterator.hasNext()) {
        String monitoredHost = monitoredHostsIterator.next();
        try {
            stopSystemMonitoringProcess(monitoredHost);
        } catch (MonitoringException e) {
            successfulOperation = false;
            log.error("Could not stop monitoring " + monitoredHost, e);
        }
    }
    return successfulOperation;
}
Also used : MonitoringException(com.axway.ats.monitoring.model.exceptions.MonitoringException) AbstractLoggerTask(com.axway.ats.monitoring.model.AbstractLoggerTask) AgentException(com.axway.ats.agent.core.exceptions.AgentException) MonitoringException(com.axway.ats.monitoring.model.exceptions.MonitoringException) SystemStatsLoggerTask(com.axway.ats.monitoring.model.SystemStatsLoggerTask)

Example 7 with MonitoringException

use of com.axway.ats.monitoring.model.exceptions.MonitoringException in project ats-framework by Axway.

the class SystemMonitor method stopSystemMonitoringProcess.

private void stopSystemMonitoringProcess(String monitoredHost) throws MonitoringException {
    log.debug("Stopping system monitoring on " + monitoredHost);
    try {
        InternalSystemMonitoringOperations sysMonitoringActions = new InternalSystemMonitoringOperations(monitoredHost);
        sysMonitoringActions.stopMonitoring();
        log.debug("Successfully stopped system monitoring on " + monitoredHost);
    } catch (AgentException e) {
        throw new MonitoringException("Could not stop the system monitoring process on " + monitoredHost, e);
    }
}
Also used : InternalSystemMonitoringOperations(com.axway.ats.agent.components.monitoring.operations.clients.InternalSystemMonitoringOperations) AgentException(com.axway.ats.agent.core.exceptions.AgentException) MonitoringException(com.axway.ats.monitoring.model.exceptions.MonitoringException)

Example 8 with MonitoringException

use of com.axway.ats.monitoring.model.exceptions.MonitoringException in project ats-framework by Axway.

the class MonitoringContext method init.

public void init() {
    if (!ReadingsRepository.getInstance().isConfigured()) {
        log.info("Initializing the Monitoring library");
        List<String> configurationFiles = new ArrayList<String>();
        // 1. Load the configuration files
        // find the default configuration
        String defaultConfigurationFile = null;
        if (this.getClass().getResource(DEFAULT_PERFORMANCE_CONFIGURATION) != null) {
            defaultConfigurationFile = this.getClass().getResource(DEFAULT_PERFORMANCE_CONFIGURATION).getFile();
        }
        if (defaultConfigurationFile != null) {
            configurationFiles.add(defaultConfigurationFile);
        } else {
            throw new MonitoringException("Unable to initialize the default monitoring service configuration: Unable to find the " + DEFAULT_PERFORMANCE_CONFIGURATION + " file. Do you have the Core Library in your classpath?");
        }
        // find the custom configuration searched in the classpath
        URL customLinuxConfigurationURL = this.getClass().getResource("/" + CUSTOM_PERFORMANCE_CONFIGURATION);
        if (customLinuxConfigurationURL != null) {
            configurationFiles.add(customLinuxConfigurationURL.getPath());
        } else {
            log.debug("No custom linux configuration detected. It is searched as a " + CUSTOM_PERFORMANCE_CONFIGURATION + " file in the classpath");
        }
        // 2. Parse the configuration files
        ReadingsRepository.getInstance().loadConfigurarions(configurationFiles);
        log.info("Successfully initialized the Monitoring service");
    }
}
Also used : MonitoringException(com.axway.ats.monitoring.model.exceptions.MonitoringException) ArrayList(java.util.ArrayList) URL(java.net.URL)

Example 9 with MonitoringException

use of com.axway.ats.monitoring.model.exceptions.MonitoringException in project ats-framework by Axway.

the class ReadingTypes method expandProcessReadings.

/**
     * @param processPattern the pattern to use in order to find the monitored process
     * @param processAlias the alias this process will have into the database
     * @param readingTypes the readings to collect
     *
     * @return a set of readings, if pass more than once the same reading it will be automatically mearged into one
     */
public static Set<FullReadingBean> expandProcessReadings(String parentProcess, String processPattern, String processAlias, String processUsername, String[] readingTypes) {
    Set<String> readingNames = new HashSet<String>();
    for (String readingType : readingTypes) {
        if (readingType.equals(READING_PROCESS_CPU)) {
            // expand all CPU
            readingNames.addAll(SystemMonitorDefinitions.getAllProcessCpuReadings());
        } else if (readingType.equals(READING_PROCESS_MEMORY)) {
            // expand all MEMORY
            readingNames.addAll(SystemMonitorDefinitions.getAllProcessMemoryReadings());
        } else if (SystemMonitorDefinitions.isProcessReading(readingType)) {
            // add this a known process reading
            readingNames.add(readingType);
        } else {
            // unknown process reading
            throw new MonitoringException("Unknown process monitor type " + readingType);
        }
    }
    Map<String, String> parameters = new HashMap<String, String>();
    parameters.put(SystemMonitorDefinitions.PARAMETER_NAME__PROCESS_PARENT_NAME, parentProcess);
    parameters.put(SystemMonitorDefinitions.PARAMETER_NAME__PROCESS_RECOGNITION_PATTERN, processPattern);
    parameters.put(SystemMonitorDefinitions.PARAMETER_NAME__PROCESS_ALIAS, processAlias);
    parameters.put(SystemMonitorDefinitions.PARAMETER_NAME__PROCESS_USERNAME, processUsername);
    List<FullReadingBean> processReadingDefinitions = ReadingsRepository.getInstance().getReadingXmlDefinitions(readingNames);
    for (FullReadingBean processReadingDefinition : processReadingDefinitions) {
        processReadingDefinition.setParameters(parameters);
    }
    // return a set of reading beans
    return new HashSet<FullReadingBean>(processReadingDefinitions);
}
Also used : HashMap(java.util.HashMap) MonitoringException(com.axway.ats.monitoring.model.exceptions.MonitoringException) FullReadingBean(com.axway.ats.common.performance.monitor.beans.FullReadingBean) HashSet(java.util.HashSet)

Example 10 with MonitoringException

use of com.axway.ats.monitoring.model.exceptions.MonitoringException in project ats-framework by Axway.

the class SystemMonitor method initializeSystemMonitoringProcess.

private void initializeSystemMonitoringProcess(String monitoredHost, Set<FullReadingBean> readings) throws MonitoringException {
    log.debug("Initializing the system monitoring process on " + monitoredHost);
    try {
        InternalSystemMonitoringOperations sysMonitoringActions = new InternalSystemMonitoringOperations(monitoredHost);
        sysMonitoringActions.initializeMonitoring(new ArrayList<FullReadingBean>(readings), startTimestamp, pollInterval);
    } catch (AgentException e) {
        throw new MonitoringException("Could not start the system monitoring process on " + monitoredHost + ". For more details check loader logs on that machine", e);
    }
}
Also used : InternalSystemMonitoringOperations(com.axway.ats.agent.components.monitoring.operations.clients.InternalSystemMonitoringOperations) AgentException(com.axway.ats.agent.core.exceptions.AgentException) MonitoringException(com.axway.ats.monitoring.model.exceptions.MonitoringException) FullReadingBean(com.axway.ats.common.performance.monitor.beans.FullReadingBean)

Aggregations

MonitoringException (com.axway.ats.monitoring.model.exceptions.MonitoringException)11 AgentException (com.axway.ats.agent.core.exceptions.AgentException)7 InternalSystemMonitoringOperations (com.axway.ats.agent.components.monitoring.operations.clients.InternalSystemMonitoringOperations)3 FullReadingBean (com.axway.ats.common.performance.monitor.beans.FullReadingBean)3 AbstractLoggerTask (com.axway.ats.monitoring.model.AbstractLoggerTask)3 ArrayList (java.util.ArrayList)3 AgentMonitoringClient (com.axway.ats.agent.webapp.client.AgentMonitoringClient)2 SystemStatsLoggerTask (com.axway.ats.monitoring.model.SystemStatsLoggerTask)2 UserActivityLoggerTask (com.axway.ats.monitoring.model.UserActivityLoggerTask)2 PublicAtsApi (com.axway.ats.common.PublicAtsApi)1 URL (java.net.URL)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1