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

@:flash.propertyread onlyclientReceiveTime:Float

Timestamp in milliseconds since epoch of when the client received response message from the server.

Returns:

Timestamp in milliseconds since epoch

@:flash.propertyread onlymessageSize:Int

The size of the original client message as measured during deserialization by the server endpoint.

Returns:

Message size in Bytes

@:flash.propertyread 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

@:flash.propertyread 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

@:flash.propertyread 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

@:flash.propertyread 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

@:flash.propertyread 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

@:flash.propertyread 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

@:flash.propertyread 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

@:flash.propertyread 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

@:flash.propertyread onlyserverNonAdapterTime:Float

Server processing time spent outside of the adapter associated with the destination of this message.

@:flash.propertyread 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.

@:flash.propertyread 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

@:flash.propertyread 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

@:flash.propertyread 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

@:flash.propertyread 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

@:flash.propertyread 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