Class TrafficCounter
java.lang.Object
org.jboss.netty.handler.traffic.TrafficCounter
- Direct Known Subclasses:
GlobalChannelTrafficCounter
TrafficCounter is associated with AbstractTrafficShapingHandler.
AbstractTrafficShapingHandler doAccounting method at every
specified interval. If this interval is set to 0, therefore no accounting will be done and only
statistics will be computed at each receive or write operations.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classClass to implement monitoring at fix delay -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final AtomicLongDelay between two capturesprivate final AtomicLongLong life read bytesprivate final AtomicLongLong life written bytesprivate final AtomicLongCurrent read bytesprivate final AtomicLongCurrent written bytesprivate longLast Time where cumulative bytes where reset to zero: this time is a real EPOC time (informative only)private longLast read bytes number during last check intervalprivate longLast reading time during last check intervalprivate longLast reading bandwidth(package private) final AtomicLongLast Time Check takenprivate longLast writing bandwidthprivate longLast future writing time during last check intervalprivate longLast written bytes number during last check intervalprivate static final InternalLogger(package private) booleanIs Monitor active(package private) final StringName of this Monitorprivate longLast reading delay during current check intervalprivate longReal writing bandwidthprivate final AtomicLongReal written bytes(package private) Timeoutused in stop() to cancel the timer(package private) final TimerOne Timer for all Counter(package private) TimerTaskMonitor created once in start()(package private) final AbstractTrafficShapingHandlerThe associated TrafficShapingHandlerprivate longLast writing time during current check interval -
Constructor Summary
ConstructorsConstructorDescriptionTrafficCounter(AbstractTrafficShapingHandler trafficShapingHandler, Timer timer, String name, long checkInterval) Constructor with theAbstractTrafficShapingHandlerthat hosts it, the Timer to use, its name, the checkInterval between two computations in millisecond. -
Method Summary
Modifier and TypeMethodDescription(package private) voidbytesRealWriteFlowControl(long write) Computes counters for Real Write.(package private) voidbytesRecvFlowControl(long recv) Computes counters for Read.(package private) voidbytesWriteFlowControl(long write) Computes counters for Write.voidconfigure(long newcheckInterval) Change checkInterval between two computations in millisecond.longlonglonglonglonglonglonglonglonglonglonggetName()longstatic longlongreadTimeToWait(long size, long limitTraffic, long maxTime) Deprecated.longreadTimeToWait(long size, long limitTraffic, long maxTime, long now) Returns the time to wait (if any) for the given length message, using the given limitTraffic and the max wait time.(package private) voidresetAccounting(long newLastTime) Reset the accounting on Read and Write.voidReset both read and written cumulative bytes counters and the associated absolute time from System.currentTimeMillis().voidstart()Start the monitoring process.voidstop()Stop the monitoring process.toString()String informationlongwriteTimeToWait(long size, long limitTraffic, long maxTime) Deprecated.longwriteTimeToWait(long size, long limitTraffic, long maxTime, long now) Returns the time to wait (if any) for the given length message, using the given limitTraffic and the max wait time.
-
Field Details
-
logger
-
currentWrittenBytes
Current written bytes -
currentReadBytes
Current read bytes -
writingTime
private long writingTimeLast writing time during current check interval -
readingTime
private long readingTimeLast reading delay during current check interval -
cumulativeWrittenBytes
Long life written bytes -
cumulativeReadBytes
Long life read bytes -
lastCumulativeTime
private long lastCumulativeTimeLast Time where cumulative bytes where reset to zero: this time is a real EPOC time (informative only) -
lastWriteThroughput
private long lastWriteThroughputLast writing bandwidth -
lastReadThroughput
private long lastReadThroughputLast reading bandwidth -
lastTime
Last Time Check taken -
lastWrittenBytes
private volatile long lastWrittenBytesLast written bytes number during last check interval -
lastReadBytes
private volatile long lastReadBytesLast read bytes number during last check interval -
lastWritingTime
private volatile long lastWritingTimeLast future writing time during last check interval -
lastReadingTime
private volatile long lastReadingTimeLast reading time during last check interval -
realWrittenBytes
Real written bytes -
realWriteThroughput
private long realWriteThroughputReal writing bandwidth -
checkInterval
Delay between two captures -
name
Name of this Monitor -
trafficShapingHandler
The associated TrafficShapingHandler -
timer
One Timer for all Counter -
timerTask
TimerTask timerTaskMonitor created once in start() -
timeout
used in stop() to cancel the timer -
monitorActive
volatile boolean monitorActiveIs Monitor active
-
-
Constructor Details
-
TrafficCounter
public TrafficCounter(AbstractTrafficShapingHandler trafficShapingHandler, Timer timer, String name, long checkInterval) Constructor with theAbstractTrafficShapingHandlerthat hosts it, the Timer to use, its name, the checkInterval between two computations in millisecond.- Parameters:
trafficShapingHandler- the associated AbstractTrafficShapingHandlertimer- Could be a HashedWheelTimer, might be null when used fromGlobalChannelTrafficCounter.name- the name given to this monitorcheckInterval- the checkInterval in millisecond between two computations.
-
-
Method Details
-
milliSecondFromNano
public static long milliSecondFromNano()- Returns:
- the time in ms using nanoTime, so not real EPOCH time but elapsed time in ms.
-
start
public void start()Start the monitoring process. -
stop
public void stop()Stop the monitoring process. -
resetAccounting
void resetAccounting(long newLastTime) Reset the accounting on Read and Write. -
configure
public void configure(long newcheckInterval) Change checkInterval between two computations in millisecond. -
bytesRecvFlowControl
void bytesRecvFlowControl(long recv) Computes counters for Read.- Parameters:
recv- the size in bytes to read
-
bytesWriteFlowControl
void bytesWriteFlowControl(long write) Computes counters for Write.- Parameters:
write- the size in bytes to write
-
bytesRealWriteFlowControl
void bytesRealWriteFlowControl(long write) Computes counters for Real Write.- Parameters:
write- the size in bytes to write
-
getCheckInterval
public long getCheckInterval()- Returns:
- the current checkInterval between two computations of traffic counter in millisecond.
-
getLastReadThroughput
public long getLastReadThroughput()- Returns:
- the Read Throughput in bytes/s computes in the last check interval.
-
getLastWriteThroughput
public long getLastWriteThroughput()- Returns:
- the Write Throughput in bytes/s computes in the last check interval.
-
getLastReadBytes
public long getLastReadBytes()- Returns:
- the number of bytes read during the last check Interval.
-
getLastWrittenBytes
public long getLastWrittenBytes()- Returns:
- the number of bytes written during the last check Interval.
-
getCurrentReadBytes
public long getCurrentReadBytes()- Returns:
- the current number of bytes read since the last checkInterval.
-
getCurrentWrittenBytes
public long getCurrentWrittenBytes()- Returns:
- the current number of bytes written since the last check Interval.
-
getLastTime
public long getLastTime()- Returns:
- the Time in millisecond of the last check as of System.currentTimeMillis().
-
getCumulativeWrittenBytes
public long getCumulativeWrittenBytes()- Returns:
- the cumulativeWrittenBytes
-
getCumulativeReadBytes
public long getCumulativeReadBytes()- Returns:
- the cumulativeReadBytes
-
getLastCumulativeTime
public long getLastCumulativeTime()- Returns:
- the lastCumulativeTime in millisecond as of System.currentTimeMillis() when the cumulative counters were reset to 0.
-
getRealWrittenBytes
- Returns:
- the realWrittenBytes
-
getRealWriteThroughput
public long getRealWriteThroughput()- Returns:
- the realWriteThroughput
-
resetCumulativeTime
public void resetCumulativeTime()Reset both read and written cumulative bytes counters and the associated absolute time from System.currentTimeMillis(). -
readTimeToWait
Deprecated.Returns the time to wait (if any) for the given length message, using the given limitTraffic and the max wait time.- Parameters:
size- the recv sizelimitTraffic- the traffic limit in bytes per secondmaxTime- the max time in ms to wait in case of excess of traffic.- Returns:
- the current time to wait (in ms) if needed for Read operation.
-
readTimeToWait
public long readTimeToWait(long size, long limitTraffic, long maxTime, long now) Returns the time to wait (if any) for the given length message, using the given limitTraffic and the max wait time.- Parameters:
size- the recv sizelimitTraffic- the traffic limit in bytes per secondmaxTime- the max time in ms to wait in case of excess of traffic.now- the current time- Returns:
- the current time to wait (in ms) if needed for Read operation.
-
writeTimeToWait
Deprecated.Returns the time to wait (if any) for the given length message, using the given limitTraffic and the max wait time.- Parameters:
size- the write sizelimitTraffic- the traffic limit in bytes per secondmaxTime- the max time in ms to wait in case of excess of traffic.- Returns:
- the current time to wait (in ms) if needed for Write operation.
-
writeTimeToWait
public long writeTimeToWait(long size, long limitTraffic, long maxTime, long now) Returns the time to wait (if any) for the given length message, using the given limitTraffic and the max wait time.- Parameters:
size- the write sizelimitTraffic- the traffic limit in bytes per secondmaxTime- the max time in ms to wait in case of excess of traffic.now- the current time- Returns:
- the current time to wait (in ms) if needed for Write operation.
-
getName
- Returns:
- the name
-
toString
-