All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bonitasoft.engine.monitoring.mbean.SJvmMXBean Maven / Gradle / Ivy

/**
 * Copyright (C) 2011-2013 BonitaSoft S.A.
 * BonitaSoft, 32 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301, USA.
 **/
package org.bonitasoft.engine.monitoring.mbean;

import java.util.Map;

/**
 * @author Christophe Havard
 * @author Matthieu Chaffotte
 */
public interface SJvmMXBean extends BonitaMXBean {

    /**
     * Returns the sum of both heap and non-heap memory usage.
     */
    long getMemoryUsage();

    /**
     * Returns the percentage of memory used compare to maximum available memory.
     * This calculation is based on both the heap & non-heap maximum amount of memory that can be used.
     * 
     * @throws MonitoringException
     */
    float getMemoryUsagePercentage();

    /**
     * Returns the system load average for the last minute.
     * The system load average is the sum of the number of runnable entities queued to the available
     * processors and the number of runnable entities running on the available processors averaged over
     * a period of time. The way in which the load average is calculated is operating system specific
     * but is typically a damped time-dependent average.
     * If the load average is not available, a negative value is returned.
     */
    double getSystemLoadAverage();

    /**
     * Returns the number of milliseconds elapsed since the Java Virtual Machine started.
     */
    long getUpTime();

    /**
     * Returns a timestamp (in millisecond) which indicates the date when the Java virtual
     * machine started.
     * Usually, a timestamp represents the time elapsed since the 1st of January, 1970.
     */
    long getStartTime();

    /**
     * Returns the total CPU time for all live threads in nanoseconds. It sums the CPU time
     * consumed by each live threads.
     */
    long getTotalThreadsCpuTime();

    /**
     * Returns the current number of live threads including both daemon and non-daemon threads.
     */
    int getThreadCount();

    /**
     * Returns the operating system architecture
     */
    String getOSArch();

    /**
     * Returns the number of processors available to the Java virtual machine.
     */
    int getAvailableProcessors();

    /**
     * Return the OS name
     */
    String getOSName();

    /**
     * Return the OS version
     */
    String getOSVersion();

    /**
     * Returns the Java virtual machine implementation name
     */
    String getJvmName();

    /**
     * Returns the Java virtual machine implementation vendor
     */
    String getJvmVendor();

    /**
     * Returns the Java virtual machine implementation version
     */
    String getJvmVersion();

    /**
     * Returns the Java virtual machine System properties list
     */
    Map getJvmSystemProperties();

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy