org.apache.jmeter.monitor.util

Class Stats


public class Stats
extends Object

Description:

Stats is responsible for calculating the load and health of a given server. It uses tomcat's status servlet results. A schema was generated for the XML output and JAXB was used to generate classes.

The equations are:

memory weight = (int)(50 * (free/max))
thread weight = (int)(50 * (current/max))

The load factors are stored in the properties files. Simply change the values in the properties to change how load is calculated. The defaults values are memory (50) and threads (50). The sum of the factors must equal 100.

Field Summary

static int
ACTIVE
static double
ACTIVE_PER
static int
DEAD
static int
DEFAULT_MEMORY_FACTOR
static int
DEFAULT_THREAD_FACTOR
static int
HEALTHY
static double
HEALTHY_PER
static int
WARNING
static double
WARNING_PER

Method Summary

static int
calculateLoad(Status stat)
The method is responsible for taking a status object and calculating an int value from 1 to 100.
static int
calculateMemoryLoad(Status stat)
Method will calculate the memory load: used / max = load.
static int
calculateStatus(Status stat)
Method should calculate if the server is: dead, active, warning or healthy.
static int
calculateThreadLoad(Status stat)
Method will calculate the thread load: busy / max = load.

Field Details

ACTIVE

public static final int ACTIVE
Field Value:
2

ACTIVE_PER

public static final double ACTIVE_PER
Field Value:
0.0

DEAD

public static final int DEAD
Field Value:
0

DEFAULT_MEMORY_FACTOR

public static final int DEFAULT_MEMORY_FACTOR
Field Value:
50

DEFAULT_THREAD_FACTOR

public static final int DEFAULT_THREAD_FACTOR
Field Value:
50

HEALTHY

public static final int HEALTHY
Field Value:
3

HEALTHY_PER

public static final double HEALTHY_PER
Field Value:
0.0

WARNING

public static final int WARNING
Field Value:
1

WARNING_PER

public static final double WARNING_PER
Field Value:
0.0

Method Details

calculateLoad

public static int calculateLoad(Status stat)
The method is responsible for taking a status object and calculating an int value from 1 to 100. We use a combination of free memory and free threads. The current factor is 50/50.

Parameters:
stat -
Returns:
calculated load value

calculateMemoryLoad

public static int calculateMemoryLoad(Status stat)
Method will calculate the memory load: used / max = load. The load value is an integer between 1 and 100. It is the percent memory used. Changed this to be more like other system monitors. Peter Lin 2-11-05
Parameters:
stat -
Returns:
memory load

calculateStatus

public static int calculateStatus(Status stat)
Method should calculate if the server is: dead, active, warning or healthy. We do this by looking at the current busy threads.
  1. free > spare is healthy
  2. free < spare is active
  3. busy threads > 75% is warning
  4. none of the above is dead
Parameters:
stat -
Returns:
integer representing the status

calculateThreadLoad

public static int calculateThreadLoad(Status stat)
Method will calculate the thread load: busy / max = load. The value is an integer between 1 and 100. It is the percent busy.
Parameters:
stat -
Returns:
thread load

Copyright © 1998-2010 Apache Software Foundation. All Rights Reserved.