Skip to main content

PlayerExperience

Summary​

MembersDescriptions
define PEX_ADD_INDEXED_STAT_TO_REPORT
define PEX_ADD_INDEXED_COUNTER_TO_REPORT
enum ERH_PEXValueTypeEnum representing what value should be recorded when only a single value is requested for display or logging.
class URH_PEXCollectorConfig
class URH_PEXCollectorConfig_Client
class URH_PEXCollectorConfig_Host
class URH_PEXCollectorConfig_DedicatedServer
class URH_PEXOwnerInterfacePlayerExperience Owner Interface class.
class IRH_PEXOwnerInterfacePlayerExperience Owner Interface.
class URH_PEXStatGroupBase class for a group of stats.
class URH_PEXStatGroupsTopLevelStat group that contains all other stat groups, configurable via INI.
class URH_PEXCollectorPlayerExperience Collector class, responsible for collecting and tracking PEX data via PEX Stat Groups.
class URH_PEXPrimaryStatsStat group for capturing primary stats.
class URH_PEXNetworkStats_BaseStat group for capturing whole-state network stats.
class URH_PEXNetworkStats_GlobalStat group for capturing global network stats.
class URH_PEXNetworkStats_ConnectionStat group for capturing per-player network stats.
class URH_PEXNetworkStats_HostStat group for capturing a group of player network stats.
class URH_PEXNetworkStats_ClientStat group for capturing a group of client's connection to server's network stats.
class URH_PEXNetworkStatsStat group for capturing local whole-state network stats, plus per-player stats.
class URH_PEXGameStatsStat group for capturing game stats.
class URH_PEXBlueprintableStatsBlueprintable stat group for capturing stats.
class URH_PEXCollectorConfig_Test
class URH_TestPEXOwner
struct FRH_PEXStatStateState of the accumulated stat.
struct FRH_StatAccumulatorSimple accumulator that represents a captured statistic. Tracks min, max, average, and other values internally without having to store all values.
struct FRH_StatCounterSimple counter that represents a captured statistic. Tracks current value, and tracks summary data.

Members​

define PEX_ADD_INDEXED_STAT_TO_REPORT ​

define PEX_ADD_INDEXED_COUNTER_TO_REPORT ​

enum ERH_PEXValueType ​

ValuesDescriptions
Current
Min
Max
Avg
Sum
Count

Enum representing what value should be recorded when only a single value is requested for display or logging.

class URH_PEXCollectorConfig ​

class URH_PEXCollectorConfig
: public UObject

Summary​

MembersDescriptions
public bool bEnabledEnable tracking of PEX data
public bool bWriteSummaryFileWhether to write summary data to file
public bool bUploadSummaryToPEXAPIWhether to send summary data to the PEX API
public bool bUploadSummaryToFileAPIWhether to send summary data to the File API (Requires bWriteSummaryFile)
public bool bWriteTimelineFileWhether to write timeline data to file
public bool bUploadTimelineToFileAPIWhether to send timeline data to the File API (Requires bWriteTimelineFile)
public int32 StatIntervalInterval of updating summary and writing timeline, in seconds
public int32 NumIntervalsToIgnoreAfterMapLoadForSummaryHow many intervals to ignore for summary after a map load (to allow things like streaming to stablize)
public FString TimelineFilePrefixPrefix for timeline file name
public FString SummaryFilePrefixPrefix for summary file name
public TSet< TSubclassOf< URH_PEXStatGroup> >StatGroupsToCaptureArray of StatGroups to capture
public URH_PEXCollectorConfig()
public inline bool WantsEnabled() constHelper function for whether tracking should be enabled
public inline bool WantsSummary() constHelper function for whether summary data should be tracked
public inline bool WantsTimeline() constHelper function for whether timeline data should be tracked

Members​

public bool bEnabled ​

Enable tracking of PEX data

public bool bWriteSummaryFile ​

Whether to write summary data to file

public bool bUploadSummaryToPEXAPI ​

Whether to send summary data to the PEX API

public bool bUploadSummaryToFileAPI ​

Whether to send summary data to the File API (Requires bWriteSummaryFile)

public bool bWriteTimelineFile ​

Whether to write timeline data to file

public bool bUploadTimelineToFileAPI ​

Whether to send timeline data to the File API (Requires bWriteTimelineFile)

public int32 StatInterval ​

Interval of updating summary and writing timeline, in seconds

public int32 NumIntervalsToIgnoreAfterMapLoadForSummary ​

How many intervals to ignore for summary after a map load (to allow things like streaming to stablize)

public FString TimelineFilePrefix ​

Prefix for timeline file name

public FString SummaryFilePrefix ​

Prefix for summary file name

public TSet< TSubclassOf< URH_PEXStatGroup> >StatGroupsToCapture ​

Array of StatGroups to capture

public URH_PEXCollectorConfig() ​

public inline bool WantsEnabled() const ​

Helper function for whether tracking should be enabled

public inline bool WantsSummary() const ​

Helper function for whether summary data should be tracked

public inline bool WantsTimeline() const ​

Helper function for whether timeline data should be tracked

class URH_PEXCollectorConfig_Client ​

class URH_PEXCollectorConfig_Client
: public URH_PEXCollectorConfig

Summary​

MembersDescriptions
public inline URH_PEXCollectorConfig_Client()

Members​

public inline URH_PEXCollectorConfig_Client() ​

class URH_PEXCollectorConfig_Host ​

class URH_PEXCollectorConfig_Host
: public URH_PEXCollectorConfig

Summary​

MembersDescriptions
public inline URH_PEXCollectorConfig_Host()

Members​

public inline URH_PEXCollectorConfig_Host() ​

class URH_PEXCollectorConfig_DedicatedServer ​

class URH_PEXCollectorConfig_DedicatedServer
: public URH_PEXCollectorConfig_Host

Summary​

MembersDescriptions
public inline URH_PEXCollectorConfig_DedicatedServer()

Members​

public inline URH_PEXCollectorConfig_DedicatedServer() ​

class URH_PEXOwnerInterface ​

class URH_PEXOwnerInterface
: public UInterface

PlayerExperience Owner Interface class.

Summary​

MembersDescriptions

Members​

class IRH_PEXOwnerInterface ​

PlayerExperience Owner Interface.

Summary​

MembersDescriptions

Members​

class URH_PEXStatGroup ​

class URH_PEXStatGroup
: public UObject

Base class for a group of stats.

Summary​

MembersDescriptions
public FName GroupNameName of the stat group.
public TArray< FRH_StatAccumulator>StatsArray of stats to track.
public TArray< FRH_StatCounter>CountersArray of stats to track.
public TArray< URH_PEXStatGroup* >ChildrenArray of children stat groups to track.
public bool bDynamicWhether this group was dynamically created. Dynamic groups do not get written to the timeline since it has a rigid structure.
public bool bNotForTimelineWhether this group should be excluded from the timline. Some groups do not get written to the timeline since it has a rigid structure.
public inline URH_PEXStatGroup()
public inline virtual void Init(const URH_PEXCollectorConfig* InConfig,const TScriptInterface<IRH_PEXOwnerInterface > & Owner)Initialize the stat group and any children. May add non-dynamic groups and init them as well.
public inline virtual void CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-frame stats.
public inline virtual void CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-second stats.
public inline virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-interval stats.
public inline virtual void ResetCapture()Reset the capture state of all stats.
public inline virtual void ResetSummary()Reset the summary state of all stats.
public inline virtual void ResetStats()Reset both the capture and summary states of all stats.
public inline virtual void UpdateSummary()Update the summary state of all stats.
public inline virtual TSharedRef< FJsonObject > GetSummary() constWrite the summary data to a JSON object.
public inline virtual FString GetTimelineCSVHeader() constWrite the timeline data header to a CSV file for all stats.
public inline virtual FString GetTimelineCSVValues() constWrite the timeline data values to a CSV file for all stats.
public inline virtual void GetPEXHostSummary(FRHAPI_PexHostRequest & Report) constFill in a API PEX host summary report with the summary data.
public inline virtual void GetPEXClientSummary(FRHAPI_PexClientRequest & Report) constFill in a API PEX client summary report with the summary data.

Members​

public FName GroupName ​

Name of the stat group.

public TArray< FRH_StatAccumulator>Stats ​

Array of stats to track.

public TArray< FRH_StatCounter>Counters ​

Array of stats to track.

public TArray< URH_PEXStatGroup* >Children ​

Array of children stat groups to track.

public bool bDynamic ​

Whether this group was dynamically created. Dynamic groups do not get written to the timeline since it has a rigid structure.

public bool bNotForTimeline ​

Whether this group should be excluded from the timline. Some groups do not get written to the timeline since it has a rigid structure.

public inline URH_PEXStatGroup() ​

public inline virtual void Init(const URH_PEXCollectorConfig* InConfig,const TScriptInterface<IRH_PEXOwnerInterface > & Owner) ​

Initialize the stat group and any children. May add non-dynamic groups and init them as well.

public inline virtual void CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-frame stats.

public inline virtual void CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-second stats.

public inline virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-interval stats.

public inline virtual void ResetCapture() ​

Reset the capture state of all stats.

public inline virtual void ResetSummary() ​

Reset the summary state of all stats.

public inline virtual void ResetStats() ​

Reset both the capture and summary states of all stats.

public inline virtual void UpdateSummary() ​

Update the summary state of all stats.

public inline virtual TSharedRef< FJsonObject > GetSummary() const ​

Write the summary data to a JSON object.

Returns​

The JSON object containing the summary data

public inline virtual FString GetTimelineCSVHeader() const ​

Write the timeline data header to a CSV file for all stats.

public inline virtual FString GetTimelineCSVValues() const ​

Write the timeline data values to a CSV file for all stats.

public inline virtual void GetPEXHostSummary(FRHAPI_PexHostRequest & Report) const ​

Fill in a API PEX host summary report with the summary data.

public inline virtual void GetPEXClientSummary(FRHAPI_PexClientRequest & Report) const ​

Fill in a API PEX client summary report with the summary data.

class URH_PEXStatGroupsTopLevel ​

class URH_PEXStatGroupsTopLevel
: public URH_PEXStatGroup

Stat group that contains all other stat groups, configurable via INI.

Summary​

MembersDescriptions
public FDateTime LastCaptureTimeThe timetamp for the last capture.
public URH_PEXStatGroupsTopLevel()
public virtual void Init(const URH_PEXCollectorConfig* InConfig,const TScriptInterface<IRH_PEXOwnerInterface > & Owner)Initialize the stat group and any children. May add non-dynamic groups and init them as well.
public inline FORCEINLINE FRH_StatCounter&GetCaptureCounter(ECaptureCounter Counter)
public inline FORCEINLINE const FRH_StatCounter&GetCaptureCounter(ECaptureCounter Counter) const
public inline virtual void SetIgnoredForSummary()
public inline virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-interval stats.
public inline virtual void ResetCapture()Reset the capture state of all stats.
public inline virtual FString GetTimelineCSVHeader() constWrite the timeline data header to a CSV file for all stats.
public inline virtual FString GetTimelineCSVValues() constWrite the timeline data values to a CSV file for all stats.
enum ECaptureCounter

Members​

public FDateTime LastCaptureTime ​

The timetamp for the last capture.

public URH_PEXStatGroupsTopLevel() ​

public virtual void Init(const URH_PEXCollectorConfig* InConfig,const TScriptInterface<IRH_PEXOwnerInterface > & Owner) ​

Initialize the stat group and any children. May add non-dynamic groups and init them as well.

public inline FORCEINLINE FRH_StatCounter&GetCaptureCounter(ECaptureCounter Counter) ​

public inline FORCEINLINE const FRH_StatCounter&GetCaptureCounter(ECaptureCounter Counter) const ​

public inline virtual void SetIgnoredForSummary() ​

public inline virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-interval stats.

public inline virtual void ResetCapture() ​

Reset the capture state of all stats.

public inline virtual FString GetTimelineCSVHeader() const ​

Write the timeline data header to a CSV file for all stats.

public inline virtual FString GetTimelineCSVValues() const ​

Write the timeline data values to a CSV file for all stats.

enum ECaptureCounter ​

ValuesDescriptions
IgnoredForSummary
Max

class URH_PEXCollector ​

class URH_PEXCollector
: public UObject

PlayerExperience Collector class, responsible for collecting and tracking PEX data via PEX Stat Groups.

Summary​

MembersDescriptions
public URH_PEXCollector()
public virtual ~URH_PEXCollector()
public virtual bool Init(IRH_PEXOwnerInterface * InOwner)Initialize the collector. Can only be done once.
public virtual bool InitWithConfig(IRH_PEXOwnerInterface* InOwner,constURH_PEXCollectorConfig * InConfig)Initialize the collector. Can only be done once.
public virtual void OnEndFrame()Tick the collector, updating per frame stats and potentially per second stats.
public virtual void OnMapLoadComplete()Notification that a map load has completed.
public inline const URH_PEXCollectorConfig*GetConfig() constRetrieve the config to use for this collector instance.
public inline void ResetSummary()Reset the summary state, which is useful if wanting to trim the front of the summary to when gameplay starts.
public inline void SetIgnoreCurrentIntervalForSummary(int32 NumToIgnore)Flags the current interval (and potentially more) to be ignored for summary if it was not already. This is useful in cases of events that will generate bad behavior reports such as map loads.
public void Close()Closes state, writes summary if needed, and uploads data if needed. Can only be done once.
public void WriteSummary()Writes summary data to file and/or API, and uploads any data requested, can only be called once.
public inline FString GetSummaryFilePath() constGet the file path for the summary file, if it was written.
public inline FString GetTimelineFilePath() constGet the file path for the timeline file, if it was written.
public TSharedRef< FJsonObject > GetSummaryJson() constRetrieves the summary data in Json format.
protected TWeakInterfacePtr< IRH_PEXOwnerInterface>OwnerCached owner of the collector
protected const URH_PEXCollectorConfig*CachedConfigCached file path for timeline file
protected FString CachedMatchIdCached match id to use for routing the captured data to storage. Cached so it does not change mid-capture
protected FRH_RemoteFileApiDirectory CachedRemoteFileDirectoryCached remote file directory to use for routing the captured data to storage. Cached so it does not change mid-capture
protected FGuid CachedPlayerIdCached player id to use for routing the captured data to storage. Cached so it does not change mid-capture
protected bool bCachedIsHostCached whether this owner is the host of the match. Cached so it does not change mid-capture
protected bool bHasBeenInitializedWhether the collector has been initialized, to guard against it being initialized multiple times.
protected bool bHasBeenClosedWhether the collector has been closed, to guard against it being closed multiple times.
protected bool bHasWrittenSummaryWhether the summary data has been written, to guard against it being written multiple times.
protected double TimeTrackerTime accumulator so that time is always monotonic
protected int32 NumRemainingIntervalsToIgnoreNumber of remaining intervals to ignore for summary (decremented at the end of each interval)
protected URH_PEXStatGroupsTopLevel*TopLevelStatGroup
protected class FArchive * TimelineFileCSVLocal file archive to write timeline data to
protected FString TimelineFilePathCached file path for timeline file
protected FString SummaryFilePathCached file path for summary file
protected void UploadFile(const FString & FilePath,const FString & RemoteFileName) constInternal helper to upload a file to remote file storage

Members​

public URH_PEXCollector() ​

public virtual ~URH_PEXCollector() ​

public virtual bool Init(IRH_PEXOwnerInterface * InOwner) ​

Initialize the collector. Can only be done once.

public virtual bool InitWithConfig(IRH_PEXOwnerInterface* InOwner,constURH_PEXCollectorConfig * InConfig) ​

Initialize the collector. Can only be done once.

public virtual void OnEndFrame() ​

Tick the collector, updating per frame stats and potentially per second stats.

public virtual void OnMapLoadComplete() ​

Notification that a map load has completed.

public inline const URH_PEXCollectorConfig*GetConfig() const ​

Retrieve the config to use for this collector instance.

public inline void ResetSummary() ​

Reset the summary state, which is useful if wanting to trim the front of the summary to when gameplay starts.

public inline void SetIgnoreCurrentIntervalForSummary(int32 NumToIgnore) ​

Flags the current interval (and potentially more) to be ignored for summary if it was not already. This is useful in cases of events that will generate bad behavior reports such as map loads.

public void Close() ​

Closes state, writes summary if needed, and uploads data if needed. Can only be done once.

public void WriteSummary() ​

Writes summary data to file and/or API, and uploads any data requested, can only be called once.

public inline FString GetSummaryFilePath() const ​

Get the file path for the summary file, if it was written.

public inline FString GetTimelineFilePath() const ​

Get the file path for the timeline file, if it was written.

public TSharedRef< FJsonObject > GetSummaryJson() const ​

Retrieves the summary data in Json format.

protected TWeakInterfacePtr< IRH_PEXOwnerInterface>Owner ​

Cached owner of the collector

protected const URH_PEXCollectorConfig*CachedConfig ​

Cached file path for timeline file

protected FString CachedMatchId ​

Cached match id to use for routing the captured data to storage. Cached so it does not change mid-capture

protected FRH_RemoteFileApiDirectory CachedRemoteFileDirectory ​

Cached remote file directory to use for routing the captured data to storage. Cached so it does not change mid-capture

protected FGuid CachedPlayerId ​

Cached player id to use for routing the captured data to storage. Cached so it does not change mid-capture

protected bool bCachedIsHost ​

Cached whether this owner is the host of the match. Cached so it does not change mid-capture

protected bool bHasBeenInitialized ​

Whether the collector has been initialized, to guard against it being initialized multiple times.

protected bool bHasBeenClosed ​

Whether the collector has been closed, to guard against it being closed multiple times.

protected bool bHasWrittenSummary ​

Whether the summary data has been written, to guard against it being written multiple times.

protected double TimeTracker ​

Time accumulator so that time is always monotonic

protected int32 NumRemainingIntervalsToIgnore ​

Number of remaining intervals to ignore for summary (decremented at the end of each interval)

protected URH_PEXStatGroupsTopLevel*TopLevelStatGroup ​

protected class FArchive * TimelineFileCSV ​

Local file archive to write timeline data to

protected FString TimelineFilePath ​

Cached file path for timeline file

protected FString SummaryFilePath ​

Cached file path for summary file

protected void UploadFile(const FString & FilePath,const FString & RemoteFileName) const ​

Internal helper to upload a file to remote file storage

class URH_PEXPrimaryStats ​

class URH_PEXPrimaryStats
: public URH_PEXStatGroup

Stat group for capturing primary stats.

Summary​

MembersDescriptions
public inline FORCEINLINE FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat)
public inline FORCEINLINE const FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat) const
public inline FORCEINLINE FRH_StatCounter&GetCaptureCounter(ECaptureCounter Counter)
public inline FORCEINLINE const FRH_StatCounter&GetCaptureCounter(ECaptureCounter Counter) const
public URH_PEXPrimaryStats()
public virtual void Init(const URH_PEXCollectorConfig* InConfig,const TScriptInterface<IRH_PEXOwnerInterface > & Owner)Initialize the stat group and any children. May add non-dynamic groups and init them as well.
public virtual void CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-frame stats.
public virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-interval stats.
public inline virtual void GetPEXHostSummary(FRHAPI_PexHostRequest & Report) constFill in a API PEX host summary report with the summary data.
public inline virtual void GetPEXClientSummary(FRHAPI_PexClientRequest & Report) constFill in a API PEX client summary report with the summary data.
enum ECaptureStat
enum ECaptureCounter

Members​

public inline FORCEINLINE FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat) ​

public inline FORCEINLINE const FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat) const ​

public inline FORCEINLINE FRH_StatCounter&GetCaptureCounter(ECaptureCounter Counter) ​

public inline FORCEINLINE const FRH_StatCounter&GetCaptureCounter(ECaptureCounter Counter) const ​

public URH_PEXPrimaryStats() ​

public virtual void Init(const URH_PEXCollectorConfig* InConfig,const TScriptInterface<IRH_PEXOwnerInterface > & Owner) ​

Initialize the stat group and any children. May add non-dynamic groups and init them as well.

public virtual void CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-frame stats.

public virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-interval stats.

public inline virtual void GetPEXHostSummary(FRHAPI_PexHostRequest & Report) const ​

Fill in a API PEX host summary report with the summary data.

public inline virtual void GetPEXClientSummary(FRHAPI_PexClientRequest & Report) const ​

Fill in a API PEX client summary report with the summary data.

enum ECaptureStat ​

ValuesDescriptions
FrameTime
GameThreadTime
RenderThreadTime
RHIThreadTime
GPUTime
DeltaTime
GameThreadWaitTime
FlushLoadingTime
MemoryWS
MemoryVB
CPUProcess
CPUMachine
Max

enum ECaptureCounter ​

ValuesDescriptions
TickCount
DelayedTickCount
LevelLoadCompleted
Max

class URH_PEXNetworkStats_Base ​

class URH_PEXNetworkStats_Base
: public URH_PEXStatGroup

Stat group for capturing whole-state network stats.

Summary​

MembersDescriptions
public inline FORCEINLINE FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat)
public inline FORCEINLINE const FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat) const
public URH_PEXNetworkStats_Base()
public inline virtual void GetPEXHostSummary(FRHAPI_PexHostRequest & Report) constFill in a API PEX host summary report with the summary data.
public inline virtual void GetPEXClientSummary(FRHAPI_PexClientRequest & Report) constFill in a API PEX client summary report with the summary data.
enum ECaptureStat

Members​

public inline FORCEINLINE FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat) ​

public inline FORCEINLINE const FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat) const ​

public URH_PEXNetworkStats_Base() ​

public inline virtual void GetPEXHostSummary(FRHAPI_PexHostRequest & Report) const ​

Fill in a API PEX host summary report with the summary data.

public inline virtual void GetPEXClientSummary(FRHAPI_PexClientRequest & Report) const ​

Fill in a API PEX client summary report with the summary data.

enum ECaptureStat ​

ValuesDescriptions
ConnectionCount
Ping
InPackets
OutPackets
TotalPackets
InPacketsLost
OutPacketsLost
TotalPacketsLost
InPacketLossPct
OutPacketLossPct
TotalPacketLossPct
Max

class URH_PEXNetworkStats_Global ​

class URH_PEXNetworkStats_Global
: public URH_PEXNetworkStats_Base

Stat group for capturing global network stats.

Summary​

MembersDescriptions
public inline URH_PEXNetworkStats_Global()
public virtual void CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-second stats.

Members​

public inline URH_PEXNetworkStats_Global() ​

public virtual void CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-second stats.

class URH_PEXNetworkStats_Connection ​

class URH_PEXNetworkStats_Connection
: public URH_PEXNetworkStats_Base

Stat group for capturing per-player network stats.

Summary​

MembersDescriptions
public TWeakObjectPtr< const UNetConnection > Connection
public inline URH_PEXNetworkStats_Connection()
public void InitForConnection(const UNetConnection * InConnection)
public virtual void CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-second stats.

Members​

public TWeakObjectPtr< const UNetConnection > Connection ​

public inline URH_PEXNetworkStats_Connection() ​

public void InitForConnection(const UNetConnection * InConnection) ​

public virtual void CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-second stats.

class URH_PEXNetworkStats_Host ​

class URH_PEXNetworkStats_Host
: public URH_PEXNetworkStats_Base

Stat group for capturing a group of player network stats.

Summary​

MembersDescriptions
public TMap< FGuid, URH_PEXNetworkStats_Connection* >PlayerNetworkStatsPer-player network stats, only used by summary
public inline URH_PEXNetworkStats_Host()
public virtual void GetOrCreatePlayerNetworkStats(const class UNetConnection * Connection,URH_PEXNetworkStats_Connection *& OutPlayerNetworkStats)Get or create a player's network stats.
public inline virtual void ResetSummary()Reset the summary state of all stats.
public inline virtual void GetPEXHostSummary(FRHAPI_PexHostRequest & Report) constFill in a API PEX host summary report with the summary data.
public virtual void EnsureConnectionTrackersExist(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)
public virtual void CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-frame stats.
public virtual void CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-second stats.
public virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-interval stats.

Members​

public TMap< FGuid, URH_PEXNetworkStats_Connection* >PlayerNetworkStats ​

Per-player network stats, only used by summary

public inline URH_PEXNetworkStats_Host() ​

public virtual void GetOrCreatePlayerNetworkStats(const class UNetConnection * Connection,URH_PEXNetworkStats_Connection *& OutPlayerNetworkStats) ​

Get or create a player's network stats.

public inline virtual void ResetSummary() ​

Reset the summary state of all stats.

public inline virtual void GetPEXHostSummary(FRHAPI_PexHostRequest & Report) const ​

Fill in a API PEX host summary report with the summary data.

public virtual void EnsureConnectionTrackersExist(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

public virtual void CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-frame stats.

public virtual void CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-second stats.

public virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-interval stats.

class URH_PEXNetworkStats_Client ​

class URH_PEXNetworkStats_Client
: public URH_PEXNetworkStats_Connection

Stat group for capturing a group of client's connection to server's network stats.

Summary​

MembersDescriptions
public inline URH_PEXNetworkStats_Client()
public virtual void EnsureConnectionTrackersExist(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)
public virtual void CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-frame stats.
public virtual void CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-second stats.
public virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-interval stats.

Members​

public inline URH_PEXNetworkStats_Client() ​

public virtual void EnsureConnectionTrackersExist(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

public virtual void CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-frame stats.

public virtual void CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-second stats.

public virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-interval stats.

class URH_PEXNetworkStats ​

class URH_PEXNetworkStats
: public URH_PEXStatGroup

Stat group for capturing local whole-state network stats, plus per-player stats.

Summary​

MembersDescriptions
public URH_PEXNetworkStats_Global*GlobalNetworkStatsGlobal network stats, used by summary and timeline
public URH_PEXNetworkStats_Client*ClientNetworkStatsClient's connection to host, only used by summary
public URH_PEXNetworkStats_Host*HostNetworkStatsHost's connection to clients, only used by summary
public URH_PEXNetworkStats()
public inline virtual void GetPEXHostSummary(FRHAPI_PexHostRequest & Report) constFill in a API PEX host summary report with the summary data.
public inline virtual void GetPEXClientSummary(FRHAPI_PexClientRequest & Report) constFill in a API PEX client summary report with the summary data.

Members​

public URH_PEXNetworkStats_Global*GlobalNetworkStats ​

Global network stats, used by summary and timeline

public URH_PEXNetworkStats_Client*ClientNetworkStats ​

Client's connection to host, only used by summary

public URH_PEXNetworkStats_Host*HostNetworkStats ​

Host's connection to clients, only used by summary

public URH_PEXNetworkStats() ​

public inline virtual void GetPEXHostSummary(FRHAPI_PexHostRequest & Report) const ​

Fill in a API PEX host summary report with the summary data.

public inline virtual void GetPEXClientSummary(FRHAPI_PexClientRequest & Report) const ​

Fill in a API PEX client summary report with the summary data.

class URH_PEXGameStats ​

class URH_PEXGameStats
: public URH_PEXStatGroup

Stat group for capturing game stats.

Summary​

MembersDescriptions
public inline FORCEINLINE FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat)
public inline FORCEINLINE const FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat) const
public URH_PEXGameStats()
public virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-interval stats.
enum ECaptureStat

Members​

public inline FORCEINLINE FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat) ​

public inline FORCEINLINE const FRH_StatAccumulator&GetCaptureStat(ECaptureStat Stat) const ​

public URH_PEXGameStats() ​

public virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-interval stats.

enum ECaptureStat ​

ValuesDescriptions
PlayerControllerCount
AIControllerCount
PawnCount
Max

class URH_PEXBlueprintableStats ​

class URH_PEXBlueprintableStats
: public URH_PEXStatGroup

Blueprintable stat group for capturing stats.

Summary​

MembersDescriptions
public inline URH_PEXBlueprintableStats()
public inline virtual void CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-frame stats.
public inline virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)Capture once-per-interval stats.
public void BLUEPRINT_CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)
public void BLUEPRINT_CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner)
public inline void CaptureStatValue(FName StatName,float Value)
public inline void CaptureCounterValue(FName StatName,float Value)

Members​

public inline URH_PEXBlueprintableStats() ​

public inline virtual void CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-frame stats.

public inline virtual void CapturePerIntervalStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

Capture once-per-interval stats.

public void BLUEPRINT_CapturePerFrameStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

public void BLUEPRINT_CapturePerSecondStats(const TScriptInterface< IRH_PEXOwnerInterface > & Owner) ​

public inline void CaptureStatValue(FName StatName,float Value) ​

public inline void CaptureCounterValue(FName StatName,float Value) ​

class URH_PEXCollectorConfig_Test ​

class URH_PEXCollectorConfig_Test
: public URH_PEXCollectorConfig_Host

Summary​

MembersDescriptions

Members​

class URH_TestPEXOwner ​

class URH_TestPEXOwner
: public UObject
: public IRH_PEXOwnerInterface

Summary​

MembersDescriptions
public FGuid PlayerId
public FString MatchId
public bool bSendReportsToAPI
public mutable TOptional< FRHAPI_PexClientRequest>ClientReport
public mutable TOptional< FRHAPI_PexHostRequest>HostReport
public inline URH_TestPEXOwner()
public inline virtual UEngine * GetPEXEngine() const
public inline virtual UWorld * GetPEXWorld() const
public inline virtual FString GetPEXMatchId() const
public inline virtual FGuid GetPEXPlayerId() const
public inline virtual FRH_RemoteFileApiDirectory GetPEXRemoteFileDirectory() const
public inline virtual bool GetPEXIsHost() const
public virtual void SubmitPEXHostSummary(FRHAPI_PexHostRequest && Report) const
public virtual void SubmitPEXClientSummary(FRHAPI_PexClientRequest && Report) const
public virtual void ValidateReports(FAutomationTestBase * Test,const URH_PEXCollectorConfig * Config) const

Members​

public FGuid PlayerId ​

public FString MatchId ​

public bool bSendReportsToAPI ​

public mutable TOptional< FRHAPI_PexClientRequest>ClientReport ​

public mutable TOptional< FRHAPI_PexHostRequest>HostReport ​

public inline URH_TestPEXOwner() ​

public inline virtual UEngine * GetPEXEngine() const ​

public inline virtual UWorld * GetPEXWorld() const ​

public inline virtual FString GetPEXMatchId() const ​

public inline virtual FGuid GetPEXPlayerId() const ​

public inline virtual FRH_RemoteFileApiDirectory GetPEXRemoteFileDirectory() const ​

public inline virtual bool GetPEXIsHost() const ​

public virtual void SubmitPEXHostSummary(FRHAPI_PexHostRequest && Report) const ​

public virtual void SubmitPEXClientSummary(FRHAPI_PexClientRequest && Report) const ​

public virtual void ValidateReports(FAutomationTestBase * Test,const URH_PEXCollectorConfig * Config) const ​

struct FRH_PEXStatState ​

State of the accumulated stat.

Summary​

MembersDescriptions
public float CurrentCurrent value.
public float MinMinimum value.
public float MaxMaximum value.
public float AvgAverage value.
public float SumSum of values.
public float SumOfSquaresSum of squared values.
public float VarianceVariance of values.
public int32 CountCount of values.
public inline FRH_PEXStatState()
public inline void Reset()Reset the state to defaults.
public inline void AddValue(float Value)Add a value to the accumulator.
public inline void MergeAddValue(const FRH_PEXStatState & Other)Merge another stat state into this one.
public inline void UpdateSummary(const FRH_PEXStatState & CurrentState)Update the summary state with the current state.

Members​

public float Current ​

Current value.

public float Min ​

Minimum value.

public float Max ​

Maximum value.

public float Avg ​

Average value.

public float Sum ​

Sum of values.

public float SumOfSquares ​

Sum of squared values.

public float Variance ​

Variance of values.

public int32 Count ​

Count of values.

public inline FRH_PEXStatState() ​

public inline void Reset() ​

Reset the state to defaults.

public inline void AddValue(float Value) ​

Add a value to the accumulator.

public inline void MergeAddValue(const FRH_PEXStatState & Other) ​

Merge another stat state into this one.

public inline void UpdateSummary(const FRH_PEXStatState & CurrentState) ​

Update the summary state with the current state.

struct FRH_StatAccumulator ​

Simple accumulator that represents a captured statistic. Tracks min, max, average, and other values internally without having to store all values.

Summary​

MembersDescriptions
public FName NameName of the stat.
public ERH_PEXValueType TimelineValueTypeType of value to record for timeline file (which value from the capture state is used to build the timeline data)
public FRH_PEXStatState CaptureStateState of the stat for the current capture.
public FRH_PEXStatState SummaryStateState of the stat for the summary.
public inline FRH_StatAccumulator()Constructor.
public inline FRH_StatAccumulator(FName InName,ERH_PEXValueType InTimelineValueType)Constructor.
public inline void ResetCapture()Reset the capture state.
public inline void ResetSummary()Reset the summary state.
public inline void CaptureValue(float Value)Add a value to the accumulator.
public inline void IncrementCaptureValue(float IncrementBy)Increment the capture state's current value by 1 and recapture.
public inline void CaptureSummaryValue()Capture the current value into the summary state.
public inline FName GetName() constGet the name of the stat.
public inline float GetTimelineValue() constGet the value of the stat to be recorded in the timeline.
public inline TSharedPtr< FJsonObject > GetSummaryJson(bool bIncludeName) constGet a JSON object representing the summary data.
public inline bool GetPexStat(FRHAPI_PexStat & PexStat) constGet a PexStat object representing the summary data.

Members​

public FName Name ​

Name of the stat.

public ERH_PEXValueType TimelineValueType ​

Type of value to record for timeline file (which value from the capture state is used to build the timeline data)

public FRH_PEXStatState CaptureState ​

State of the stat for the current capture.

public FRH_PEXStatState SummaryState ​

State of the stat for the summary.

public inline FRH_StatAccumulator() ​

Constructor.

public inline FRH_StatAccumulator(FName InName,ERH_PEXValueType InTimelineValueType) ​

Constructor.

public inline void ResetCapture() ​

Reset the capture state.

public inline void ResetSummary() ​

Reset the summary state.

public inline void CaptureValue(float Value) ​

Add a value to the accumulator.

public inline void IncrementCaptureValue(float IncrementBy) ​

Increment the capture state's current value by 1 and recapture.

Parameters​

  • IncrementBy The amount to increment the current value by (default is 1.0)

public inline void CaptureSummaryValue() ​

Capture the current value into the summary state.

public inline FName GetName() const ​

Get the name of the stat.

public inline float GetTimelineValue() const ​

Get the value of the stat to be recorded in the timeline.

public inline TSharedPtr< FJsonObject > GetSummaryJson(bool bIncludeName) const ​

Get a JSON object representing the summary data.

public inline bool GetPexStat(FRHAPI_PexStat & PexStat) const ​

Get a PexStat object representing the summary data.

struct FRH_StatCounter ​

Simple counter that represents a captured statistic. Tracks current value, and tracks summary data.

Summary​

MembersDescriptions
public FName NameName of the stat.
public float CurrentState of the stat for the current capture.
public FRH_PEXStatState SummaryStateState of the stat for the summary.
public inline FRH_StatCounter()Constructor.
public inline FRH_StatCounter(FName InName)Constructor.
public inline void ResetCapture()Reset the capture state.
public inline void ResetSummary()Reset the summary state.
public inline void CaptureValue(float Value)Add a value to the accumulator.
public inline void IncrementCaptureValue(float IncrementBy)Increment the capture state's current value by 1 and recapture.
public inline void CaptureSummaryValue()Capture the current value into the summary state.
public inline FName GetName() constGet the name of the stat.
public inline float GetTimelineValue() constGet the value of the stat to be recorded in the timeline.
public inline TSharedPtr< FJsonObject > GetSummaryJson(bool bIncludeName) constGet a JSON object representing the summary data.
public inline bool GetPexStat(FRHAPI_PexStat & PexStat) constGet a PexStat object representing the summary data.

Members​

public FName Name ​

Name of the stat.

public float Current ​

State of the stat for the current capture.

public FRH_PEXStatState SummaryState ​

State of the stat for the summary.

public inline FRH_StatCounter() ​

Constructor.

public inline FRH_StatCounter(FName InName) ​

Constructor.

public inline void ResetCapture() ​

Reset the capture state.

public inline void ResetSummary() ​

Reset the summary state.

public inline void CaptureValue(float Value) ​

Add a value to the accumulator.

public inline void IncrementCaptureValue(float IncrementBy) ​

Increment the capture state's current value by 1 and recapture.

Parameters​

  • IncrementBy The amount to increment the current value by (default is 1.0)

public inline void CaptureSummaryValue() ​

Capture the current value into the summary state.

public inline FName GetName() const ​

Get the name of the stat.

public inline float GetTimelineValue() const ​

Get the value of the stat to be recorded in the timeline.

public inline TSharedPtr< FJsonObject > GetSummaryJson(bool bIncludeName) const ​

Get a JSON object representing the summary data.

public inline bool GetPexStat(FRHAPI_PexStat & PexStat) const ​

Get a PexStat object representing the summary data.