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.