PartyEndpointStatistic

Types of statistics that can be retrieved for an endpoint.

Syntax

enum class PartyEndpointStatistic    
{  
    CurrentlyQueuedSendMessages = 0,  
    CurrentlyQueuedSendMessageBytes = 1,  
    CurrentlyActiveSendMessages = 2,  
    CurrentlyActiveSendMessageBytes = 3,  
    TimedOutSendMessages = 4,  
    TimedOutSendMessageBytes = 5,  
    CanceledSendMessages = 6,  
    CanceledSendMessageBytes = 7,  
    AverageDeviceRoundTripLatencyInMilliseconds = 8,  
}  

Constants

Constant Description
CurrentlyQueuedSendMessages The number of messages currently queued by PartyLocalEndpoint::SendMessage() but not yet transmitted from the local endpoint to the specified target endpoints.

For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to PartyLocalEndpoint::GetEndpointStatistics() when querying for this statistic, the message will only be counted a single time rather than multiplied per target endpoint.
CurrentlyQueuedSendMessageBytes The number of bytes of data in messages currently queued by PartyLocalEndpoint::SendMessage() but not yet transmitted from the local endpoint to the specified target endpoints.

For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to PartyLocalEndpoint::GetEndpointStatistics() when querying for this statistic, the message bytes will only be counted a single time rather than multiplied per target endpoint.
CurrentlyActiveSendMessages The number of PartyLocalEndpoint::SendMessage() messages from the local endpoint to the specified target endpoints that are currently being transmitted or still have more local state changes to be processed.

A message is considered "active" as soon as its first byte has been placed in a packet that is being transmitted. It remains active until transmission completes and the local PartyDataBuffersReturnedStateChange for it (if applicable) has been returned to PartyManager::FinishProcessingStateChanges().

For efficiency, only a single message is tracked per PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to PartyLocalEndpoint::GetEndpointStatistics() when querying for this statistic, the message will only be counted a single time rather than multiplied per target endpoint.
CurrentlyActiveSendMessageBytes The number of bytes of data in PartyLocalEndpoint::SendMessage() messages from the local endpoint to the specified target endpoints that are currently being transmitted or still have more local state changes to be processed.

A message is considered "active" as soon as its first byte has been placed in a packet that is being transmitted. It remains active until transmission completes and the local PartyDataBuffersReturnedStateChange for it (if applicable) has been returned to PartyManager::FinishProcessingStateChanges().

For efficiency, only a single message is tracked per PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to PartyLocalEndpoint::GetEndpointStatistics() when querying for this statistic, the message bytes will only be counted a single time rather than multiplied per target endpoint.
TimedOutSendMessages The total number of PartyLocalEndpoint::SendMessage() messages from the local endpoint to the specified target endpoints that were ever discarded for exceeding their send queue timeouts without being transmitted.

A message's send queue timeout is specified using PartySendMessageQueuingConfiguration::timeoutInMillseconds when calling PartyLocalEndpoint::SendMessage().

For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to PartyLocalEndpoint::GetEndpointStatistics() when querying for this statistic, the message will only be counted a single time rather than multiplied per target endpoint.

When querying this statistic for all target endpoints by providing a zero-entry array to PartyLocalEndpoint::GetEndpointStatistics(), note that only endpoints that currently exist will be included. If an endpoint that had timed out messages gets destroyed between queries, this count might be perceived as "going backward".
TimedOutSendMessageBytes The total number of bytes of data in PartyLocalEndpoint::SendMessage() messages from the local endpoint to the specified target endpoints that were ever discarded for exceeding their send queue timeouts without being transmitted.

A message's send queue timeout is specified using PartySendMessageQueuingConfiguration::timeoutInMillseconds when calling PartyLocalEndpoint::SendMessage().

For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the transparent cloud relay server. If two or more of those endpoints are specified to PartyLocalEndpoint::GetEndpointStatistics() when querying for this statistic, the message bytes will only be counted a single time rather than multiplied per target endpoint.

When querying this statistic for all target endpoints by providing a zero-entry array to PartyLocalEndpoint::GetEndpointStatistics(), note that only endpoints that currently exist will be included. If an endpoint that had timed out messages gets destroyed between queries, this count might be perceived as "going backward".
CanceledSendMessages The total number of PartyLocalEndpoint::SendMessage() messages from the local endpoint to the specified target endpoints that were ever canceled.

Messages are canceled before being transmitted by the application calling PartyLocalEndpoint::CancelMessages() with a matching filter expression.

For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the PartyNetwork transparent cloud relay server. If two or more of those endpoints are specified to PartyLocalEndpoint::GetEndpointStatistics() when querying for this statistic, the message will only be counted a single time rather than multiplied per target endpoint.

When querying this statistic for all target endpoints by providing a zero-entry array to PartyLocalEndpoint::GetEndpointStatistics(), note that only endpoints that currently exist will be included. If an endpoint that had canceled messages gets destroyed between queries, this count might be perceived as "going backward".
CanceledSendMessageBytes The total number of bytes of data in PartyLocalEndpoint::SendMessage() messages from the local endpoint to the specified target endpoints that were ever canceled.

Messages are canceled before being transmitted by the application calling PartyLocalEndpoint::CancelMessages() with a matching filter expression.

For efficiency, only a single message is queued by PartyLocalEndpoint::SendMessage() when sending to multiple target endpoints at once via the PartyNetwork transparent cloud relay server. If two or more of those endpoints are specified to PartyLocalEndpoint::GetEndpointStatistics() when querying for this statistic, the message bytes will only be counted a single time rather than multiplied per target endpoint.

When querying this statistic for all target endpoints by providing a zero-entry array to PartyLocalEndpoint::GetEndpointStatistics(), note that only endpoints that currently exist will be included. If an endpoint that had canceled messages gets destroyed between queries, this count might be perceived as "going backward".
AverageDeviceRoundTripLatencyInMilliseconds The current moving average round trip latency ("ping time") in milliseconds to the endpoint's owning device.

This latency represents a moving average of the time it currently takes for this local device to send a message and receive a response from the target endpoint's device.

This statistic can only be queried for exactly one target endpoint at a time. The PartyLocalEndpoint::GetEndpointStatistics() method will fail if multiple targets are provided, or if a zero-entry array is provided to attempt to query all current endpoints.

You can also determine the local device's average round trip latency to the network's transparent cloud relay server by using PartyNetwork::GetNetworkStatistics() to retrieve the PartyNetworkStatistic::AverageRelayServerRoundTripLatencyInMilliseconds statistic.

Requirements

Header: Party.h

See also

Party members
PartyNetworkStatistic
PartySendMessageQueuingConfiguration
PartyLocalEndpoint::SendMessage
PartyLocalEndpoint::GetEndpointStatistics
PartyNetwork::GetNetworkStatistics