public interface RateLimiterMBean extends LimiterMBean
Defines the JMX interface for controlling a single rate limiter.
A CompositeData object containing detailed Limiter information for specified nodes is returned by the methods LimiterMBean.getInfoSummary(int[]) and LimiterMBean.getConfigSummary().
| Field | Open Type | Description |
|---|---|---|
limiter-name |
String |
The name of this limiter.
Always |
type |
String |
The type of this limiter.
Always |
node-id |
Integer |
The node ID that this row applies to. |
parent |
String |
The name of the parent of this limiter or null if it has no parent.
Always |
maxrate |
Double |
The maximum rate setting for this limiter |
time-unit |
String |
The time unit setting for this limiter.
Always |
bypassed |
Boolean |
The bypassed setting for this limiter |
depth |
Double |
The depth setting for this limiter |
| Modifier and Type | Method and Description |
|---|---|
double |
getDepthDefault()
Get the default "depth" of this limiter (depth is the number of time units' worth of work capacity can be stored by the rate limiter).
|
double[] |
getDepthForNode(int[] nodeIDs)
Get the per-node "depth" of this limiter on the specified nodes (depth is the number of time units' worth of work capacity can be stored by the rate limiter).
|
double |
getMaxRateDefault()
Get the default maximum number of units which can be consumed per time unit by this limiter, eg "100" for a rate of 100 per second.
|
double[] |
getMaxRateForNode(int[] nodeIDs)
Get the per-node maximum number of units which can be consumed per time unit by this limiter on the specified nodes, eg "100" for a rate of 100 per second.
|
String |
getTimeUnit()
Get the type of time unit to be used by this limiter when setting the rate, eg the "seconds" in a rate of 100 per second.
|
void |
setDepthDefault(double depth)
Set the default "depth" of this limiter (depth is the number of time units' worth of work capacity can be stored by the rate limiter).
|
void |
setDepthForNode(double[] depth,
int[] nodeIDs)
Set the per-node "depth" of this limiter on the specified nodes (depth is the number of time units' worth of work capacity can be stored by the rate limiter).
|
void |
setMaxRateDefault(double maxRate)
Set the default maximum number of units which can be consumed per time unit by this limiter, eg "100" for a rate of 100 per second.
|
void |
setMaxRateForNode(double[] maxRate,
int[] nodeIDs)
Set the per-node maximum number of units which can be consumed per time unit by this limiter on the specified nodes, eg "100" for a rate of 100 per second.
|
void |
setTimeUnit(String timeUnit)
Set the type of time unit to be used by this limiter when setting the rate, eg the "seconds" in a rate of 100 per second.
|
getChildLimiters, getConfigSummary, getConnectedEndPoints, getInfoSummary, getName, getParent, getType, isBypassedDefault, isBypassedForNode, setBypassedDefault, setBypassedForNode, setParent, useDefaultConfigdouble getMaxRateDefault()
throws ConfigurationException
Get the default maximum number of units which can be consumed per time unit by this limiter, eg "100" for a rate of 100 per second. This value will be used when no per-node setting exists for a given node.
ConfigurationExceptiondouble[] getMaxRateForNode(int[] nodeIDs)
throws ConfigurationException,
NullPointerException,
InvalidArgumentException
Get the per-node maximum number of units which can be consumed per time unit by this limiter on the specified nodes, eg "100" for a rate of 100 per second.
void setMaxRateDefault(double maxRate)
throws ConfigurationException,
com.opencloud.util.exception.ValidationException
Set the default maximum number of units which can be consumed per time unit by this limiter, eg "100" for a rate of 100 per second. This value will be used when no per-node setting exists for a given node.
ConfigurationExceptioncom.opencloud.util.exception.ValidationExceptionvoid setMaxRateForNode(double[] maxRate,
int[] nodeIDs)
throws ConfigurationException,
NullPointerException,
InvalidArgumentException,
com.opencloud.util.exception.ValidationException
Set the per-node maximum number of units which can be consumed per time unit by this limiter on the specified nodes, eg "100" for a rate of 100 per second.
ConfigurationExceptionNullPointerExceptionInvalidArgumentExceptioncom.opencloud.util.exception.ValidationExceptionString getTimeUnit() throws ConfigurationException
Get the type of time unit to be used by this limiter when setting the rate, eg the "seconds" in a rate of 100 per second. Valid values are SECONDS, MINUTES, HOURS, and DAYS.
ConfigurationExceptionvoid setTimeUnit(String timeUnit) throws ConfigurationException, com.opencloud.util.exception.ValidationException
Set the type of time unit to be used by this limiter when setting the rate, eg the "seconds" in a rate of 100 per second. Valid values are "SECONDS", "MINUTES", "HOURS", and "DAYS".
ConfigurationExceptioncom.opencloud.util.exception.ValidationExceptiondouble getDepthDefault()
throws ConfigurationException
Get the default "depth" of this limiter (depth is the number of time units' worth of work capacity can be stored by the rate limiter). This value will be used when no per-node setting exists for a given node. "Depth" is used to control the amount of burstiness allowed by the rate limiter. High values mean more tolerance of load bursts. Low values result in tighter, more fine grained rate limiting, and less tolerance of load bursts. "1.0" is the default value, and should be adequate for most applications. E.g. for a setting of "200 per second" at depth "1.0", the rate limiter can store up to 200 work units of capacity (1 seconds' worth), which may be used all at once in a load spike. A setting of "2.0" would mean that up to 400 work units could be stored, and a setting of "0.5" means that up to 100 units will be stored.
ConfigurationExceptiondouble[] getDepthForNode(int[] nodeIDs)
throws ConfigurationException,
NullPointerException,
InvalidArgumentException
Get the per-node "depth" of this limiter on the specified nodes (depth is the number of time units' worth of work capacity can be stored by the rate limiter). "Depth" is used to control the amount of burstiness allowed by the rate limiter. High values mean more tolerance of load bursts. Low values result in tighter, more fine grained rate limiting, and less tolerance of load bursts. "1.0" is the default value, and should be adequate for most applications. E.g. for a setting of "200 per second" at depth "1.0", the rate limiter can store up to 200 work units of capacity (1 seconds' worth), which may be used all at once in a load spike. A setting of "2.0" would mean that up to 400 work units could be stored, and a setting of "0.5" means that up to 100 units will be stored.
void setDepthDefault(double depth)
throws ConfigurationException,
com.opencloud.util.exception.ValidationException
Set the default "depth" of this limiter (depth is the number of time units' worth of work capacity can be stored by the rate limiter). This value will be used when no per-node setting exists for a given node. "Depth" is used to control the amount of burstiness allowed by the rate limiter. High values mean more tolerance of load bursts. Low values result in tighter, more fine grained rate limiting, and less tolerance of load bursts. "1.0" is the default value, and should be adequate for most applications. E.g. for a setting of "200 per second" at depth "1.0", the rate limiter can store up to 200 work units of capacity (1 seconds' worth), which may be used all at once in a load spike. A setting of "2.0" would mean that up to 400 work units could be stored, and a setting of "0.5" means that up to 100 units will be stored.
ConfigurationExceptioncom.opencloud.util.exception.ValidationExceptionvoid setDepthForNode(double[] depth,
int[] nodeIDs)
throws ConfigurationException,
com.opencloud.util.exception.ValidationException,
NullPointerException,
InvalidArgumentException
Set the per-node "depth" of this limiter on the specified nodes (depth is the number of time units' worth of work capacity can be stored by the rate limiter). "Depth" is used to control the amount of burstiness allowed by the rate limiter. High values mean more tolerance of load bursts. Low values result in tighter, more fine grained rate limiting, and less tolerance of load bursts. "1.0" is the default value, and should be adequate for most applications. E.g. for a setting of "200 per second" at depth "1.0", the rate limiter can store up to 200 work units of capacity (1 seconds' worth), which may be used all at once in a load spike. A setting of "2.0" would mean that up to 400 work units could be stored, and a setting of "0.5" means that up to 100 units will be stored.
ConfigurationExceptioncom.opencloud.util.exception.ValidationExceptionNullPointerExceptionInvalidArgumentException