Files
UnrealEngine/Engine/Source/Developer/Zen/Public/Experimental/ZenStatistics.h
2025-05-18 13:04:45 +08:00

139 lines
3.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/UnrealString.h"
#include "ZenGlobals.h"
#define UE_API ZEN_API
#if UE_WITH_ZEN
class FCbFieldView;
namespace UE::Zen
{
struct FZenSizeStats
{
double Disk = 0;
double Memory = 0;
};
struct FZenCIDSizeStats
{
int64 Tiny = 0;
int64 Small = 0;
int64 Large = 0;
int64 Total = 0;
};
struct FZenCIDStats
{
FZenCIDSizeStats Size;
};
struct FZenCacheStats
{
struct FGeneralStats
{
FZenSizeStats Size;
int64 Hits = 0;
int64 Misses = 0;
int64 Writes = 0;
double HitRatio = 0.0;
int64 CidHits = 0;
int64 CidMisses = 0;
int64 CidWrites = 0;
int64 BadRequestCount = 0;
};
struct FRequestStats
{
int64 Count = 0;
double RateMean = 0.0;
double TAverage = 0.0;
double TMin = 0.0;
double TMax = 0.0;
};
struct FEndPointStats
{
FString Name;
FString Url;
FString Health;
double HitRatio = 0.0;
double DownloadedMB = 0;
double UploadedMB = 0;
int64 ErrorCount = 0;
};
struct FUpstreamStats
{
bool Reading = false;
bool Writing = false;
int64 WorkerThreads = 0;
int64 QueueCount = 0;
double TotalUploadedMB = 0;
double TotalDownloadedMB = 0;
TArray<FEndPointStats> EndPoint;
};
FGeneralStats General;
FRequestStats Request;
FUpstreamStats Upstream;
FRequestStats UpstreamRequest;
FZenCIDStats CID;
bool bIsValid = false;
};
struct FZenProjectStats
{
struct FReadWriteDeleteStats
{
int64 ReadCount;
int64 WriteCount;
int64 DeleteCount;
};
struct FHitMissWriteStats
{
int64 HitCount;
int64 MissCount;
int64 WriteCount;
};
struct FGeneralStats
{
FZenSizeStats Size;
FReadWriteDeleteStats Project;
FReadWriteDeleteStats Oplog;
FHitMissWriteStats Op;
FHitMissWriteStats Chunk;
int64 RequestCount;
int64 BadRequestCount;
};
FGeneralStats General;
FZenCIDStats CID;
bool bIsValid = false;
};
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenSizeStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenCIDSizeStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenCIDStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenCacheStats::FGeneralStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenCacheStats::FRequestStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenCacheStats::FEndPointStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenCacheStats::FUpstreamStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenCacheStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenProjectStats::FReadWriteDeleteStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenProjectStats::FHitMissWriteStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenProjectStats::FGeneralStats& OutValue);
UE_API bool LoadFromCompactBinary(FCbFieldView Field, FZenProjectStats& OutValue);
} // namespace UE::Zen
#endif // UE_WITH_ZEN
#undef UE_API