Class ThroughputInterceptor
- java.lang.Object
-
- org.apache.catalina.tribes.group.ChannelInterceptorBase
-
- org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor
-
- All Implemented Interfaces:
ChannelInterceptor,ThroughputInterceptorMBean,Heartbeat,MembershipListener
public class ThroughputInterceptor extends ChannelInterceptorBase implements ThroughputInterceptorMBean
Interceptor that measures and reports message throughput statistics.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptor
ChannelInterceptor.InterceptorEvent
-
-
Field Summary
Fields Modifier and Type Field Description protected static StringManagersmThe string manager for this package.-
Fields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
optionFlag
-
-
Constructor Summary
Constructors Constructor Description ThroughputInterceptor()Constructs a new ThroughputInterceptor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetInterval()Returns the reporting interval in milliseconds.doublegetLastCnt()Returns the last message count.doublegetMbAppTx()Returns the application-layer transmit rate in MB/s.doublegetMbRx()Returns the receive rate in MB/s.doublegetMbTx()Returns the transmit rate in MB/s.java.util.concurrent.atomic.AtomicLonggetMsgRxCnt()Returns the received message count.java.util.concurrent.atomic.AtomicLonggetMsgTxCnt()Returns the transmitted message count.java.util.concurrent.atomic.AtomicLonggetMsgTxErr()Returns the transmit error count.longgetRxStart()Returns the receive start timestamp.doublegetTimeTx()Returns the last transmit time.longgetTxStart()Returns the transmit start timestamp.voidmessageReceived(ChannelMessage msg)ThemessageReceivedis invoked when a message is received.voidreport(double timeTx)Reports throughput statistics.voidsendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)ThesendMessagemethod is called when a message is being sent to one more destinations.voidsetInterval(int interval)Sets the reporting interval in milliseconds.-
Methods inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
fireInterceptorEvent, getChannel, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, heartbeat, memberAdded, memberDisappeared, okToProcess, setChannel, setNext, setOptionFlag, setPrevious, start, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.catalina.tribes.group.interceptors.ThroughputInterceptorMBean
getOptionFlag
-
-
-
-
Field Detail
-
sm
protected static final StringManager sm
The string manager for this package.
-
-
Method Detail
-
sendMessage
public void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException
Description copied from interface:ChannelInterceptorThesendMessagemethod is called when a message is being sent to one more destinations. The interceptor can modify any of the parameters and then pass on the message down the stack by invokinggetNext().sendMessage(destination,msg,payload).Alternatively the interceptor can stop the message from being sent by not invoking
getNext().sendMessage(destination,msg,payload).If the message is to be sent asynchronous the application can be notified of completion and errors by passing in an error handler attached to a payload object.
The ChannelMessage.getAddress contains Channel.getLocalMember, and can be overwritten to simulate a message sent from another node.
- Specified by:
sendMessagein interfaceChannelInterceptor- Overrides:
sendMessagein classChannelInterceptorBase- Parameters:
destination- Member[] - the destination for this messagemsg- ChannelMessage - the message to be sentpayload- InterceptorPayload - the payload, carrying an error handler and future useful data, can be null- Throws:
ChannelException- if a serialization error happens.- See Also:
ErrorHandler,InterceptorPayload
-
messageReceived
public void messageReceived(ChannelMessage msg)
Description copied from interface:ChannelInterceptorThemessageReceivedis invoked when a message is received.ChannelMessage.getAddress()is the sender, or the reply-to address if it has been overwritten.- Specified by:
messageReceivedin interfaceChannelInterceptor- Overrides:
messageReceivedin classChannelInterceptorBase- Parameters:
msg- ChannelMessage
-
report
public void report(double timeTx)
Description copied from interface:ThroughputInterceptorMBeanReports throughput statistics.- Specified by:
reportin interfaceThroughputInterceptorMBean- Parameters:
timeTx- the transmit time
-
setInterval
public void setInterval(int interval)
Description copied from interface:ThroughputInterceptorMBeanSets the reporting interval in milliseconds.- Specified by:
setIntervalin interfaceThroughputInterceptorMBean- Parameters:
interval- the interval
-
getInterval
public int getInterval()
Description copied from interface:ThroughputInterceptorMBeanReturns the reporting interval in milliseconds.- Specified by:
getIntervalin interfaceThroughputInterceptorMBean- Returns:
- the interval
-
getLastCnt
public double getLastCnt()
Description copied from interface:ThroughputInterceptorMBeanReturns the last message count.- Specified by:
getLastCntin interfaceThroughputInterceptorMBean- Returns:
- the last count
-
getMbAppTx
public double getMbAppTx()
Description copied from interface:ThroughputInterceptorMBeanReturns the application-layer transmit rate in MB/s.- Specified by:
getMbAppTxin interfaceThroughputInterceptorMBean- Returns:
- the MB/s rate
-
getMbRx
public double getMbRx()
Description copied from interface:ThroughputInterceptorMBeanReturns the receive rate in MB/s.- Specified by:
getMbRxin interfaceThroughputInterceptorMBean- Returns:
- the MB/s rate
-
getMbTx
public double getMbTx()
Description copied from interface:ThroughputInterceptorMBeanReturns the transmit rate in MB/s.- Specified by:
getMbTxin interfaceThroughputInterceptorMBean- Returns:
- the MB/s rate
-
getMsgRxCnt
public java.util.concurrent.atomic.AtomicLong getMsgRxCnt()
Description copied from interface:ThroughputInterceptorMBeanReturns the received message count.- Specified by:
getMsgRxCntin interfaceThroughputInterceptorMBean- Returns:
- the count
-
getMsgTxCnt
public java.util.concurrent.atomic.AtomicLong getMsgTxCnt()
Description copied from interface:ThroughputInterceptorMBeanReturns the transmitted message count.- Specified by:
getMsgTxCntin interfaceThroughputInterceptorMBean- Returns:
- the count
-
getMsgTxErr
public java.util.concurrent.atomic.AtomicLong getMsgTxErr()
Description copied from interface:ThroughputInterceptorMBeanReturns the transmit error count.- Specified by:
getMsgTxErrin interfaceThroughputInterceptorMBean- Returns:
- the count
-
getRxStart
public long getRxStart()
Description copied from interface:ThroughputInterceptorMBeanReturns the receive start timestamp.- Specified by:
getRxStartin interfaceThroughputInterceptorMBean- Returns:
- the timestamp
-
getTimeTx
public double getTimeTx()
Description copied from interface:ThroughputInterceptorMBeanReturns the last transmit time.- Specified by:
getTimeTxin interfaceThroughputInterceptorMBean- Returns:
- the time
-
getTxStart
public long getTxStart()
Description copied from interface:ThroughputInterceptorMBeanReturns the transmit start timestamp.- Specified by:
getTxStartin interfaceThroughputInterceptorMBean- Returns:
- the timestamp
-
-