The MessagePerformanceUtils utility class is used to retrieve various metrics about
the sizing and timing of a message sent from a client to the server and its
response message, as well as pushed messages from the server to the client.
Metrics are gathered when corresponding properties on the channel used are enabled:
<record-message-times>
denotes capturing of timing information,
<record-message-sizes>
denotes capturing of sizing information.
You can then use methods of this utility class to retrieve various performance information about the message that you have just received.
When these metrics are enabled an instance of this class should be created from a response, acknowledgement, or message handler using code such as below:
var mpiutil:MessagePerformanceUtils = new MessagePerformanceUtils(event.message);
Constructor
new(message:Dynamic)
Constructor
Creates an MPUtils instance with information from the MPI headers of the passed in message
Parameters:
message | The message whose MPI headers will be used in retrieving MPI information |
---|
Variables
read onlyclientReceiveTime:Float
Timestamp in milliseconds since epoch of when the client received response message from the server.
Returns:
Timestamp in milliseconds since epoch
read onlymessageSize:Int
The size of the original client message as measured during deserialization by the server endpoint.
Returns:
Message size in Bytes
read onlynetworkRTT:Float
The network round trip time for a client message and the server response to it, calculated by the difference between total time and server processing time.
Returns:
Network round trip time in milliseconds
read onlyoriginatingMessageSentTime:Float
Only populated in the case of a pushed message, timestamp in milliseconds since epoch of when the client that caused a push message sent its message.
Returns:
Timestamp in milliseconds since epoch
read onlyoriginatingMessageSize:Float
Only populated in the case of a pushed message, size in Bytes of the message that originally caused this pushed message.
Returns:
Pushed causer message size in Bytes
read onlypushOneWayTime:Float
Only populated in the case of a pushed message, this is the network time between the server pushing the message and the client receiving it. Note that the server and client clocks must be in sync for this to be meaningful.
Returns:
One way server push time in milliseconds
read onlypushedMessageFlag:Bool
Returns true if message was pushed to the client and is not a response to a message that originated on the client.
Returns:
true if this message was pushed to the client and is not a response to a message that originated on the client
read onlyresponseMessageSize:Int
The size of the response message sent to the client by the server as measured during serialization at the server endpoint.
Returns:
Message size in Bytes
read onlyserverAdapterExternalTime:Float
Time spent in a module invoked from the adapter associated with the destination for this message but external to it, before either the response to the message was ready or the message had been prepared to be pushed to the receiving client.
Returns:
Server adapter-external processing time in milliseconds
read onlyserverAdapterTime:Float
Time spent in the adapter associated with the destination for this message before either the response to the message was ready or the message had been prepared to be pushed to the receiving client.
Returns:
Server adapter processing time in milliseconds
read onlyserverNonAdapterTime:Float
Server processing time spent outside of the adapter associated with the destination of this message.
read onlyserverPollDelay:Float
Time that the message waited on the server after it was ready to be pushed to the client but had not yet been polled for.
read onlyserverPrePushTime:Float
Time between server receiving the client message and the server beginning to push messages out to other clients as a result of the original message.
Returns:
Server pre-push processing time in milliseconds
read onlyserverProcessingTime:Float
Time between server receiving the client message and either the time the server responded to the received message or had the pushed message ready to be sent to the receiving client.
Returns:
Server processing time in milliseconds
read onlyserverSendTime:Float
Timestamp in milliseconds since epoch of when the server sent a response message back to the client.
Returns:
Timestamp in milliseconds since epoch
read onlytotalPushTime:Float
Only populated in the case of a pushed message, this is the time between the push causing client sending its message and the push receving client receiving it. Note that the two clients' clocks must be in sync for this to be meaningful.
Returns:
Total push time in milliseconds
read onlytotalTime:Float
Time between this client sending a message and receiving a response for it from the server
Returns:
Total time in milliseconds
Methods
prettyPrint():String
Returns a summary of all information available in MPI.
For example:
var mpiutil:MessagePerformanceUtils = new MessagePerformanceUtils(message);
Alert.show(mpiutil.prettyPrint(), "MPI Output", Alert.NONMODAL);
Returns:
String containing a summary of all information available in MPI