UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Statistics.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CVarUtilities.h"
7#include "IO/OnDemandError.h"
12
13#if COUNTERSTRACE_ENABLED || CSV_PROFILER_STATS
14# define IAS_WITH_STATISTICS 1
15#else
16# define IAS_WITH_STATISTICS 0
17#endif
18
19#ifndef UE_TRACK_CDN_HIT_STATUS
20 #if UE_BUILD_TEST == 0 && UE_BUILD_SHIPPING == 0
21 #define UE_TRACK_CDN_HIT_STATUS 1
22 #else
23 #define UE_TRACK_CDN_HIT_STATUS 0
24 #endif
25#endif
26
27#define UE_ENABLE_ONSCREEN_STATISTICS !UE_BUILD_SHIPPING
28
30class FIoStatus;
31enum class EIoErrorCode;
32
34
35namespace UE::IoStore
36{
37
38class IAnalyticsRecording;
39enum class EHttpRequestType : uint8;
41struct FOnDemandImmediateAnalyticHandler;
42
43#if IAS_WITH_STATISTICS
44# define IAS_STATISTICS_IMPL(...) ;
45#else
46# define IAS_STATISTICS_IMPL(...) { return __VA_ARGS__; }
47#endif // IAS_WITH_STATISTICS
48
50#if IAS_WITH_STATISTICS
51extern void OnDemandSetImmediateAnalyticHandler(FOnDemandImmediateAnalyticHandler&& EventHandler);
52#else
54#endif // IAS_WITH_STATISTICS
55
58{
59public:
61
64
69
72
74 void OnIoRequestComplete(uint64 Size, uint64 DurationMs) IAS_STATISTICS_IMPL()
77
90
91 // Per session
93
94 // Per hostgroup
97
98 // From FOnDemandHttpThread
107
111
113 void OnHttpRequestCompleted() IAS_STATISTICS_IMPL()
114
116private:
117
118#if IAS_WITH_STATISTICS
119
120 void OnApplicationResume();
121
122 void UpdateCSVValues();
124
127
131
132#if UE_ENABLE_ONSCREEN_STATISTICS
134#endif // UE_ENABLE_ONSCREEN_STATISTICS
135
136 const FBackendStatus& BackendStatus;
137
138 bool bValuesValidForAnalytics = true;
139#endif //IAS_WITH_STATISTICS
140};
141
157
160{
161public:
162 static void OnStartupError(const FResult& Result) IAS_STATISTICS_IMPL()
163 static void OnFlush(const FResult& Result, int64 ByteCount) IAS_STATISTICS_IMPL()
165 static void OnJournalCommit(const FResult& Result, int64 ByteCount) IAS_STATISTICS_IMPL()
167 static void OnPurge(
168 const FResult& Result,
169 uint64 MaxCacheSize,
170 uint64 NewCacheSize,
171 uint64 BytesToPurge,
175 static void OnCacheUsage(
176 uint64 MaxCacheSize,
177 uint64 CacheSize,
178 uint64 ReferencedBlockSize,
179 uint64 ReferencedSize,
180 uint64 FragmentedSize,
183};
184
185#undef IAS_STATISTICS_IMPL
186
187} // namespace UE::IoStore
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EIoErrorCode
Definition IoStatus.h:19
#define LLM_DECLARE_TAG(...)
Definition LowLevelMemTracker.h:1116
#define IAS_STATISTICS_IMPL(...)
Definition Statistics.h:46
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
TMultiMap< EOnScreenMessageSeverity, FText > FSeverityMessageMap
Definition CoreDelegates.h:513
Definition IDelegateInstance.h:14
Definition IoStatus.h:60
Definition Array.h:670
Definition UniquePtr.h:107
Definition OnDemandBackendStatus.h:15
static void OnRequestEnqueued() IAS_STATISTICS_IMPL() static void OnRequestCompleted(const FResult &Result
static void uint64 uint64 RequestedBytes
Definition Statistics.h:150
static void uint64 uint64 uint64 uint64 DownloadedBytes
Definition Statistics.h:152
static void uint64 RequestedChunkCount
Definition Statistics.h:149
static void uint64 uint64 uint64 uint64 double CacheHitRatio
Definition Statistics.h:153
static void uint64 uint64 uint64 DownloadedChunkCount
Definition Statistics.h:151
Definition Statistics.h:160
static void OnStartupError(const FResult &Result) IAS_STATISTICS_IMPL() static void OnFlush(const FResult &Result
Definition Statistics.h:58
static FOnDemandIoBackendStats * Get() IAS_STATISTICS_IMPL(nullptr) FOnDemandIoBackendStats(FBackendStatus &InBackendStatus) IAS_STATISTICS_IMPL() ~FOnDemandIoBackendStats() IAS_STATISTICS_IMPL() void ReportGeneralAnalytics(TArray< FAnalyticsEventAttribute > &OutAnalyticsArray) const IAS_STATISTICS_IMPL() void ReportEndPointAnalytics(TArray< FAnalyticsEventAttribute > &OutAnalyticsArray) const IAS_STATISTICS_IMPL() TUniquePtr< IAnalyticsRecording > StartAnalyticsRecording() const IAS_STATISTICS_IMPL(TUniquePtr< IAnalyticsRecording >()) void GetIasCacheStats(uint64 &OutUsed
static FOnDemandIoBackendStats uint64 &OutMaxSize const uint64 DurationMs uint64 SizeBytes
Definition Statistics.h:102
static FOnDemandIoBackendStats uint64 &OutMaxSize const uint64 DurationMs IAS_STATISTICS_IMPL() void OnIoRequestCancel() IAS_STATISTICS_IMPL() void OnIoRequestError() IAS_STATISTICS_IMPL() void OnCacheBootMs(uint64 TimeMs) IAS_STATISTICS_IMPL() void OnCacheError() IAS_STATISTICS_IMPL() void OnCacheDecodeError() IAS_STATISTICS_IMPL() void OnCacheGet(uint64 DataSize) IAS_STATISTICS_IMPL() void OnCachePut() IAS_STATISTICS_IMPL() void OnCachePutExisting(uint64 DataSize) IAS_STATISTICS_IMPL() void OnCachePutReject(uint64 DataSize) IAS_STATISTICS_IMPL() void OnCachePendingBytes(uint64 TotalSize) IAS_STATISTICS_IMPL() void OnCachePersistedBytes(uint64 TotalSize) IAS_STATISTICS_IMPL() void OnCacheWriteBytes(uint64 WriteSize) IAS_STATISTICS_IMPL() void OnCacheSetMaxBytes(uint64 TotalSize) IAS_STATISTICS_IMPL() void OnCacheSuspended(double Seconds) IAS_STATISTICS_IMPL() void OnHttpDistributedEndpointResolved() IAS_STATISTICS_IMPL() void OnHttpConnected() IAS_STATISTICS_IMPL() void OnHttpDisconnected() IAS_STATISTICS_IMPL() void OnHttpEnqueue(EHttpRequestType Type) IAS_STATISTICS_IMPL() void OnHttpCancel(EHttpRequestType Type) IAS_STATISTICS_IMPL() void OnHttpDequeue(EHttpRequestType Type) IAS_STATISTICS_IMPL() void OnHttpGet(EHttpRequestType Type
Definition IoStoreOnDemand.h:532
NO_LOGGING.
Definition Client.h:20
EHttpRequestType
Definition OnDemandHttpThread.h:44
void OnDemandSetImmediateAnalyticHandler(FOnDemandImmediateAnalyticHandler &&EventHandler)
Definition Statistics.h:53
Definition AnalyticsEventAttribute.h:48
Definition IoStoreOnDemand.h:551