Created
December 10, 2024 16:45
-
-
Save regner/d1cb38a2706b192ed36b011db9ef4a9f to your computer and use it in GitHub Desktop.
add support for telemetry endpoint and add current stream to FullRun event
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[SubmitTool.Horde] | |
HordeServerAddress="https://example.net" | |
StartPreflightURLFormat="{URL}/preflight?stream={Stream}&change={CLID}" | |
FindPreflightURLFormat="{URL}/api/v1/jobs?preflightChange={CLID}" | |
FindSinglePreflightURLFormat="{URL}/api/v1/jobs/{PreflightID}" | |
[SubmitTool.Telemetry] | |
Url="https://example.net" | |
Endpoint="api/v1/telemetry/engine" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- //UE5/main/Engine/Source/Programs/SubmitTool/Private/Logic/TasksService.cpp 2024-11-20 13:27:20.000000000 0000 | |
+++ D:\p4\ue5\main\Engine\Source\Programs\SubmitTool\Private\Logic\TasksService.cpp 2024-11-20 13:27:20.000000000 0000 | |
@@ -14,11 +14,14 @@ | |
#include "TagService.h" | |
-FTasksService::FTasksService(const TMap<FString, FString>& InTasks, const FString& InTelemetryEventsId) : | |
+FTasksService::FTasksService(const TMap<FString, FString>& InTasks, const FString& InTelemetryEventsId, TSharedRef<FSubmitToolServiceProvider> InServiceProvider) : | |
bLastTasksRunState(false), | |
bLastRunningTasks(false), | |
- TelemetryBaseId(InTelemetryEventsId) | |
+ TelemetryBaseId(InTelemetryEventsId), | |
+ ServiceProvider(InServiceProvider) | |
{ | |
} | |
FTasksService::~FTasksService() | |
@@ -413,6 +416,10 @@ | |
ValidationRunResults = AppendAnalyticsEventAttributeArray(ValidationRunResults, TEXT("FailedTasks"), FJsonFragment(MoveTemp(FailedTasks))); | |
} | |
+ | |
+ ValidationRunResults = AppendAnalyticsEventAttributeArray(ValidationRunResults, TEXT("Stream"), ServiceProvider->GetService<ISTSourceControlService>()->GetCurrentStreamName()); | |
FTelemetryService::Get()->CustomEvent(TelemetryBaseId + TEXT(".FullRun"), ValidationRunResults); | |
--- //UE5/main/Engine/Source/Programs/SubmitTool/Private/Logic/TasksService.h 2024-11-20 13:27:20.000000000 0000 | |
+++ D:\p4\ue5\main\Engine\Source\Programs\SubmitTool\Private\Logic\TasksService.h 2024-11-20 13:27:20.000000000 0000 | |
@@ -19,7 +19,9 @@ | |
class FTasksService : public ISubmitToolService | |
{ | |
public: | |
- FTasksService(const TMap<FString, FString>& Tasks, const FString& InTelemetryCustomEvent); | |
+ FTasksService(const TMap<FString, FString>& Tasks, const FString& InTelemetryCustomEvent, TSharedRef<FSubmitToolServiceProvider> InServiceProvider); | |
virtual ~FTasksService(); | |
virtual void InitializeTasks(const TArray<TSharedRef<FValidatorBase>>& InTasks); | |
@@ -67,6 +69,10 @@ | |
const FString TelemetryBaseId; | |
FTSTicker::FDelegateHandle TickerHandle; | |
+ | |
+ TSharedRef<FSubmitToolServiceProvider> ServiceProvider; | |
}; | |
Expose_TNameOf(FTasksService); | |
\ No newline at end of file | |
--- //UE5/main/Engine/Source/Programs/SubmitTool/Private/Models/ModelInterface.cpp 2024-11-20 13:27:20.000000000 0000 | |
+++ D:\p4\ue5\main\Engine\Source\Programs\SubmitTool\Private\Models\ModelInterface.cpp 2024-11-20 13:27:20.000000000 0000 | |
@@ -45,9 +45,11 @@ | |
SourceControlService = MakeShared<FSubmitToolPerforce>(InParameters); | |
ServiceProvider->RegisterService<ISTSourceControlService>(SourceControlService.ToSharedRef()); | |
- ValidationService = MakeShared<FTasksService>(InParameters.Validators, TEXT("SubmitTool.StandAlone.Validator")); | |
+ ValidationService = MakeShared<FTasksService>(InParameters.Validators, TEXT("SubmitTool.StandAlone.Validator"), ServiceProvider.ToSharedRef()); | |
ServiceProvider->RegisterService<FTasksService>(ValidationService.ToSharedRef()); | |
- PresubmitOperationsService = MakeShared<FTasksService>(InParameters.PresubmitOperations, TEXT("SubmitTool.StandAlone.PresubmitOperation")); | |
+ PresubmitOperationsService = MakeShared<FTasksService>(InParameters.PresubmitOperations, TEXT("SubmitTool.StandAlone.PresubmitOperation"), ServiceProvider.ToSharedRef()); | |
ServiceProvider->RegisterService<FTasksService>(PresubmitOperationsService.ToSharedRef()); | |
CredentialsService = MakeShared<FCredentialsService>(InParameters.OAuthParameters); | |
ServiceProvider->RegisterService<FCredentialsService>(CredentialsService.ToSharedRef()); | |
--- //UE5/main/Engine/Source/Programs/SubmitTool/Private/Parameters/SubmitToolParameters.h 2024-11-20 13:27:20.000000000 0000 | |
+++ D:\p4\ue5\main\Engine\Source\Programs\SubmitTool\Private\Parameters\SubmitToolParameters.h 2024-11-20 13:27:20.000000000 0000 | |
@@ -115,6 +115,10 @@ | |
FString Url; | |
UPROPERTY() | |
FString Instance; | |
+ UPROPERTY() | |
+ FString Endpoint; | |
}; | |
UENUM() | |
--- //UE5/main/Engine/Source/Programs/SubmitTool/Private/Parameters/SubmitToolParametersBuilder.cpp 2024-11-20 13:27:20.000000000 0000 | |
+++ D:\p4\ue5\main\Engine\Source\Programs\SubmitTool\Private\Parameters\SubmitToolParametersBuilder.cpp 2024-11-20 13:27:20.000000000 0000 | |
@@ -154,6 +154,9 @@ | |
static const TCHAR* Section = TEXT("SubmitTool.Telemetry"); | |
static const TCHAR* UrlKey = TEXT("URL"); | |
static const TCHAR* InstanceKey = TEXT("Instance"); | |
+ static const TCHAR* EndpointKey = TEXT("Endpoint"); | |
FTelemetryParameters Output; | |
@@ -163,6 +166,14 @@ | |
Output.Url = Url; | |
} | |
+ FString Endpoint; | |
+ if (SubmitToolConfig->GetString(Section, EndpointKey, Endpoint)) | |
+ { | |
+ Output.Endpoint = Endpoint; | |
+ } | |
+ | |
FString Instance; | |
if (SubmitToolConfig->GetString(Section, InstanceKey, Instance)) | |
{ | |
--- //UE5/main/Engine/Source/Programs/SubmitTool/Private/SubmitToolApp.cpp 2024-11-20 13:27:20.000000000 0000 | |
+++ D:\p4\ue5\main\Engine\Source\Programs\SubmitTool\Private\SubmitToolApp.cpp 2024-11-20 13:27:20.000000000 0000 | |
@@ -82,7 +82,9 @@ | |
FSubmitToolParametersBuilder ParametersBuilder(ParameterFile); | |
FSubmitToolParameters Parameters = ParametersBuilder.Build(); | |
- FTelemetryService::Init(Parameters.Telemetry.Url, InSessionID); | |
+ FTelemetryService::Init(Parameters.Telemetry.Url, Parameters.Telemetry.Endpoint, InSessionID); | |
// Create a new instance of model Interface so that UI can communicate | |
const TUniquePtr<FModelInterface> ModelInterface = MakeUnique<FModelInterface>(Parameters); | |
--- //UE5/main/Engine/Source/Programs/SubmitTool/Private/Telemetry/StandAloneTelemetry.cpp 2024-11-20 13:27:20.000000000 0000 | |
+++ D:\p4\ue5\main\Engine\Source\Programs\SubmitTool\Private\Telemetry\StandAloneTelemetry.cpp 2024-11-20 13:27:20.000000000 0000 | |
@@ -6,7 +6,9 @@ | |
#include "Version/AppVersion.h" | |
#include "AnalyticsEventAttribute.h" | |
-FStandAloneTelemetry::FStandAloneTelemetry(const FString& InUrl, const FGuid& InSessionID) | |
+FStandAloneTelemetry::FStandAloneTelemetry(const FString& InUrl, const FString& InEndpoint, const FGuid& InSessionID) | |
{ | |
FAnalyticsET::Config Config; | |
@@ -19,6 +21,10 @@ | |
Config.APIServerET = InUrl; | |
+ Config.APIEndpointET = InEndpoint; | |
+ | |
// This will become the AppVersion URL parameter. It can be whatever makes sense for your app. | |
Config.AppVersionET = FAppVersion::GetVersion(); | |
--- //UE5/main/Engine/Source/Programs/SubmitTool/Private/Telemetry/StandAloneTelemetry.h 2024-11-20 13:27:20.000000000 0000 | |
+++ D:\p4\ue5\main\Engine\Source\Programs\SubmitTool\Private\Telemetry\StandAloneTelemetry.h 2024-11-20 13:27:20.000000000 0000 | |
@@ -11,7 +11,9 @@ | |
class FStandAloneTelemetry : public ITelemetry | |
{ | |
public: | |
- FStandAloneTelemetry(const FString& InUrl, const FGuid& InSessionID); | |
+ FStandAloneTelemetry(const FString& InUrl, const FString& InEndpoint, const FGuid& InSessionID); | |
virtual ~FStandAloneTelemetry(); | |
virtual void Start(const FString& InCurrentStream) const override; | |
virtual void BlockFlush(float InTimeout) const override; | |
--- //UE5/main/Engine/Source/Programs/SubmitTool/Private/Telemetry/TelemetryService.cpp 2024-11-20 13:27:20.000000000 0000 | |
+++ D:\p4\ue5\main\Engine\Source\Programs\SubmitTool\Private\Telemetry\TelemetryService.cpp 2024-11-20 13:27:20.000000000 0000 | |
@@ -14,15 +14,17 @@ | |
return TelemetryInstance; | |
} | |
-void FTelemetryService::Init(const FString& InUrl, const FGuid& InSessionID) | |
+void FTelemetryService::Init(const FString& InUrl, const FString& InEndpoint, const FGuid& InSessionID) | |
{ | |
if (InUrl.IsEmpty()) | |
{ | |
Set(MakeShared<FNullTelemetry>()); | |
} | |
- Set(MakeShared<FStandAloneTelemetry>(InUrl, InSessionID)); | |
+ Set(MakeShared<FStandAloneTelemetry>(InUrl, InEndpoint, InSessionID)); | |
} | |
void FTelemetryService::Set(TSharedPtr<ITelemetry> InInstance) | |
{ | |
--- //UE5/main/Engine/Source/Programs/SubmitTool/Private/Telemetry/TelemetryService.h 2024-11-20 13:27:20.000000000 0000 | |
+++ D:\p4\ue5\main\Engine\Source\Programs\SubmitTool\Private\Telemetry\TelemetryService.h 2024-11-20 13:27:20.000000000 0000 | |
@@ -11,7 +11,9 @@ | |
{ | |
public: | |
static const TSharedPtr<ITelemetry> & Get(); | |
- static void Init(const FString& InUrl, const FGuid& InSessionID); | |
+ static void Init(const FString& InUrl, const FString& InEndpoint, const FGuid& InSessionID); | |
static void Shutdown(); | |
static void BlockFlush(float InTimeout); | |
private: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment