From d670600fc9686eeaad75b7d9d7a269de0b6611a8 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 27 Aug 2025 12:07:35 +0300 Subject: [PATCH 01/15] Rework creating transaction with options --- .../Android/AndroidSentrySubsystem.cpp | 4 ++-- .../Private/Android/AndroidSentrySubsystem.h | 2 +- .../AndroidSentryTransactionOptions.cpp | 4 ++-- .../Android/AndroidSentryTransactionOptions.h | 4 +++- .../Private/Apple/AppleSentrySubsystem.cpp | 4 ++-- .../Private/Apple/AppleSentrySubsystem.h | 2 +- .../GenericPlatformSentrySubsystem.cpp | 13 ++++++++--- .../GenericPlatformSentrySubsystem.h | 2 +- .../Interface/SentrySubsystemInterface.h | 3 ++- .../Sentry/Private/Null/NullSentrySubsystem.h | 2 +- .../Source/Sentry/Private/SentrySubsystem.cpp | 2 +- .../Source/Sentry/Public/SentrySubsystem.h | 3 ++- .../Sentry/Public/SentryTransactionOptions.h | 22 +++++++++++++++++++ 13 files changed, 50 insertions(+), 17 deletions(-) create mode 100644 plugin-dev/Source/Sentry/Public/SentryTransactionOptions.h diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index 512fcd700..3cb2b566d 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -297,12 +297,12 @@ TSharedPtr FAndroidSentrySubsystem::StartTransactionWithCont return StartTransactionWithContext(context); } -TSharedPtr FAndroidSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) +TSharedPtr FAndroidSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) { TSharedPtr transactionContextAndroid = StaticCastSharedPtr(context); TSharedPtr transactionOptionsAndroid = MakeShareable(new FAndroidSentryTransactionOptions()); - transactionOptionsAndroid->SetCustomSamplingContext(options); + transactionOptionsAndroid->SetCustomSamplingContext(options.CustomSamplingContext); auto transaction = FSentryJavaObjectWrapper::CallStaticObjectMethod(SentryJavaClasses::Sentry, "startTransaction", "(Lio/sentry/TransactionContext;Lio/sentry/TransactionOptions;)Lio/sentry/ITransaction;", transactionContextAndroid->GetJObject(), transactionOptionsAndroid->GetJObject()); diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h index b985906c5..651d2bc8f 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h @@ -37,7 +37,7 @@ class FAndroidSentrySubsystem : public ISentrySubsystem virtual TSharedPtr StartTransaction(const FString& name, const FString& operation) override; virtual TSharedPtr StartTransactionWithContext(TSharedPtr context) override; virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) override; - virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) override; + virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) override; virtual TSharedPtr ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) override; virtual void HandleAssert() override; diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.cpp index 9d26eabbc..47a2d8c9a 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.cpp @@ -16,14 +16,14 @@ void FAndroidSentryTransactionOptions::SetupClassMethods() SetCustomSamplingContextMethod = GetMethod("setCustomSamplingContext", "(Lio/sentry/CustomSamplingContext;)V"); } -void FAndroidSentryTransactionOptions::SetCustomSamplingContext(const TMap& data) +void FAndroidSentryTransactionOptions::SetCustomSamplingContext(const TMap& data) { FSentryJavaObjectWrapper NativeCustomSamplingContext(SentryJavaClasses::CustomSamplingContext, "()V"); FSentryJavaMethod SetMethod = NativeCustomSamplingContext.GetMethod("set", "(Ljava/lang/String;Ljava/lang/Object;)V"); for (const auto& dataItem : data) { - NativeCustomSamplingContext.CallMethod(SetMethod, *GetJString(dataItem.Key), *GetJString(dataItem.Value)); + NativeCustomSamplingContext.CallMethod(SetMethod, *GetJString(dataItem.Key), FAndroidSentryConverters::VariantToNative(dataItem.Value)->GetJObject()); } CallMethod(SetCustomSamplingContextMethod, NativeCustomSamplingContext.GetJObject()); diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.h index 8523211f5..0a15ccc68 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.h @@ -2,6 +2,8 @@ #pragma once +#include "SentryVariant.h" + #include "Infrastructure/AndroidSentryJavaObjectWrapper.h" class FAndroidSentryTransactionOptions : public FSentryJavaObjectWrapper @@ -11,7 +13,7 @@ class FAndroidSentryTransactionOptions : public FSentryJavaObjectWrapper void SetupClassMethods(); - void SetCustomSamplingContext(const TMap& data); + void SetCustomSamplingContext(const TMap& data); private: FSentryJavaMethod SetCustomSamplingContextMethod; diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index 637f55967..2017ff258 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -387,12 +387,12 @@ TSharedPtr FAppleSentrySubsystem::StartTransactionWithContex return StartTransactionWithContext(context); } -TSharedPtr FAppleSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) +TSharedPtr FAppleSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) { TSharedPtr transactionContextIOS = StaticCastSharedPtr(context); id transaction = [SENTRY_APPLE_CLASS(SentrySDK) startTransactionWithContext:transactionContextIOS->GetNativeObject() - customSamplingContext:FAppleSentryConverters::StringMapToNative(options)]; + customSamplingContext:FAppleSentryConverters::VariantMapToNative(options.CustomSamplingContext)]; return MakeShareable(new FAppleSentryTransaction(transaction)); } diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h index d26233c44..72861cd5d 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h @@ -37,7 +37,7 @@ class FAppleSentrySubsystem : public ISentrySubsystem virtual TSharedPtr StartTransaction(const FString& name, const FString& operation) override; virtual TSharedPtr StartTransactionWithContext(TSharedPtr context) override; virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) override; - virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) override; + virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) override; virtual TSharedPtr ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) override; virtual void HandleAssert() override {} diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index f2fb3c3d5..2551d4f48 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -673,10 +673,17 @@ TSharedPtr FGenericPlatformSentrySubsystem::StartTransaction return nullptr; } -TSharedPtr FGenericPlatformSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) +TSharedPtr FGenericPlatformSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) { - UE_LOG(LogSentrySdk, Log, TEXT("Transaction options currently not supported (and therefore ignored) on generic platform.")); - return StartTransactionWithContext(context); + if (TSharedPtr platformTransactionContext = StaticCastSharedPtr(context)) + { + if (sentry_transaction_t* nativeTransaction = sentry_transaction_start(platformTransactionContext->GetNativeObject(), FGenericPlatformSentryConverters::VariantMapToNative(options.CustomSamplingContext))) + { + return MakeShareable(new FGenericPlatformSentryTransaction(nativeTransaction)); + } + } + + return nullptr; } TSharedPtr FGenericPlatformSentrySubsystem::ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index c395a01e5..b0df00e04 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -49,7 +49,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual TSharedPtr StartTransaction(const FString& name, const FString& operation) override; virtual TSharedPtr StartTransactionWithContext(TSharedPtr context) override; virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) override; - virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) override; + virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) override; virtual TSharedPtr ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) override; virtual void HandleAssert() override {} diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h index be72668bd..80b7b958e 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h @@ -6,6 +6,7 @@ #include "SentryDataTypes.h" #include "SentryVariant.h" +#include "SentryTransactionOptions.h" class ISentryAttachment; class ISentryBreadcrumb; @@ -60,7 +61,7 @@ class ISentrySubsystem virtual TSharedPtr StartTransaction(const FString& name, const FString& operation) = 0; virtual TSharedPtr StartTransactionWithContext(TSharedPtr context) = 0; virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) = 0; - virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) = 0; + virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) = 0; virtual TSharedPtr ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) = 0; /** Unreal-specific methods that are not part of the platform's Sentry SDK API */ diff --git a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h index 23c28fc47..d9f827283 100644 --- a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h @@ -39,7 +39,7 @@ class FNullSentrySubsystem : public ISentrySubsystem virtual TSharedPtr StartTransaction(const FString& name, const FString& operation) override { return nullptr; } virtual TSharedPtr StartTransactionWithContext(TSharedPtr context) override { return nullptr; } virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) override { return nullptr; } - virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) override { return nullptr; } + virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) override { return nullptr; } virtual TSharedPtr ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) override { return nullptr; } virtual void HandleAssert() override {} diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index b7fa7b364..f448561a1 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -553,7 +553,7 @@ USentryTransaction* USentrySubsystem::StartTransactionWithContextAndTimestamp(US return USentryTransaction::Create(SentryTransaction); } -USentryTransaction* USentrySubsystem::StartTransactionWithContextAndOptions(USentryTransactionContext* Context, const TMap& Options) +USentryTransaction* USentrySubsystem::StartTransactionWithContextAndOptions(USentryTransactionContext* Context, const FSentryTransactionOptions& Options) { check(SubsystemNativeImpl); check(Context); diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index b731ef6a2..42bab411e 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -8,6 +8,7 @@ #include "SentryDataTypes.h" #include "SentryScope.h" #include "SentryVariant.h" +#include "SentryTransactionOptions.h" #include "SentrySubsystem.generated.h" @@ -307,7 +308,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Options Transaction options. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - USentryTransaction* StartTransactionWithContextAndOptions(USentryTransactionContext* Context, const TMap& Options); + USentryTransaction* StartTransactionWithContextAndOptions(USentryTransactionContext* Context, const FSentryTransactionOptions& Options); /** * Creates a transaction context to propagate distributed tracing metadata from upstream diff --git a/plugin-dev/Source/Sentry/Public/SentryTransactionOptions.h b/plugin-dev/Source/Sentry/Public/SentryTransactionOptions.h new file mode 100644 index 000000000..7874db011 --- /dev/null +++ b/plugin-dev/Source/Sentry/Public/SentryTransactionOptions.h @@ -0,0 +1,22 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "SentryVariant.h" + +#include "SentryTransactionOptions.generated.h" + +/** + * Additional data used to create transactions. + */ +USTRUCT(BlueprintType) +struct SENTRY_API FSentryTransactionOptions +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category = "Sentry") + TMap CustomSamplingContext; + + UPROPERTY(BlueprintReadWrite, Category = "Sentry") + bool IsBindToScope; +}; \ No newline at end of file From 6672871da045da9bca4d2a97d7a47b8509b83790 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 27 Aug 2025 15:13:40 +0300 Subject: [PATCH 02/15] Add trace sampler support for Windows/Linux --- .../Android/AndroidSentrySamplingContext.cpp | 6 +- .../Android/AndroidSentrySamplingContext.h | 2 +- .../Apple/AppleSentrySamplingContext.cpp | 4 +- .../Apple/AppleSentrySamplingContext.h | 2 +- .../GenericPlatformSentrySamplingContext.cpp | 33 ++++++++++ .../GenericPlatformSentrySamplingContext.h | 27 ++++++++ .../GenericPlatformSentrySubsystem.cpp | 62 +++++++++++++++++- .../GenericPlatformSentrySubsystem.h | 4 ++ ...enericPlatformSentryTransactionContext.cpp | 8 +-- .../HAL/PlatformSentrySamplingContext.h | 2 + .../SentrySamplingContextInterface.h | 4 +- .../Private/Null/NullSentrySamplingContext.h | 2 +- .../Sentry/Private/SentrySamplingContext.cpp | 4 +- .../Sentry/Public/SentrySamplingContext.h | 3 +- .../Source/Sentry/Public/SentrySettings.h | 2 +- .../Sentry/Public/SentryTransactionOptions.h | 3 +- sample/Content/Misc/BP_TraceSampler.uasset | Bin 48359 -> 49811 bytes sample/Content/UI/W_SentryDemo.uasset | Bin 498703 -> 506262 bytes 18 files changed, 146 insertions(+), 22 deletions(-) create mode 100644 plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp create mode 100644 plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySamplingContext.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySamplingContext.cpp index 7a0935522..2f70fe9db 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySamplingContext.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySamplingContext.cpp @@ -24,15 +24,15 @@ TSharedPtr FAndroidSentrySamplingContext::GetTransact return MakeShareable(new FAndroidSentryTransactionContext(*transactionContext)); } -TMap FAndroidSentrySamplingContext::GetCustomSamplingContext() const +TMap FAndroidSentrySamplingContext::GetCustomSamplingContext() const { auto customSamplingContext = CallObjectMethod(GetCustomSamplingContextMethod); if (!customSamplingContext) - return TMap(); + return TMap(); FSentryJavaObjectWrapper NativeCustomSamplingContext(SentryJavaClasses::CustomSamplingContext, *customSamplingContext); FSentryJavaMethod GetDataMethod = NativeCustomSamplingContext.GetMethod("getData", "()Ljava/util/Map;"); auto data = NativeCustomSamplingContext.CallObjectMethod(GetDataMethod); - return FAndroidSentryConverters::StringMapToUnreal(*data); + return FAndroidSentryConverters::VariantMapToUnreal(*data); } diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySamplingContext.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySamplingContext.h index 74146e21f..cf586157f 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySamplingContext.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySamplingContext.h @@ -14,7 +14,7 @@ class FAndroidSentrySamplingContext : public ISentrySamplingContext, public FSen void SetupClassMethods(); virtual TSharedPtr GetTransactionContext() const override; - virtual TMap GetCustomSamplingContext() const override; + virtual TMap GetCustomSamplingContext() const override; private: FSentryJavaMethod GetTransactionContextMethod; diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySamplingContext.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySamplingContext.cpp index daa9c75fc..fa88b0b5e 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySamplingContext.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySamplingContext.cpp @@ -22,9 +22,9 @@ TSharedPtr FAppleSentrySamplingContext::GetTransactio return MakeShareable(new FAppleSentryTransactionContext(SamplingContext.transactionContext)); } -TMap FAppleSentrySamplingContext::GetCustomSamplingContext() const +TMap FAppleSentrySamplingContext::GetCustomSamplingContext() const { - return FAppleSentryConverters::StringMapToUnreal(SamplingContext.customSamplingContext); + return FAppleSentryConverters::VariantMapToUnreal(SamplingContext.customSamplingContext); } SentrySamplingContext* FAppleSentrySamplingContext::GetNativeObject() diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySamplingContext.h b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySamplingContext.h index 0ab103ff2..65f9803cb 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySamplingContext.h +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySamplingContext.h @@ -13,7 +13,7 @@ class FAppleSentrySamplingContext : public ISentrySamplingContext virtual ~FAppleSentrySamplingContext() override; virtual TSharedPtr GetTransactionContext() const override; - virtual TMap GetCustomSamplingContext() const override; + virtual TMap GetCustomSamplingContext() const override; SentrySamplingContext* GetNativeObject(); diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp new file mode 100644 index 000000000..aa9879cab --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp @@ -0,0 +1,33 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "GenericPlatformSentrySamplingContext.h" +#include "GenericPlatformSentryTransactionContext.h" + +#include "Infrastructure/GenericPlatformSentryConverters.h" + +#include "Convenience/GenericPlatformSentryInclude.h" + +#if USE_SENTRY_NATIVE + +FGenericPlatformSentrySamplingContext::FGenericPlatformSentrySamplingContext(const sentry_transaction_context_t* transactionContext, sentry_value_t customSamplingContext) +{ + TransactionContext = const_cast(transactionContext); + CustomSamplingContext = customSamplingContext; +} + +FGenericPlatformSentrySamplingContext::~FGenericPlatformSentrySamplingContext() +{ + // Put custom destructor logic here if needed +} + +TSharedPtr FGenericPlatformSentrySamplingContext::GetTransactionContext() const +{ + return MakeShareable(new FGenericPlatformSentryTransactionContext(TransactionContext)); +} + +TMap FGenericPlatformSentrySamplingContext::GetCustomSamplingContext() const +{ + return FGenericPlatformSentryConverters::VariantToUnreal(CustomSamplingContext); +} + +#endif diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h new file mode 100644 index 000000000..330911e50 --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h @@ -0,0 +1,27 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "Convenience/GenericPlatformSentryInclude.h" + +#include "Interface/SentrySamplingContextInterface.h" + +#if USE_SENTRY_NATIVE + +class FGenericPlatformSentrySamplingContext : public ISentrySamplingContext +{ +public: + FGenericPlatformSentrySamplingContext(const sentry_transaction_context_t* transactionContext, sentry_value_t customSamplingContext); + virtual ~FGenericPlatformSentrySamplingContext() override; + + virtual TSharedPtr GetTransactionContext() const override; + virtual TMap GetCustomSamplingContext() const override; + +private: + sentry_transaction_context_t* TransactionContext; + sentry_value_t CustomSamplingContext; +}; + +typedef FGenericPlatformSentrySamplingContext FPlatformSentrySamplingContext; + +#endif diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 2551d4f48..f5bf4e0d4 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -10,6 +10,7 @@ #include "GenericPlatformSentryTransaction.h" #include "GenericPlatformSentryTransactionContext.h" #include "GenericPlatformSentryUser.h" +#include "GenericPlatformSentrySamplingContext.h" #include "SentryBeforeBreadcrumbHandler.h" #include "SentryBeforeSendHandler.h" @@ -18,6 +19,7 @@ #include "SentryEvent.h" #include "SentryModule.h" #include "SentrySettings.h" +#include "SentrySamplingContext.h" #include "SentryTraceSampler.h" @@ -42,6 +44,8 @@ extern CORE_API bool GIsGPUCrashed; +static FGenericPlatformSentrySubsystem* GGenericPlatformSentrySubsystem; + #if USE_SENTRY_NATIVE void PrintVerboseLog(sentry_level_t level, const char* message, va_list args, void* userdata) @@ -96,6 +100,18 @@ void PrintVerboseLog(sentry_level_t level, const char* message, va_list args, vo } } +/* static */ double FGenericPlatformSentrySubsystem::HandleTraceSampling(const sentry_transaction_context_t* transaction_ctx, sentry_value_t custom_sampling_ctx, const int* parent_sampled) +{ + if (GGenericPlatformSentrySubsystem) + { + return StaticCast(GGenericPlatformSentrySubsystem)->OnTraceSampling(transaction_ctx, custom_sampling_ctx, parent_sampled); + } + else + { + return 0.0; + } +} + sentry_value_t FGenericPlatformSentrySubsystem::OnBeforeSend(sentry_value_t event, void* hint, void* closure, bool isCrash) { if (!closure || this != closure) @@ -187,6 +203,41 @@ sentry_value_t FGenericPlatformSentrySubsystem::OnCrash(const sentry_ucontext_t* return OnBeforeSend(event, nullptr, closure, true); } +double FGenericPlatformSentrySubsystem::OnTraceSampling(const sentry_transaction_context_t* transaction_ctx, sentry_value_t custom_sampling_ctx, const int* parent_sampled) +{ + USentryTraceSampler* Sampler = GetTraceSampler(); + if (!Sampler) + { + // If custom sampler isn't set skip further processing + return parent_sampled != nullptr ? *parent_sampled : 0.0; + } + + if (FUObjectThreadContext::Get().IsRoutingPostLoad) + { + UE_LOG(LogSentrySdk, Log, TEXT("Executing traces sampler is not allowed during object post-loading.")); + return parent_sampled != nullptr ? *parent_sampled : 0.0; + } + + if (IsGarbageCollecting()) + { + // If traces sampling happens during garbage collection we can't instantiate UObjects safely or obtain a GC lock + // since it will cause a deadlock (see https://github.com/getsentry/sentry-unreal/issues/850). + // In this case event will be reported without calling a `beforeSend` handler. + UE_LOG(LogSentrySdk, Log, TEXT("Executing traces sampler is not allowed during garbage collection.")); + return parent_sampled != nullptr ? *parent_sampled : 0.0; + } + + USentrySamplingContext* Context = USentrySamplingContext::Create(MakeShareable(new FGenericPlatformSentrySamplingContext(transaction_ctx, custom_sampling_ctx))); + + float samplingValue; + if (Sampler->Sample(Context, samplingValue)) + { + return samplingValue; + } + + return parent_sampled != nullptr ? *parent_sampled : 0.0; +} + void FGenericPlatformSentrySubsystem::InitCrashReporter(const FString& release, const FString& environment) { crashReporter = MakeShareable(new FGenericPlatformSentryCrashReporter); @@ -233,6 +284,7 @@ void FGenericPlatformSentrySubsystem::AddByteAttachment(TSharedPtrEnableTracing && settings->SamplingType == ESentryTracesSamplingType::TracesSampler) { - UE_LOG(LogSentrySdk, Warning, TEXT("The Native SDK doesn't currently support sampling functions")); + sentry_options_set_traces_sampler(options, HandleTraceSampling); } ConfigureHandlerPath(options); @@ -707,6 +762,11 @@ USentryBeforeBreadcrumbHandler* FGenericPlatformSentrySubsystem::GetBeforeBreadc return beforeBreadcrumb; } +USentryTraceSampler* FGenericPlatformSentrySubsystem::GetTraceSampler() +{ + return sampler; +} + void FGenericPlatformSentrySubsystem::TryCaptureScreenshot() { const FString& ScreenshotPath = GetScreenshotPath(); diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index b0df00e04..3652cf268 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -56,6 +56,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem USentryBeforeSendHandler* GetBeforeSendHandler(); USentryBeforeBreadcrumbHandler* GetBeforeBreadcrumbHandler(); + USentryTraceSampler* GetTraceSampler(); void TryCaptureScreenshot(); void TryCaptureGpuDump(); @@ -75,6 +76,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual sentry_value_t OnBeforeSend(sentry_value_t event, void* hint, void* closure, bool isCrash); virtual sentry_value_t OnBeforeBreadcrumb(sentry_value_t breadcrumb, void* hint, void* closure); virtual sentry_value_t OnCrash(const sentry_ucontext_t* uctx, sentry_value_t event, void* closure); + virtual double OnTraceSampling(const sentry_transaction_context_t *transaction_ctx, sentry_value_t custom_sampling_ctx, const int *parent_sampled); void InitCrashReporter(const FString& release, const FString& environment); @@ -90,9 +92,11 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem static sentry_value_t HandleBeforeSend(sentry_value_t event, void* hint, void* closure); static sentry_value_t HandleBeforeBreadcrumb(sentry_value_t breadcrumb, void* hint, void* closure); static sentry_value_t HandleOnCrash(const sentry_ucontext_t* uctx, sentry_value_t event, void* closure); + static double HandleTraceSampling(const sentry_transaction_context_t *transaction_ctx, sentry_value_t custom_sampling_ctx, const int *parent_sampled); USentryBeforeSendHandler* beforeSend; USentryBeforeBreadcrumbHandler* beforeBreadcrumb; + USentryTraceSampler* sampler; TSharedPtr crashReporter; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransactionContext.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransactionContext.cpp index c38cf7c84..15ebe027e 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransactionContext.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransactionContext.cpp @@ -19,16 +19,12 @@ FGenericPlatformSentryTransactionContext::FGenericPlatformSentryTransactionConte FString FGenericPlatformSentryTransactionContext::GetName() const { - // no corresponding implementation in sentry-native - UE_LOG(LogSentrySdk, Warning, TEXT("The native SDK doesn't currently support transaction's context GetName function")); - return FString(); + return FString(sentry_transaction_context_get_name(TransactionContext)); } FString FGenericPlatformSentryTransactionContext::GetOperation() const { - // no corresponding implementation in sentry-native - UE_LOG(LogSentrySdk, Warning, TEXT("The native SDK doesn't currently support transaction's context GetOperation function")); - return FString(); + return FString(sentry_transaction_context_get_operation(TransactionContext)); } sentry_transaction_context_t* FGenericPlatformSentryTransactionContext::GetNativeObject() diff --git a/plugin-dev/Source/Sentry/Private/HAL/PlatformSentrySamplingContext.h b/plugin-dev/Source/Sentry/Private/HAL/PlatformSentrySamplingContext.h index 9ef13fea4..28c59a963 100644 --- a/plugin-dev/Source/Sentry/Private/HAL/PlatformSentrySamplingContext.h +++ b/plugin-dev/Source/Sentry/Private/HAL/PlatformSentrySamplingContext.h @@ -6,6 +6,8 @@ #include "Android/AndroidSentrySamplingContext.h" #elif PLATFORM_APPLE #include "Apple/AppleSentrySamplingContext.h" +#elif USE_SENTRY_NATIVE +#include "GenericPlatform/GenericPlatformSentrySamplingContext.h" #else #include "Null/NullSentrySamplingContext.h" #endif diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentrySamplingContextInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentrySamplingContextInterface.h index e454be0e9..9ee535b35 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentrySamplingContextInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentrySamplingContextInterface.h @@ -4,6 +4,8 @@ #include "CoreMinimal.h" +#include "SentryVariant.h" + class ISentryTransactionContext; class ISentrySamplingContext @@ -12,5 +14,5 @@ class ISentrySamplingContext virtual ~ISentrySamplingContext() = default; virtual TSharedPtr GetTransactionContext() const = 0; - virtual TMap GetCustomSamplingContext() const = 0; + virtual TMap GetCustomSamplingContext() const = 0; }; \ No newline at end of file diff --git a/plugin-dev/Source/Sentry/Private/Null/NullSentrySamplingContext.h b/plugin-dev/Source/Sentry/Private/Null/NullSentrySamplingContext.h index 390e1f8ed..7a92f6c79 100644 --- a/plugin-dev/Source/Sentry/Private/Null/NullSentrySamplingContext.h +++ b/plugin-dev/Source/Sentry/Private/Null/NullSentrySamplingContext.h @@ -10,7 +10,7 @@ class FNullSentrySamplingContext final : public ISentrySamplingContext virtual ~FNullSentrySamplingContext() override = default; virtual TSharedPtr GetTransactionContext() const override { return nullptr; } - virtual TMap GetCustomSamplingContext() const override { return {}; } + virtual TMap GetCustomSamplingContext() const override { return {}; } }; typedef FNullSentrySamplingContext FPlatformSentrySamplingContext; diff --git a/plugin-dev/Source/Sentry/Private/SentrySamplingContext.cpp b/plugin-dev/Source/Sentry/Private/SentrySamplingContext.cpp index d83cafcc8..b452a60c2 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySamplingContext.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySamplingContext.cpp @@ -15,10 +15,10 @@ USentryTransactionContext* USentrySamplingContext::GetTransactionContext() const return USentryTransactionContext::Create(transactionContextNativeImpl); } -TMap USentrySamplingContext::GetCustomSamplingContext() const +TMap USentrySamplingContext::GetCustomSamplingContext() const { if (!NativeImpl) - return TMap(); + return TMap(); return NativeImpl->GetCustomSamplingContext(); } diff --git a/plugin-dev/Source/Sentry/Public/SentrySamplingContext.h b/plugin-dev/Source/Sentry/Public/SentrySamplingContext.h index 44e1fb670..53ca4406a 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySamplingContext.h +++ b/plugin-dev/Source/Sentry/Public/SentrySamplingContext.h @@ -5,6 +5,7 @@ #include "CoreMinimal.h" #include "SentryImplWrapper.h" +#include "SentryVariant.h" #include "SentrySamplingContext.generated.h" @@ -29,5 +30,5 @@ class SENTRY_API USentrySamplingContext : public UObject, public TSentryImplWrap /** Gets custom data used for sampling. */ UFUNCTION(BlueprintPure, Category = "Sentry") - TMap GetCustomSamplingContext() const; + TMap GetCustomSamplingContext() const; }; diff --git a/plugin-dev/Source/Sentry/Public/SentrySettings.h b/plugin-dev/Source/Sentry/Public/SentrySettings.h index 7bc11377b..6515371ec 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySettings.h +++ b/plugin-dev/Source/Sentry/Public/SentrySettings.h @@ -311,7 +311,7 @@ class SENTRY_API USentrySettings : public UObject float TracesSampleRate; UPROPERTY(Config, EditAnywhere, Category = "General|Performance Monitoring", - Meta = (DisplayName = "Traces sampler (for Android/Apple only)", ToolTip = "Custom handler for determining traces sample rate based on the sampling context.", + Meta = (DisplayName = "Traces sampler", ToolTip = "Custom handler for determining traces sample rate based on the sampling context.", EditCondition = "EnableTracing && SamplingType == ESentryTracesSamplingType::TracesSampler", EditConditionHides)) TSubclassOf TracesSampler; diff --git a/plugin-dev/Source/Sentry/Public/SentryTransactionOptions.h b/plugin-dev/Source/Sentry/Public/SentryTransactionOptions.h index 7874db011..cec674577 100644 --- a/plugin-dev/Source/Sentry/Public/SentryTransactionOptions.h +++ b/plugin-dev/Source/Sentry/Public/SentryTransactionOptions.h @@ -17,6 +17,5 @@ struct SENTRY_API FSentryTransactionOptions UPROPERTY(BlueprintReadWrite, Category = "Sentry") TMap CustomSamplingContext; - UPROPERTY(BlueprintReadWrite, Category = "Sentry") - bool IsBindToScope; + // TODO: Add other options such as `BindToScope` flag }; \ No newline at end of file diff --git a/sample/Content/Misc/BP_TraceSampler.uasset b/sample/Content/Misc/BP_TraceSampler.uasset index 9a0878f247ae8dd8626c0beefaa854c896d45549..82c9a49296b25f744dea7ca28f10437c467d81c3 100644 GIT binary patch literal 49811 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 literal 48359 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 diff --git a/sample/Content/UI/W_SentryDemo.uasset b/sample/Content/UI/W_SentryDemo.uasset index 9ebff37630a6ae627c2a430aaa0bc353238530fe..6dc34ee33b0fa17f1756a96189b5e206b34dcfb2 100644 GIT binary patch literal 506262 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 a!7<|9682bEc&p=6a#W8lr-w&1UHpH?BsL)c literal 498703 zcmeFa2Y4Js^8Y;xCg+?Eu#CYbIA>#ml^n1wW6LHZ%hE~~mb9{V<%G%M2qtHfO+0L} z$s9Q!9621xq~pj3969-|Pj{DQcD0gPXYKR9_j!IRmv^S8r@!6R)zwwiJ+luVx65Te zuUN5S+NwdY_9}t-tSpk$}(i`U3I_l0AZmG3HPAN7CZmi0!XpXQ(Y-8ygfTRif<;@&+aZNFPq4OWxy35oi+ ze02#1N~O+?1wo#i^&3_=Xwb;~K?92i6b~3MtaxC4;m9HR!}<;zSXel$p#MP0Vm~9~ zhN?+Huvktn+dT-Lcqs@ZDY)~~Ab3FNO`%JV-0S)t=bbX{mcM@$AF}G8*Y0@kx$bBG zazx3(O@{US=wEN#OMc3s0$qY_f>nYoPuU{2iKOnj>y)B_yH1MN#>Q7F~7Dc z-q2W6pPCd;CYl;6;>kXfQ|0xQ<&Bl&%PSfa$>5^<#^1g<_l+vAi}#r_rq6z5ljHTN z#(9PDxgTbB#gM0yYEdq_}QlDOX- z_d6t5d-6B-xc?!+GfOtU&!i7HBv^XaLVG;$kl=!g&%4c}4>~0H=FjWc=J8pJ? zNvf}yk!UO|Pn8Eh&*(dMO$snc$>8hC+Ue_Y-dNp44JL><1Xn&-*Voj|B~C3Dc?x#A z_RvKJJDOTtnQ6ON)D#CO`fh}1Zr;ZufIIo-&AALq>%@7 zEtyiAW`OS5h*qCUDH>TzVV{ZAdh9Nm}^5mjPrNP^GB_B2H4*Rof&!++! zpFgs&Yw?r`1zjhWjG0hcG%48ZyZLueo#`WMYZG${MK`2s67|7~Z`S{OGm;Aubu=@- zY5Mfqxb$*;yfT>8d&hB%+4PH3YmzmRC)l_9h!JSXtXDl%7eZiks>y zf??k;dz>DYM8<46joj?SpO0`EixU-1Nt5{Y-+LeDGEQu2jGLR^c&y|EQ`>Rz>hg+t z6XNm8(u7>Cj!&K$ubmXHN(N`#c<}CPQU16@qM@d~I(T=>iyM)JW)&7}I&8pt-J&Vd zEe$f$)TijN>he@Pzox#DdsmC!*&hLEzIRkpO=a->8e306IX0(Go|jC;>!!vVll1m6 zskL@ZyU9rZx*MInd|SC``uOt7_{b{ZQ_1XjV`EJvaxh8M^X&54VEebGeN|4$^_4}l zQ)OlOO{r9(zO10UAtfv@TrJzD|Aa(kTx8wVIUhA?FAXRwskgTj)Jng^U2>T=YqE$! zIVA<%PTn!^u(pBFPm?QTOtghK&>L~|gL~Xn(JJEjcrsaD-6m9DZ>Vz)e`NdG_Mp6) z*WVj+)ab-o2WG)+EKkm8i-Cju5hk4;G(-@h^K~{s8CB30?qF}+s$Li0Uf&Mx#CT&> zqOp$2tAAUlL%dPfTXNU^b^fSrf%fwTJ?r|_{({*#J&~vldaqOY8A>T%PMYV24ZGZO z3Ufn#LI!4Cu;Q-yS2Nj7*RhP2GAe(=AI?0;Xs?MFY^8~DiR$3w6OTE@s7aS5`ZgY~ z52laZVHy)a{=})}jWy^#QQF4rLYo}5*-qj0~JY&Z6?OPP#u7-s?RN3c9!){j(22L>U=iPqCIC1b1F$?~*`Fe>+nX^ln*b?UhZ6i!!aZcGR!WZ~kfbw0xL3%_d1&-lg;R-<3WE%9d&J zik(t6MkbQr@=dPzkqIi}y0u!;O8Vg0r_W8xnKo5K>o@iHr$_D@Ei;<4xf{|7e`Vtj zHc4xeyG50CwD`)))>@-imf|z}ISpX`@eK?5q}`OLpIyd)D@_zzPrwX``c&F&=jJ_d z5Z+NUdqnJKml>P2&HENj-{9@uE$$PWrOmsx-}3aTel6~roRV=}-R6zouYUC|JzBl7 zRK{sqtMXPq{=}Bq$yS=MXldDRnYhWd1JgonUT_YTwJmEUg8VQk|RUT`lpkdrYDURmsV!%u{AG8{YCTROQmIcy!%)0 zrj0=?2R;i6v-{4 zI4$qCf4X_iH10+6W*JR?-mYpvno1#ing%LvOw?I-GAiB=JbC0gX&Nl+eJ$F(>DX?g z+lOn(f$Gusjq4xng{*MGi+FX$=(zKb4+o^_zN~kSFK?}Lwk_qRg3C!g3+3{vwTvMAqGK-hj{E#Lv z5-w{@70jrqt(+_la#~Xl-0i$y(@Q3AL_?+JelK~%B8e!5BiWQ3$&KE1Z5&ze#%nUI zh%uK>D^Jr!+Kha$N|G%_ZS}SP@){OpL3#b`a_8``*=3Kd2}DHF%EpV+9(;MhTH9=x ze!-YQw-ju)6_!tQ@(+$4bnUlWonYBo1Vx|%(eUu zCUjln2JBODs3XZ`rSZnP8u6Azha3O>l%@av3a>uQHcuiK|DJwH+;o7s*_f`AQ(X9D z`%C&0k(2Buu=UJV_g`)pZ_f)7wTZ@H?n5JvizF7t8zd<8$>h1$5U;?&m-vxHh|YO( z(Z$3_Ny!?fcy7y7jp>C}G9-hAC%;>6dQo$z*=r($quvOmFI_U5P>~G6 zR&2xIjQ3(^S-wh^EM{PE+s93>8IyuCbawn)Pvw(<>QXPE$#n;R< zLL4ao^D4M<&ok>x|1>4V+qI*pX!D!y!zC*)Y3lD9F)ClW@Ed$A6OvwQOu@VKBPU{q z1nWK6bP&?Oxz*)GpDeiC zQuBc8q4abJ5HTvSl&`U~{IP>-I%}GD@N&HOt7} z`!o;;Y|dgW2E9D`hOK+U{*24v;>MJegl>c6`d6-=R+}`tV|2V$Y{{VS;M5wZx#qIy zAiE+E3?DUd3c9rUT3TqRAb9A5*coYzwf8lLFN1O0o;nNxa0Qq(9)gU)vJXC>lKPkc83Wh*K{!uvnI_~}>Z?@AX@4SxJ}(HSJD#*l>3lPsu> zxvD4yn=I~o0TQM;OXf)Y+6v#O#n1PS-lJM9$eaGwa4QD}I{2)MT`Y=H~h5eVlLDl$cX5(wLYt zrcQ#H!4@ao@r-G5ll29Hm*4xX4_dfzUVV98O@)gx+jX;KP=5T`7c(A;D(xa$m&CF| z=yG?iQC~BiELytha1h-!2_YNhxqQxSaA2l7p@0S3Ax8B3nj=- zF=Ohh62X0C8~$qV;gYS4(JOx+dHK=st7vqhv1UF?E43qQC4y`!u;SHIXPN@X)l|tM zM_pW$iJK|z?^5{`Y9L;lj0d0h*kB1#QB)_(6v3b)H~$fi7S$8xs$^itgNJvV@Xi`0 zk+sg?u2|v6sIwv(99a=d2JvIo%|q$8xH5eB=$gt(38lThtoo7Wd(%Kp-21Knu=Z*0 zjb0f(yf8jHUYls3Sta$g^MWB&FMnd{Ghyd}R*QB=X`-`c(^Uxa_GA)b;zPn<3Q;^dl zR4X`b7@u4-KR&5R%!`fo8-0lBo3!NN!;5QbYlBH6Z@Ad-+^oX%E8F2_ z1lCLmU9D(+{PXrVn>LZdCLMB3><}Y;B#o&IHrjd0Xamf-tgOTv;}YEsu3P;65)Aty zt3xnJ#OlUxWF=@~W4yA)20*X=cG9-Qo7&4be0Yg0Qc38zGMF|bZ*?O$bK@1kg3o^2 z+VI$(98*r^;&Rd?B2#n0M>lLo;r4vW^mt=63)5v$%@#Usaz3tpJC;17nc@H8&tH6E9g1=#%XJogI}+E_jg)REW;=0`Ch|fdO`vdMY1%^0#&f% zSqDFaSu1IAyW(w4!-?mgeY3$bL5yJ7dZ(VwaI-NDU0XF1?Se($c1LWA8*5}~wsxM; zNUJ{n%sQs-8jo)L_MVgJPGy1V^kh)DbI(0Yxh@|!mnKk5!Pl?-ZpNYB5z4?d2mZDh zb2(i(GuRZ>tZ2nO310c-hhDTVyaT6&VD@^q^ay09P9VcHb{_y4}8D1(gK3cHzmeX#A zJ?>t6SMr1dx1m3yiDhG=3_No6=Wat5Tn?*xOlJi{-`kVfN3S^LQDhdRE`E8nT`+Po zF3O%I*>Vu<9)Izx2y7Oe@XWdI^ozibsVbcjuP?%u*l<+r31q~TyidIhg%?i9?-Hqs z*#|X7_8PDh8JzG-uh|SncLOmf(}TeyyXU=%;huS+%wE3k?$<6v@FJHbG8POz;|*g( zr6)_kr6Kt0tS4@Z^Z`i3(jaRcFaP!XC6QK{IGS~eKkD;Yc|;7tD`i=f{kvlajOm(Q zGZ|arTf2Q;Zn-4*V)?K8qETE`ZQMAxap{O?*Vt6?+|6!~V9-A$!CxdmjTjd3W zdYsI#^{J7@+A@axp=*D-3hK>XFiGzvCKcGEc@i2k=EAhTx2?+@HZES33i_OQ(&vn* zNH9OR_{De5hF{~1{dw4KXPs+uh-qHlXl;{C3zEgm+T&{KXO@ef^Pk6F{{Svx(Bvm7 z=LMyYT(dT?W;B{PH27@7CPr6=N#V45%OQ^+&2)|EM^*}ghpzqW%d|9-Zmg@|nZ2g| z&iIU6ka;7h+4tTX;b$b-iSKb=p3)6%%#}3nx;d&Jtk`$&6)2{xSqR_6+sM+{Pc(srbZ@T*tio;t4a zR-{F@F$5nSz3d!xl_ppnJgI8q*BOc96P4od$TnMv0nLsZ$F!l_spZV<<7Gmr5h08R z*H`cL7D8=}$Zd!IgOhr(WrJbc7A>Z#Txn*)vEQya)+EN~sESGkS6}8Xr{{1~uT2q~|yOKds@1Zx*!)`lne4j64oF?q<-1t5htYGLkKVSDej(qF(&*-F* zs;VS=OwV8Crb~Kq?zx|={Q0%FWT=+Zn>f6kS=hev=9^po8#?m85eH&y=E51a7jaOLic4i8!%mc4b~j- z^>y@xja26oYZDEyWhvLA)j+#aHx-VJ23VCio58>HN320K(S$nUjim{^Yoo-AWwUZTC|x{a z5n?F5zVuGg8Zqm<+5N#lEJ-mR(pzha8l8P!lFrCOGi&Ck}bE^nH$%AmlT%YB#9B%R2cS!F{s3Ye_lv& za#03SP1QV%_F#>RUpd>}l1$Xjj#us{3xO4~K5hau@2pyJ5}b5~>cz?PUZ6$M)!wU8 z-A-X3Pcj34oga3tMJ6UC5-AsnT{r&FFqk>HyefVmqj{}6?tGbgXo6jx+w0T8gJ7Yi z8mDe_*SSsfI4hc!Q)}XL>{tvIJoQCkbNYb^S%t2X9iOS7Z1dBeWoWUncKk{7lpVIZy&(8?&>-Vzg`@fPZA)e& zN=eyk7L+YMZLFz)X#d7};rd1J^F~WIg>`nOweH4U7cM#8Fv4V3%jw^zzWM+|-sa2< zjIVh5j`3kRw*E_(?|TDGw|5wUdgbgT+ZhI#qMJ8z1RK2l`9)|_n>DiT5zL$W-VkQs z7FR@oQY_u9wd?HfLKL$WlA1HUAZ&oz*%u9bZB+!+mgG`h$iCnFepfMriHV!(i68r0 zs;4bq7sP{Cmo)y&z?R&`P8(Ep*$5*_vO|R^Rq*Lg-KV((Ynt8qN%a}75M5P$=YU0L zyFwVv`5(T=55tU%$exe#>Y&SEUk`Ej$!Ri}asS&(+_`D|Es4Q9 z)9)t0a9j0&&rL-%82Q_ty$&}O5fu{8Z)}p-SYy}w%vMJep0o?@#3pvUUOT8oqKfVKQU5esJnFpBg~I9sA~;e~yu0IY|a3Zy)%c5!OUiDiWdLpSG|3I| zikhk#2|k%6)|-Z(b&g3c9a*qX*OIA4lZwZc>=&GWZQ-#dIsN&W2OijLTbCT!ClGA4 zO804ojTu`4f+N4&x@jl)l5v4`Y$r?M>VHtW>AO8)y68++u6Md|pUsSXxUFR2x_@wP z*;7qM@>7kfCWGA{ZtU*vX3UOu7CpLx}m6~0V)u&fYNwfL)mop z_NX-#{BY@u^9azIOEM)`$66Ly<$;bc*WtULGz71*ITs#;Y?&1GCfiq<3wvho^*=*x zn{0N%2`^r8z&a+>(aQ{EvyVlg3k^Jzmy=yoz!}{T2du+_yjH{Jjn~*0Lu9|bv zdjtZSQ_}X@2R(Kh_YsOB`(@c3al>^x4DH%#hHyK>s8LJq$y$((++ej^jh2rfnH{iG zKiFj-G-Q|_+36bmvhf~Iq*p(3wSO?+pf_IB_S)gF#^68Sg8HYpW|?_xc-23ytp$R#uN8i@HTzNjDj|68DtoQj5X3Cs0WlUi(|NRT%6e=;H zno47`m>F#09(R6?f}3rg$XeWY_)nbKz|rEq{jR6s=1dIORX2EgX?Wf*Shn%fzlG=h zgSvtFmErk-;LV+TtQwvV43^KkZ1?bdP%xwN*Mr0J!NINhoBanhWAKu}>91Y0oKsUZ zPM7D|+}1ffzTaaGO)M)2K70MNS{m%S@0a3h?#8&Vr_Gu(C^_`$i%@VG=^0BO zv!A_UE81jpS+)B1>LVUNMr>NCJOU8R-1)R$P^9}M8f#_VGB${F-9(gYC$g_<{ zyZ+>n=WdTY=0y)ur`Gf{{Q1?RoXu9T4Qs2Mo*sF2@yOHLBTrwCJpJ3rGgI2$r=2{9 zNuD=a>CHs=WQwHmUik)o?AWg+~$$zc8@&E+R5{l)Cc#7Pirzyo|oHcJ9%F5$n%Cro`1BH z=S{&{VXNF~oyqf(M>*})=O0oIL1;d$@rOL8*(`15Im08*nI3u0^2l?xN1iv^;ScTl z#3RqA?c{kw%4x5^$kSebk>@oJtoHhpa{kp$Ij>8e4LtH}*iN2TrJNhu=?n5K@yN5( zBhQTT6?X-j{);dDPb?&;70B+255JkUxW^`pu2U`8IbMXz*N?y~vH)Zx)Q>~!GMRvs<8tvt$)w(<~!=F?UlLZy7# z%0t+fPg{8i1@mbu4=VzEGV?s-cu0(BdWLK$FEkH*vARc|gFW)x;E_k)rr27Y@l*bu zQI7Im;~wOB$h16cyYgLqe|(vTGxBIT8bhF*M>6tg->Bb;pZjP=9_<_T0r3YP&&Z?Y zs4rP2dGuJ@j=piX1;kAEbtl|=sXOM)haLGyk;Mz&lfqs$u@pYy|eS%lWqL;yQ}kYvW=e?a)6U<{LH<(^V^ec z{H%XZ=i_7>KR0v&&P$QGLc}^C-px1j!heMLjJkK_+Y`kh+?fq$_-dW9U0kh9)GlRan@}G=kCWk7l-XG+1j(@@y^9zvrRUf%bw_59Cqqt z!#V58&c$J`Pd1$6pIUjG7bEiz{?Dm`#fLGw$Q%X1oTob%2m37>&PLCyJkAS|_T)+Z z7YgZoTFHTYmUJ>sHz_k4&IZq}e0!dcw1@t=(6qqz&qNnUNIuuOIP_08oJU_=d7OVm z+A~~m@D<(iYoKP%Caf$-*`5)5cP7+kRO?fESOr*8!3pKhbW?W1yoqkKEf6@Ot#Zg4OQ(AOK{ zK+0#w(%j$>Uj}D@D}K;{xxpd649*}|{ES0$gF}27oJ*bAcIouo;1FL1=R*FI&+w|; z;1FL1!n_+>zF(@(4bDam=L-TO^0{SBZg4i1vT4r(0&%&gKp$<%-|s{M_Jd z>2Nl1@^;yx+~92GaJo308?VR>4lm}Qf4aE-x%JxI;PB!)a6aTe`P}iB+~DxuIv`GR z?YYqWS}urwA76dI3$(zAx&G;TXKvcFox}N?!^tzh7VOs+a{0E0+S8u>Tr<9SBscBZ z-r=aaDR?qBI9(mi0dD?z>2JBg$#Xa=X1l(a8=P(qN9VbBUd;{84i4vHH-5HyJ2yDp z9nK@Jf0ixJ4bF}kIJ5tm8=RdS&bF>SLqE?AP7jAO#ow3%&(YsK29%(Gt04S%m%sPTW^Q6lM}OhH_Z)BABXd+v#;OVGB-GV9gh0j zZ*7wsoPG{R!`AC}%?(a}hcnpqPjUC$;Gk|8r|USqv!G{ga0WOWjZ^%&cW!V7Ivka^ z`}^kxXOP2DJN~XgxxpFia8$o7+A}veLmbW!CkI3FbAvN9qdoPbbAvO?;i#Rs&bZv* z40kwcCyttw8=T!8j>Zo@P{T*keLlYP+z2Vm*dhEUpSU^>_O#vqeQ|VOjrv&y({sbO zJ*37oMfJg=s@&kP4h+tRuK4rJ+b$)+^W)1mme0XayJ~JCH|^Qm;pn_DvN1O}BOOlQ z^v<}sxxvYIIBP1-k-5Psa5%aQTzY(Na0(rcj-S&`$_-AD!%=_kqlLM_DRwx0T=B89 zbA!X!f%>`P`(BV6oKX(vEEhj0za%#}qaDtf4(Hp;bAvO+;hgMnj=d^3IAa}-#x2*m zE;l&)WZ;~0LvC=!W$Fe6F`vbYb(S5fX-0!WJAFRw=>z4P&U4zH|9qUA_UJsP{`Q|g%MFgsbANUH)BUU5;OP8wy2E+j{4%&t z&)7V^{iE~GB@QR?eQw&L^N-@J^K))+bpBC0Ev_@`lbpFwCx}7?zo!lPYQ9*moaqYQp{oJ&NcT|A0(BVwj zI5#-FqXHb|+nbx^28VZ4L~-Vr--VP!&rdeF{#6q7_MURkFS0+eujAXM+pc_jvf;3N zL3=arpvgF~rNoG!g`gQIcFQ=GgF?3)`L z+7fNg0|Qnb=a-D}!|y=IKZA3&YtL7MbAzMfXTHNZdU$Sdbo}h^)*FA>W94yv&fpur zjiG!y!?kD9-nqe1zCGjG^M1j~;xSA@g!BSkjrX1ygFjDh@;Ki|aC%DJdG?TIphp+D_7ohF8yszq;yie0ZgBMZ1;yEY zT5fRYmMGuuD$fm$jvsB$fQsDU==f2bn=5mJL#a`|?OK%^9JNEVJ=ay|28Xsp+p|MW zZgAGhz`6Xe+~8=OPx-b@?aJePm!Wrf237Tr?!&*JZsl?QlYuiLg0qja57ueS4UX!! z0S;$sDmOT)-xTNM*}1`Kem={!=l;35!O`clv_1cxpBo%~K1*@B9g!OxeLhQZrW}+~DZ*S&CC@evn&~xaUVy zSqpz5n|@O}MEQ34!rZh+pU>Ld>4VQs&kc?~pQSj#S-HVcyGr@Cx%uU0&(4u-zWt+i zmEx42mz(xbDt3tCEWIE%IBHj^T>p4cZgAADQk-2b$qkO$Rf==SWx2soyGn7+ykg~X zzK!UJp3?XHE~na6DrS!^UU{5vGI029PsJ%fz~!_5Uvh(^cGYMEPd*pl)VVnL^|VLz z=(8vW`FwcC%Hw>U!MD95e7nlw+nAbjVG^7iP@xxrDrqd1A*a)YCOu;Og9A~!hd2P@8#F*gy3ocMgCD_Yp`+4@KQ;4fYO zB)jAWNBv;MnYKo5aMTZ0obhYt21os1#TmX{ZgA8OR-7Ii<_1UoV8z*Vlic8_AFMdB z&2xjJez4+vwPkK_)DF>c`qnnN!BIb0+w@;IMI<_hePePrI&{<+loSsV4q4UYDY;@mVaH#piq zinGt~mB;xs!Z%@Ca23Xze3(k_-~~DI`DCvUhs!RDxt8s}Z1eWB5ggVq?s0`62lHJa zmmUz}WGgo_tvwvpFtXunap211{4LU+4F%_3A(}*cid{v|>SUaaTETg}6L6l1w1@ur zRp<=Yp5I-2wmoR&`Id?E8%&cAeB<4Ne6~Kg^KpKU;LtukV-D$joIfHsd%5G|5AA%M z6%icvTJd?bEH^mnmoT3A{4lNaar8$kkb~|Hr~mZM$B8)~0UZ5J`>7S3kF!byN9FqX z%Fe~1KeCO}+vA;&lWm;dQq}o5*~aPe>dwc>Hcq#$>3p1QTa)XmOP8ZJXe4K3K z^r_m;$H_KMzo_ecoNVKC>%_|AJe4t@?i|qvccMh)Gp3<)anJ|Za8`5z&XbY$>?An5 zNPAGz=+QrMAfG#Ct$cg3;iz0saX2qF<_1UoV8z)fl^Y!OOBCnurrhADU!piK%+3vt z`X!39S_21nO573cZ+or}|>mGRSkL2hs|$IsqJ~&0Ta5BfwxyR-Phf<^C=hNeIgOfRa_B>(baoBGi{XFJQ`pGwbDxY&s zTzQ;FBl8?(?&jug)=YNeKlya~bBIH=GOA|s=zm<3B3rCuJT7TZN78#a9C)Yizn*Y* zh@<7T_T3uJV-XDY#`kZ==@Q)F3cG8OKMuD@kuBO2#i6eh2YFMR@{3map&FKF|pxMLge2z=E3fm_bU%_ z$GiiXX9UT^dx{6TW8Njaj}YnG3-RnS$6bYZzL;al8f@nBbH2GdMt^SMj?r;jx?}Xv zR_+*Gv9&vfo7=c!wZkY68QRXJvv+2DcZ~RUb;qpD<+)?l&$_u|*0^?X$E-u)i&G|R zMLW9V9prdpcidf$H*v>#a*S)d)=# znkBSA=+8oL3H27L68c!Em(bZlmkRw;=t`k|g`O7ro6rkF&k6lq=y{>1gzgY}Mre}I zDMF759VB$3&~ZY?3mqcFbE^jk%@pb*)K>`o^^#DX(6d6dLiIukp>Ks6gc^k&6PhB_ zBs5#-8=?DzP8LcEJtCA6dQs>Yp^t>#7W$9SQ9>sPy(4s_&~%~4g^m__Sm;=x!-P%{ zdRJ(<&^&AlM5BXjpMCbo5 zU+c;DDnc=#RfW0;tuM5?&>BLgNuE=M77FbzbcxWxLZ1tj2)!&cRp4G_9qXiK3dgcb{3C3LmWHA2@4eJ6CC(3e8j3;jjt2BBMomI~b{ zbd%7{Lf;GBDzrrCHlf>vo)r2)$oC`74)zdQ+3!_dIq31(qU$Md&q%qexa)h%w;qp- z9Ouh1WsDLUEwqai!1)-Vu|mYdINwKToKSyvK3Z{wPGg z=|V>d9V0~DkCkuoRS1>Kx%NS&oG%l4L5TXqh3*u3PUwCi?x_;GROn+N@>C0Ptw!kI zLZngO(}bw|6+)zOoxEoWy(dK4VM5gD1R?508vKCQ@CN;bjMfT0E5vb~&`Uz(trtQ* z67s!5h_-S}I(^T8{Z_t6=bUS&3jHpGoKVIrp#?&J7NQSnW1|rL^q72eo^h(arq|C8bZeik&pg* zQRr=<{|LP+#68CfaSvsakF?{2X!r3#+P55&zEFsHingC1M7hg_xQ~0_8~M18JoF81 zdrOG(lY~AJqK>Nz(T@9ss4sm;|8SkWrwGxPkIFaY)Bnf%R|LT3xTB6N-rc{%6Wr9#?I zTw_d<4&J%${A+i9o;&}>ouBW{k#q82ka2#YJJ#h8o!{fmkrm3Pf5}f@bIy3<{ABrFP3V4iPWjbBuL_aQ zSRmgt`KHf56rv3e2$4Qjz8OEr$b&+2-0?&5{jv~P4+|YDbfi0fM7~o(Nq7FJd>;-2?}sCSJJZQ`Eyg{bof?woJZE*IjS z4~38=>T;$KY2YG%)PcSwjqBvSQi!@!Hv9so%ANm9z7G`o#GUg^8huKB_{X?_mum<; zC}WKea{7SK7eZ$Ul?&02p9|4fYYB0Ud_N2QBD7kpr4O~bq<<-NtspHw#hT zS3=Z}<9`cP3(>Z(h3Ju^u`$lNC(1k+h36b`#P(tW@p$mj4=RZQn2vNuHgq{>y zEOeF7)k4<@QJ?FCeh{LZ@7?)r@_oAy<#3Jr;nR;o@Zb!g4TOFYLT}6!Y7&0UlkfRL zhYKAcbdk_xq0@y*g)R|VBy_P5<-s%fhhE?u{zcD!mGe1~>%Yk{SepNLIc|uY{~^bx zM$T8raed?*`w%|q{n%*mQqQsDnj+`eEXPOAyU6*%$T@u-tuOZL%*b`@{6iw=_}0<< z_}S5OeD3JE`rp)#{=xP|Cuy5V!>*ytT5r;@YZl7)enQ;Khc9AHd~2ME{Z@H$PCv6J zs+)Xsy{G)g_eSn~WB0v@``*-jZ|1%?ci&sM?=9W8{x<1W?tE+ay^Z_+ll$J*eQ)Q! zw|C!NKExn*6Cz&OOQ^RH{x3f94lW;f#1e@i5_crVNX!vG7~iK_ zdJNC>xFB*YS(?*ViyR}XnxAhyE_BB|4X`5dnsNiT{V(>CrU&w7#Lbt1=WM~;i# zF?~8s#vAo!4^~h4-dTur`iS-G9`e11(4L$N4Hg*3`g?1MjE;LjqUuZ9( zVUU!;yJqM+l@sL~xWrW93Gr0D_?9R6;7vFAhF`>E;ZIljhBw4y;S2hxyBu#Q-#f}Td|qE@2RYtJzU8ak z4}HP?`_)ud$5Z*WP4R}tn);N%->+MLvNtCL1#`x@ppv#4}lL)@lJEInXiQQ3qM2lBk5{$)T7VjipH9TRG%s1NA;ePj5k`e9%l7qLV2oY zcD!Tvp(!Uc)lG^w)YeoWIgZ&i!Uv?Wuj!>`P87zI2A{s(xyUFn zwJxqLmtJG=^cy&A;Lrhshnf*ICRtdXDle(8oo5DQad~YrZiZ=bO+HtGcP{%w-0_(C zn=A$wM}L)x+NRk5*J?i7(jAQw_dX$J@mTr4Kup}(VusBU)1A~N2}@3w@9E+iR!Le+ zSZ&MMSI!zFAE`}}w@M8D_O7nt?p@hBtnSJwk$Tk&a!mMPYZazwt2c62V$wazhwx}~ zmsTjIZk3q*wbG{9(w;nVPm-qPDfz$Bw6H<=5R+-WbNHw{m?DS`!gY8!OUiC7eKm)x z?IB)e|FrFTXG}u#_DaWkc0G63zNY63rQJ=!lNnOGq!@`Y8PK-W)~>JNu4@gmb9_yg zt3iz9nTF?0lA@`d)rN_Y(hG&V(?vRwPi;eM*A>6*Hf-YBP%8CjjKH7P6{?XHynLyop~UG+uV99`elw#Xn%modnQ z*iYJM^-+k^b~!p0NQtXu&S}#0{$rb^tHAWkWoh4U_Ox{^$RL&Q--0JXYVie91WX4mNH=I$jU)7Nq)@bE) zAM%%y`ZN2@YL6(XJV8pswr0)*suOn>9$9JLMef_I1=4@l zV%64^9XG9xi5(f%OVf0Qv{#V#kk?wnak40^Ffjfo|#wG8<*RRS{MOp{&qm>INQQ>Fir|NTV*;>PM}5|^vc^gv1^ zA}KY+9*BuaX3?@;+rnK7dG+7*Qi!2*m~tkH-}0KGsdfmt7(G&sM*A;14rAg>+BU9i zJ9HLQDH$zXgugLy2`xg)D_grOZMUJD%QZxt;zIe$7g-!A&hj9UsUq2^F+`|H&ISnO zoAY7vJycxge7S?8fs$vKl(LO0X=U3QYX49VhP~GI)jxT)S@m$Sa4^&#QN24&wigVL zvQ+!7Y@1Xwj25juUo>Nll$|YYJFoid=m_ghOAeD!g{|2qG80TQJvL8D-QJbFvMtdW zJZwp+;LewJRmsd%Wk$A7o~~XkRqH9*z7Q`aGkNEXFO{mWRcNI;!_QD7XTPc=sO@pq z$JKOau>$v$Ug;wnxWd0)B8S;h3$mu>XGvvl+o6-Vp)vvw>Wx)`RT0|Cnd#j-30Ey9 z>mf0#v`pF2VYSU|y*g3!WRr|H>yu)AAg42oby_7Q?bJy%*O>r>YAL;?{oQ_!9$qa| zeUE*S-j<$T_bW%MWRo5qdrShUb`0tN?OQ0S>8%{h5-Gt~Kt>AW7)vCcrh}#!-9&9; zBKa0)fy^rDEl7`ugqH1*GRk)r8>b~&>vu33G=ia)i7y^@kjhVVwpTkUv>YZ%OYx2m z6F$~TYnYE!H~ZJNeLO9*z{oLLJ`qe4a@EOs=; zWPa~RnVI8nws=vD^ZJM$jY)9ar%WAhgU$FFF5{;_S~^(x!szNJZSHR@_aSlyPXr3?2P+cH zR(#Kj#2wUER!=fIYpd0v_vX2~VsdxoXEg@(PWJBJ=~pYGX?S#z2%Kc#epK@vnBU=i#Z#LYiLaIR#flC~J!}m%wvjRB&p|>&z_4J8r3E%NhK+#*LQIWW7rn$8Eg91xyn%8TC}^#r zBAIY+m_dbW@N}Rlom|*9`I15|I6Bnejdge}N4M&cVv(*HBK>yFXCJTn>AhA5X;gQd z*S#7ciq2l>2Xq-LMacR1c5BU=8GTwWk{**8$x62V|9{@W|C)EOnd_mpyn}FEBPLqQ zM_1{%EHI-0D;67<5rZBXD&LGtjs}?VG0cn+t8oTOo+7zcC}S%oD;+93_WS=N=zmRu zG(PSpLD_uEeLEymqeNC%8A03kGqQw@Y1clOpO7*%FqS30B>4*Ec({=_?Ab|Pc)C_& zeamnRwC`t5_9|b;2x~mlmpO!Z46_7LnS7Cd;w?m47$5yin;1*^@>eV=c0P`Y*W)uL zHDX13!q$XdPBxEeiYqy^gmi|9S|Oo#NEu;tnswp^6Nj57GY6~bO|qwi*n*8aYN_dW z#pJO7pZ2KcN?$QjtBP1$v@S8(dEry4_DZqvh&i1;pcn9D`bi2g3nCimC;AGFhW&(% zfsc-44v@Zy$!e<)UVHXYdMiTv=m4+MLmx33i6n}Dpx6D%jUm!5EE(c}15CS#4iYuQ z7K9Jz?7@IEAQuanW9xxXPMk8t?ZRCzpDcnMdB3Wt#^WDeWHrXnB68WMwrPYfG*CB}wz509sN z;c2Wiy7#A#luR4KJ$H>?b7>1GM^nu*6$geI(WT zWN4XTlG?G=N7j<~Yujhu*yW1KLsS|&dgPES0lsVQ~&BT)jNg8uM zQM5T7!XrvVbVzL$bO64EjT{m88YS1+QAOm)u36z#ut$X1CMFL8`m|3YcTvd=EsmII zJD*atSMX|zq&CzF3xf6|u~?_{555Dv#;UH3InhSe|Ex_tyMrWKNCH)N&(t*Wg zZOsKPT_L(>z7R7vbHOoQrKx@l`F*U{ zeQN)v@3F`eUg{p}n7qKFBRz-3P9HD>jFSEvBxGfs(M^xBHic9%+OQLdk=wZfxsS<% zxjuM01E$wJTJICQ$_eeNu*D~O-MO{Pm0p7=@A5>K*;W5&d?O~0;QO>tbrW2%kv(j2 zIBLf#9x__i`iNLr)^95^;~6e9& z=M=9pb^N5)mi5}GS00l`s5`=I^az@V6$oYlW@jXo84;b#yfD~EESedOs@fF&!#uFi z3s2XH(`%nu_tU(}QXQ6g_v!BLmiA6}cjZ9QTl3}N@H|p5QK=svUbe$AB1*7U-;UKpwun9G^{i0UwdV|g*VGe;7| z#nQ%hz>dVqBi3Vg3s@T#60Z`JPyK`^*s;v(SpURzu`bzpW;uxL zVKEa+vJrM7@OVGi12K6Sl@FhEZ~y*g2I*-m%m$-PlA@pR_3SPHt6^AO?J2#UXCfY| zb1w5jN|&H0XD)a5x0Gtta6}<0#F8UQa)lR~Y7HBC$P-?oi>Hg9%M)g^MekNfD?(dh zU%AF}o%Kehuk^yuzM`kF>XBW19HM@BWvsemS=%*2ENN2leb6X)3s`ak1Z%Muo@x!- zrfe-zosr&}t6b?V`K$IxODj1~dOl%#pH+4CDIYHUBT8_!S6#KY(Qrsm_$>1^t=2|u z|ET>QlNay!$Zbh2OR5$Ez`kYp>gCQobKl4G-nLZkY%#2FsOPiadbe=+D z=4aewN*k6yOkT0(gQ=3n%!DUt_ldARjqir$v^!R@Ptm6MZ^R#vNpu9W7%_>Myb9I_ zPvgtcHb#3TTl=E2XWO>K3rl+rnYH&V^}0_bj3@2u43G7V1UI_-Tgv;E?ute=_1!mS6?gF!~+`*HDNM=l4gXe><@#*&Z zDJHMc^C?ePN=l_3XnJHk+%bqH+aPJm!I->^&!<$CWacp&%eIjrW-Yrb)2^IgTj7ae zX|Y<)zJF{1)>F`)F?s2h4_?R>+lpu#rbr9I`Y-b;PiOeC(lhBCiODN@ZH-#W-A?Yx z6yYOrh)jKf zBa(_9VE!5^Ev1bdV?o8_wSpbt7<)nOa~;HX=qJ1k;=#o2@$isYBCs~{jKxOXhzG;V zn7nGUBY0MG+4TpoZBzrFg&v^>#N$}IqfPW6>jt{Zr$DeC^1{=IPisA-{&~tgzxA+J znW6pHQnMF0e;;c<`qq<2yh_&IC$2_>2YE#z=>@n?@3S)l`6j|__tql=cKw7E8ymZP z)C*6!ld0dsRz%zIm@BiTrdEHbW12eTJ-YdEuNrrT9T~21KH-I_y<+thPtc*otk1}b zjNPk3pWv0_rx4e`ap7g?789Op;+fxp!Wp8ELbK2Y4#z<(-J?&L@wWzz;`1+r2;dd-f?s_=d)Rrh|Bl7Hl6hAXs*9j*XkLM#EZ-ofpt& zM5c%Upu>o(#N-vcKKcu9fWK1lLs-uxUeuQ7Z({>k+Sc#S6H5mBl=tIsClO729Nzbo zkSGCGPD;}Fo-Ot)Iq)i*Bo&Ls`r}QK!j+i3#NMaY(KSj+PLG+z?$HL7S@~Ld`w5^OTU91 zRqQo^zr>dDF6g~5MiY~tDX{g@|J&b>yq&vaw5emuhyZVrvG1!1_ePE~^Ow5~W3t*flNeb6RYl?O~@be>Tz`lUI*-1do_GD-o1u*U#)+1mCEM-4(=afk(y} z-Uxg^#+aAh=nx+9O4~+wWH}0lv2g89f&OxYr-DSYbBQ^Ms3(11AXxwC5FU5&Yz4Lo zeMT>WW&MA4B!B~7(aqTK%)$5(#161g-gJ1DtLPn#{Dp5ljE?y5Jw(KC*w<%gH9YTZ zZ!wsbwoAOfL;JtCQ>dr)_X@DkyJZQtj0%2U{_mf z5qmNTjALzo%NsNpewh8kPwOw&c{UKOjE@dy zZJYzoASOR*;KQ*nCZ{cEt^V(MmAAUf70TWFUiYc}G0|91a4@t+KX4_qw8^ygSY4r% z_BOHp=zDBq@>2_z8{z+(xfI_wssAZO!Gx|1zj~u32SfRZZJyMw=Vq#awnWyn2nOoIoK^LQyku1BP%+5XdH+Gj^ zOn#KY@~3UQbbAIHg$RQFg}cxhePJrQ(8usoSSsC8~sAq0sl%#$vA({<5|3 zh%wMNb|)^8A7T*fVY7M|zcwa68R8=$Yr0%fKE&kbN5au(k2LObu&EV$kFdM3q_D+_ z*D_}?3*h_VQ)6==-Pj;D5@KVBhf3LDE762Vx{Y9>{qf_OQ*4}=wF^qa+O!c)xPYZ^ ztrgV`3tEh0-eP6nXBfUEJ0?GV;lmZxjjSD5$@!d_7CnZyrfZS-<9L+#jr_5~^1TgllF>FxT#mD1AU z&?r#m8?x>Ds8c3>H%n{-xWyZ)E1g{!lOG}Sks_VZ!kX#oF1yKy)3NRtlbS`m1Q47tGE_~Rsgd-9;Wp&i2*SO*k`d={UUBc#Dr)U+6AlB?vJ*+!FZC&mfAL6wwiYF zx>J1~jc^dpXP%2oTUK)=w3PSNTuZT~2gvd2URY{Fu*ZU3R%j}??9)Qk&RA2#l2}o( z`yh$)*k}-|AIz}Knb=-vaqKweQM<0p>hYQ#!o$*IRe)aO2_~YHtgJxTZ+15(b2~WL zZgzc)^<8?CH{EumeMA9l41$$oYyzxCYmrhWs|`dESvR#YVJltmgZl6mZ;RKm*L2=M zuk(HbyXv5`L|gO5Ivr{QK9~KYN0=dPWCiP%NF=fjZ{RH4g1^{7)(7Y>ZCJNMc-EhQ zFGM!6)9EdEL>e)4EG|4xqAvDXK)dU}#$R|(R!8~>Yk-wJdWF`2XIq9HXWNQJfURKn zD%pq${sTGyo5crDeZK6`5awjNdx+n{@F}mGAoGV$#VFyaFY1eo5p_Zj(JROxu`8a5 zvAav?QDmRiV&QD)g}1H4V-B{Kh+UhC&M4T`b41^=qcr+UAK2I%d7)^lthJ1cS!<0R zM$=lUqc3QcwcqTsh&*?~ctvW81#e?7Jl|H$$}-Am)h1pj+A8~85@W+YcW3=z^bWB_ zYL5p=w9V=s)^6;Y5<4eo)utW7BVJC)x|a(sGCL9BW5+pbQ|Mr;4~hK|X~*)lds+Ck z2P=!M>mT+2+c;&mo@X^PoFD8=w0VcxVE13aBe-U*bF>ia1$Gw$TtmW<6>3j33V$Cx zQ6N0qqJwyL+%wlx3S-|sqhL|29tR&kpSZA%EiiLIyobi0XW8T`8_%}#YJ>WBb|soP z5zleNf~~#oRw;$EXh0-|xsjL-v2*4wI|{LFcsh}_F1t&@u7WW>^964kFFds%Y;Co! zfAYFlZ5I2kN`8-_HJ+;%GNqXt+j$|V6=wZ1>-TK$fnxK=g05aDYG-SYh5KUiyzbXN z!;2-JWmlTfjLZP6k=Xrcj0xs8JI|p#u|AkbvAfvo(9H`kUBbfJ?$9b{)Fut*z3{H? zUYIH;VNax_zB_u|8}f(IX)P4w7EYk`SQ$ok(UHhBqaG`UxDG2i_Q@nh^-is}u!~&f zZ;F%=lb;)HO%lU=SlKYpheVbp(Tulu$A*v{yFEH-8uqM=9$;~M>GS68`)zD2X* zyI}Vb-Orc$?&5`)E+1iSclEkkYilh?^siliBHl_*u=m!kyrGNGHdxQdGMWl)L^PJ# z?$#kZ{0YVb<=}6i>ul^8DY14ZQDM6>W@k=(KV|{@u9jX7&q@OS=Oz-(sK&;@U!kAy zU^HqChnOd^|7d}=oY3FQ@<=%2d@CXT{36l3kzijbi+7=~V(x3(chw%GSKts{6kMV{ z%o@y=b}bbRWwjPF3H=E_v9r-syeGXQct``*3z)?8&}?wP_AGsf1hL|PeF&$}msk__ z8BpG#Zt+@LI-yM4U#ruZs-O2AIw$n+P@5Qc=xb};BbCgq)_UZOR@l9@)^|ZZ;hlYN z06J?xt2GSuifvPu2zL@8{x28>Q#+kWiKcC zTohc2Mo9MXs=t;W-9?%mE3?jfdX=yJVXY~6k92W{O%3PK#>6i1n`{h?e!~`1&CL_w zG5M)^ABj^u>^5{ga~?4R^sUBF>3!@2JMS?sF!LiFSPs;wQ1JG4c&a0FWvwumGs{v} zxPmur?KS3lY7I9Si&&g?pFLw0iN-pJ1^T3Sc59`{tY>8Ij6!mFx|28icZ9F-jtCi6 z1irnsk%`*c-S=2s*jMai!1K3pPsSa8L;~|WgomZc2xea+mK)YMeTNlf*;R|&6nNq7COP?IMN(rm*~dZjDdzMsktcWZ>s@*BF6{94Tk*pRz3LFkuC@

&C;Nw?$9+Lc^kZe(48IfMS;mk4}n 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

  • wopc{+VZVyVgHVCw37%XE_ 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 Date: Wed, 27 Aug 2025 12:18:26 +0000 Subject: [PATCH 03/15] Format code --- .../GenericPlatform/GenericPlatformSentrySubsystem.cpp | 4 ++-- .../Private/GenericPlatform/GenericPlatformSentrySubsystem.h | 4 ++-- .../Sentry/Private/Interface/SentrySubsystemInterface.h | 2 +- plugin-dev/Source/Sentry/Public/SentrySubsystem.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index f5bf4e0d4..1791dfd26 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -6,11 +6,11 @@ #include "GenericPlatformSentryEvent.h" #include "GenericPlatformSentryFeedback.h" #include "GenericPlatformSentryId.h" +#include "GenericPlatformSentrySamplingContext.h" #include "GenericPlatformSentryScope.h" #include "GenericPlatformSentryTransaction.h" #include "GenericPlatformSentryTransactionContext.h" #include "GenericPlatformSentryUser.h" -#include "GenericPlatformSentrySamplingContext.h" #include "SentryBeforeBreadcrumbHandler.h" #include "SentryBeforeSendHandler.h" @@ -18,8 +18,8 @@ #include "SentryDefines.h" #include "SentryEvent.h" #include "SentryModule.h" -#include "SentrySettings.h" #include "SentrySamplingContext.h" +#include "SentrySettings.h" #include "SentryTraceSampler.h" diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index 3652cf268..d20edd302 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -76,7 +76,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual sentry_value_t OnBeforeSend(sentry_value_t event, void* hint, void* closure, bool isCrash); virtual sentry_value_t OnBeforeBreadcrumb(sentry_value_t breadcrumb, void* hint, void* closure); virtual sentry_value_t OnCrash(const sentry_ucontext_t* uctx, sentry_value_t event, void* closure); - virtual double OnTraceSampling(const sentry_transaction_context_t *transaction_ctx, sentry_value_t custom_sampling_ctx, const int *parent_sampled); + virtual double OnTraceSampling(const sentry_transaction_context_t* transaction_ctx, sentry_value_t custom_sampling_ctx, const int* parent_sampled); void InitCrashReporter(const FString& release, const FString& environment); @@ -92,7 +92,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem static sentry_value_t HandleBeforeSend(sentry_value_t event, void* hint, void* closure); static sentry_value_t HandleBeforeBreadcrumb(sentry_value_t breadcrumb, void* hint, void* closure); static sentry_value_t HandleOnCrash(const sentry_ucontext_t* uctx, sentry_value_t event, void* closure); - static double HandleTraceSampling(const sentry_transaction_context_t *transaction_ctx, sentry_value_t custom_sampling_ctx, const int *parent_sampled); + static double HandleTraceSampling(const sentry_transaction_context_t* transaction_ctx, sentry_value_t custom_sampling_ctx, const int* parent_sampled); USentryBeforeSendHandler* beforeSend; USentryBeforeBreadcrumbHandler* beforeBreadcrumb; diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h index 80b7b958e..631b86c61 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h @@ -5,8 +5,8 @@ #include "CoreMinimal.h" #include "SentryDataTypes.h" -#include "SentryVariant.h" #include "SentryTransactionOptions.h" +#include "SentryVariant.h" class ISentryAttachment; class ISentryBreadcrumb; diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index 42bab411e..ec8599b05 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -7,8 +7,8 @@ #include "SentryDataTypes.h" #include "SentryScope.h" -#include "SentryVariant.h" #include "SentryTransactionOptions.h" +#include "SentryVariant.h" #include "SentrySubsystem.generated.h" From 5a024ed71c17238834760bbffb24b491e01a50af Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 27 Aug 2025 15:21:46 +0300 Subject: [PATCH 04/15] Move global ref under platform define --- .../GenericPlatform/GenericPlatformSentrySubsystem.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 1791dfd26..da5fca975 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -44,10 +44,10 @@ extern CORE_API bool GIsGPUCrashed; -static FGenericPlatformSentrySubsystem* GGenericPlatformSentrySubsystem; - #if USE_SENTRY_NATIVE +static FGenericPlatformSentrySubsystem* GGenericPlatformSentrySubsystem; + void PrintVerboseLog(sentry_level_t level, const char* message, va_list args, void* userdata) { char buffer[512]; From d12c3dea482b40338cb836fed2aa7fa379b5f186 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 27 Aug 2025 15:36:25 +0300 Subject: [PATCH 05/15] Clean up --- .../GenericPlatform/GenericPlatformSentrySamplingContext.cpp | 4 ++-- .../GenericPlatform/GenericPlatformSentrySamplingContext.h | 2 +- .../GenericPlatform/GenericPlatformSentrySubsystem.cpp | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp index aa9879cab..d4703f4c5 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp @@ -9,9 +9,9 @@ #if USE_SENTRY_NATIVE -FGenericPlatformSentrySamplingContext::FGenericPlatformSentrySamplingContext(const sentry_transaction_context_t* transactionContext, sentry_value_t customSamplingContext) +FGenericPlatformSentrySamplingContext::FGenericPlatformSentrySamplingContext(sentry_transaction_context_t* transactionContext, sentry_value_t customSamplingContext) { - TransactionContext = const_cast(transactionContext); + TransactionContext = transactionContext; CustomSamplingContext = customSamplingContext; } diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h index 330911e50..b3ea66086 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h @@ -11,7 +11,7 @@ class FGenericPlatformSentrySamplingContext : public ISentrySamplingContext { public: - FGenericPlatformSentrySamplingContext(const sentry_transaction_context_t* transactionContext, sentry_value_t customSamplingContext); + FGenericPlatformSentrySamplingContext(sentry_transaction_context_t* transactionContext, sentry_value_t customSamplingContext); virtual ~FGenericPlatformSentrySamplingContext() override; virtual TSharedPtr GetTransactionContext() const override; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index da5fca975..e886c97ea 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -108,7 +108,7 @@ void PrintVerboseLog(sentry_level_t level, const char* message, va_list args, vo } else { - return 0.0; + return parent_sampled != nullptr ? *parent_sampled : 0.0; } } @@ -227,7 +227,8 @@ double FGenericPlatformSentrySubsystem::OnTraceSampling(const sentry_transaction return parent_sampled != nullptr ? *parent_sampled : 0.0; } - USentrySamplingContext* Context = USentrySamplingContext::Create(MakeShareable(new FGenericPlatformSentrySamplingContext(transaction_ctx, custom_sampling_ctx))); + USentrySamplingContext* Context = USentrySamplingContext::Create( + MakeShareable(new FGenericPlatformSentrySamplingContext(const_cast(transaction_ctx), custom_sampling_ctx))); float samplingValue; if (Sampler->Sample(Context, samplingValue)) From 6de2df9a30acb10a0095e0699ca219417e1207ec Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 27 Aug 2025 15:55:15 +0300 Subject: [PATCH 06/15] Update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a117ea24b..39f53583a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,11 +10,14 @@ - `CaptureUserFeedback` function in `SentrySubsystem` replaced with `CaptureFeedback` - `CreateSentryUserFeedback` function in `SentryLibrary` replaced with `CreateSentryFeedback` - On Windows and Linux, `ToString` function of `SentryId` class now returns the ID without dashes +- `StartTransactionWithContextAndOptions` function in `SentrySubsystem` now accepts `FSentryTransactionOptions` struct instead of string map +- `GetCustomSamplingContext` function in `SentrySamplingContext` now returns `TMap` instead of string map ### Features - Add functionality to give/revoke user consent for crash uploads ([#1053](https://github.com/getsentry/sentry-unreal/pull/1053)) - Add new API for capturing user feedback ([#1051](https://github.com/getsentry/sentry-unreal/pull/1051)) +- Add Traces sampling function support for Windows and Linux ([#1057](https://github.com/getsentry/sentry-unreal/pull/1057)) - Read `DSN`, `Environment` and `Release` options from environment variables ([#1054](https://github.com/getsentry/sentry-unreal/pull/1054)) ### Dependencies From 531f9ac405bfbe408302dfaf74172bb5db8e3b9c Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 27 Aug 2025 16:07:58 +0300 Subject: [PATCH 07/15] Update package snapshot --- scripts/packaging/package.snapshot | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/packaging/package.snapshot b/scripts/packaging/package.snapshot index b50804f0c..aeb72ea85 100644 --- a/scripts/packaging/package.snapshot +++ b/scripts/packaging/package.snapshot @@ -91,6 +91,8 @@ Source/Sentry/Private/GenericPlatform/GenericPlatformSentryFeedback.cpp Source/Sentry/Private/GenericPlatform/GenericPlatformSentryFeedback.h Source/Sentry/Private/GenericPlatform/GenericPlatformSentryId.cpp Source/Sentry/Private/GenericPlatform/GenericPlatformSentryId.h +Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp +Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySpan.cpp @@ -217,6 +219,7 @@ Source/Sentry/Public/SentrySubsystem.h Source/Sentry/Public/SentryTraceSampler.h Source/Sentry/Public/SentryTransaction.h Source/Sentry/Public/SentryTransactionContext.h +Source/Sentry/Public/SentryTransactionOptions.h Source/Sentry/Public/SentryUser.h Source/Sentry/Public/SentryVariant.h Source/Sentry/Sentry_Android_UPL.xml From 53d5e92a7b9e8b092897a91b32617e41f8797b8c Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 27 Aug 2025 16:32:31 +0300 Subject: [PATCH 08/15] Reset global static pointer on subsystem close --- .../Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index ea4ccb29e..925470515 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -401,6 +401,8 @@ void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* se void FGenericPlatformSentrySubsystem::Close() { + GGenericPlatformSentrySubsystem = nullptr; + isEnabled = false; sentry_close(); From 9672dcf112447d6d4faa2eaaad66e0ee6c255808 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 27 Aug 2025 20:19:33 +0300 Subject: [PATCH 09/15] Remove static global subsystem pointer --- .../GenericPlatformSentrySubsystem.cpp | 23 +++++++++---------- .../Source/Sentry/Private/SentrySubsystem.cpp | 5 ++++ .../Source/Sentry/Public/SentrySubsystem.h | 3 +++ 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 925470515..6d2ab5a18 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -20,8 +20,10 @@ #include "SentryModule.h" #include "SentrySamplingContext.h" #include "SentrySettings.h" +#include "SentrySubsystem.h" #include "SentryTraceSampler.h" +#include "Engine/Engine.h" #include "Utils/SentryFileUtils.h" #include "Utils/SentryLogUtils.h" @@ -46,8 +48,6 @@ extern CORE_API bool GIsGPUCrashed; #if USE_SENTRY_NATIVE -static FGenericPlatformSentrySubsystem* GGenericPlatformSentrySubsystem; - void PrintVerboseLog(sentry_level_t level, const char* message, va_list args, void* userdata) { char buffer[512]; @@ -102,14 +102,17 @@ void PrintVerboseLog(sentry_level_t level, const char* message, va_list args, vo /* static */ double FGenericPlatformSentrySubsystem::HandleTraceSampling(const sentry_transaction_context_t* transaction_ctx, sentry_value_t custom_sampling_ctx, const int* parent_sampled) { - if (GGenericPlatformSentrySubsystem) - { - return StaticCast(GGenericPlatformSentrySubsystem)->OnTraceSampling(transaction_ctx, custom_sampling_ctx, parent_sampled); - } - else + USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem(); + if (SentrySubsystem) { - return parent_sampled != nullptr ? *parent_sampled : 0.0; + TSharedPtr NativeSubsystem = StaticCastSharedPtr(SentrySubsystem->GetNativeObject()); + if (NativeSubsystem) + { + return NativeSubsystem->OnTraceSampling(transaction_ctx, custom_sampling_ctx, parent_sampled); + } } + + return parent_sampled != nullptr ? *parent_sampled : 0.0; } sentry_value_t FGenericPlatformSentrySubsystem::OnBeforeSend(sentry_value_t event, void* hint, void* closure, bool isCrash) @@ -297,8 +300,6 @@ FGenericPlatformSentrySubsystem::FGenericPlatformSentrySubsystem() void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryTraceSampler* traceSampler) { - GGenericPlatformSentrySubsystem = this; - beforeSend = beforeSendHandler; beforeBreadcrumb = beforeBreadcrumbHandler; sampler = traceSampler; @@ -401,8 +402,6 @@ void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* se void FGenericPlatformSentrySubsystem::Close() { - GGenericPlatformSentrySubsystem = nullptr; - isEnabled = false; sentry_close(); diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index 471f6c2de..78fdbdd1c 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -599,6 +599,11 @@ bool USentrySubsystem::IsSupportedForCurrentSettings() const return true; } +TSharedPtr USentrySubsystem::GetNativeObject() const +{ + return SubsystemNativeImpl; +} + void USentrySubsystem::AddDefaultContext() { check(SubsystemNativeImpl); diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index ec8599b05..6ee65f6aa 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -324,6 +324,9 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem UFUNCTION(BlueprintCallable, Category = "Sentry") bool IsSupportedForCurrentSettings() const; + /** Retrieves the underlying native implementation. */ + TSharedPtr GetNativeObject() const; + private: /** Adds default context data for all events captured by Sentry SDK. */ void AddDefaultContext(); From 3cc084128c546bf7005f17cc10a34e3bcf443053 Mon Sep 17 00:00:00 2001 From: Sentry Github Bot Date: Wed, 27 Aug 2025 17:19:55 +0000 Subject: [PATCH 10/15] Format code --- .../Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 6d2ab5a18..61d5cfe99 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -22,8 +22,8 @@ #include "SentrySettings.h" #include "SentrySubsystem.h" -#include "SentryTraceSampler.h" #include "Engine/Engine.h" +#include "SentryTraceSampler.h" #include "Utils/SentryFileUtils.h" #include "Utils/SentryLogUtils.h" From 506605b0303825b4d0f7ec4dd9ee6299445c85a6 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Thu, 28 Aug 2025 09:33:36 +0300 Subject: [PATCH 11/15] Add engine null check --- .../GenericPlatformSentrySubsystem.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 61d5cfe99..3278531f4 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -21,8 +21,6 @@ #include "SentrySamplingContext.h" #include "SentrySettings.h" #include "SentrySubsystem.h" - -#include "Engine/Engine.h" #include "SentryTraceSampler.h" #include "Utils/SentryFileUtils.h" @@ -35,6 +33,7 @@ #include "GenericPlatform/CrashReporter/GenericPlatformSentryCrashReporter.h" #include "GenericPlatform/GenericPlatformOutputDevices.h" +#include "Engine/Engine.h" #include "HAL/ExceptionHandling.h" #include "HAL/FileManager.h" #include "Misc/CoreDelegates.h" @@ -102,13 +101,16 @@ void PrintVerboseLog(sentry_level_t level, const char* message, va_list args, vo /* static */ double FGenericPlatformSentrySubsystem::HandleTraceSampling(const sentry_transaction_context_t* transaction_ctx, sentry_value_t custom_sampling_ctx, const int* parent_sampled) { - USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem(); - if (SentrySubsystem) + if (GEngine) { - TSharedPtr NativeSubsystem = StaticCastSharedPtr(SentrySubsystem->GetNativeObject()); - if (NativeSubsystem) + USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem(); + if (SentrySubsystem && SentrySubsystem->IsEnabled()) { - return NativeSubsystem->OnTraceSampling(transaction_ctx, custom_sampling_ctx, parent_sampled); + TSharedPtr NativeSubsystem = StaticCastSharedPtr(SentrySubsystem->GetNativeObject()); + if (NativeSubsystem) + { + return NativeSubsystem->OnTraceSampling(transaction_ctx, custom_sampling_ctx, parent_sampled); + } } } From 3dc6473129a6d0a97e1c9ae2222de1f5be3448a7 Mon Sep 17 00:00:00 2001 From: Sentry Github Bot Date: Thu, 28 Aug 2025 06:33:55 +0000 Subject: [PATCH 12/15] Format code --- .../Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 3278531f4..030480830 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -32,8 +32,8 @@ #include "GenericPlatform/CrashReporter/GenericPlatformSentryCrashContext.h" #include "GenericPlatform/CrashReporter/GenericPlatformSentryCrashReporter.h" -#include "GenericPlatform/GenericPlatformOutputDevices.h" #include "Engine/Engine.h" +#include "GenericPlatform/GenericPlatformOutputDevices.h" #include "HAL/ExceptionHandling.h" #include "HAL/FileManager.h" #include "Misc/CoreDelegates.h" From 5cb46d8228c8c8ef7c161902bde49256be6c38a7 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Thu, 28 Aug 2025 10:59:19 +0300 Subject: [PATCH 13/15] Add tests --- .../Tests/SentryTraceSampling.spec.cpp | 149 ++++++++++++++++++ .../Tests/SentryTraceSamplingHandler.h | 22 +++ 2 files changed, 171 insertions(+) create mode 100644 plugin-dev/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp create mode 100644 plugin-dev/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp b/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp new file mode 100644 index 000000000..6c37be468 --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp @@ -0,0 +1,149 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "SentrySettings.h" +#include "SentrySubsystem.h" +#include "SentryTransaction.h" +#include "SentryTransactionContext.h" +#include "SentryTraceSamplingHandler.h" +#include "SentryTests.h" + +#include "HAL/PlatformSentryTransactionContext.h" + +#include "Engine/Engine.h" +#include "Misc/AutomationTest.h" + +TDelegate UTraceSamplingTestHandler::OnTraceSamplingTestHandler; + +#if WITH_AUTOMATION_TESTS + +BEGIN_DEFINE_SPEC(SentryTraceSamplingSpec, "Sentry.SentryTraceSampling", EAutomationTestFlags::ProductFilter | SentryApplicationContextMask) + USentrySubsystem* SentrySubsystem; + USentryTransactionContext* TransactionContext; + FSentryTransactionOptions TransactionOptions; +END_DEFINE_SPEC(SentryTraceSamplingSpec) + +void SentryTraceSamplingSpec::Define() +{ + BeforeEach([this]() + { + SentrySubsystem = GEngine->GetEngineSubsystem(); + + SentrySubsystem->InitializeWithSettings(FConfigureSettingsNativeDelegate::CreateLambda([=](USentrySettings* Settings) + { + Settings->SamplingType = ESentryTracesSamplingType::TracesSampler; + Settings->TracesSampler = UTraceSamplingTestHandler::StaticClass(); + })); + + TransactionContext = USentryTransactionContext::Create( + MakeShareable(new FPlatformSentryTransactionContext(TEXT("Test transaction"), TEXT("Test operation")))); + + TransactionOptions = FSentryTransactionOptions(); + }); + + Describe("Trace sampler", [this]() + { + It("should be called and provide sampling context", [this]() + { + bool CallbackExecuted = false; + USentrySamplingContext* ReceivedContext = nullptr; + + UTraceSamplingTestHandler::OnTraceSamplingTestHandler.BindLambda([&](USentrySamplingContext* SamplingContext) + { + CallbackExecuted = true; + ReceivedContext = SamplingContext; + }); + + USentryTransaction* Transaction = SentrySubsystem->StartTransactionWithContextAndOptions(TransactionContext, TransactionOptions); + + TestTrue("Sampling callback should be executed", CallbackExecuted); + TestNotNull("Sampling context should not be null", ReceivedContext); + + if (Transaction) + { + Transaction->Finish(); + } + + UTraceSamplingTestHandler::OnTraceSamplingTestHandler.Unbind(); + + SentrySubsystem->Close(); + }); + + It("should provide transaction context in sampling context", [this]() + { + USentryTransactionContext* CapturedTransactionContext = nullptr; + + UTraceSamplingTestHandler::OnTraceSamplingTestHandler.BindLambda([&](USentrySamplingContext* SamplingContext) + { + if (SamplingContext) + { + CapturedTransactionContext = SamplingContext->GetTransactionContext(); + } + }); + + USentryTransaction* Transaction = SentrySubsystem->StartTransactionWithContextAndOptions(TransactionContext, TransactionOptions); + + TestNotNull("Transaction context should be available in sampling context", CapturedTransactionContext); + if (CapturedTransactionContext) + { + TestEqual("Transaction name should match", CapturedTransactionContext->GetName(), TEXT("Test transaction")); + TestEqual("Transaction operation should match", CapturedTransactionContext->GetOperation(), TEXT("Test operation")); + } + + if (Transaction) + { + Transaction->Finish(); + } + + UTraceSamplingTestHandler::OnTraceSamplingTestHandler.Unbind(); + + SentrySubsystem->Close(); + }); + + It("should provide custom sampling context data in sampling context", [this]() + { + TMap CapturedCustomData; + + UTraceSamplingTestHandler::OnTraceSamplingTestHandler.BindLambda([&](USentrySamplingContext* SamplingContext) + { + if (SamplingContext) + { + CapturedCustomData = SamplingContext->GetCustomSamplingContext(); + } + }); + + TransactionOptions.CustomSamplingContext.Add(TEXT("test_key"), FSentryVariant(TEXT("test_value"))); + TransactionOptions.CustomSamplingContext.Add(TEXT("numeric_key"), FSentryVariant(42)); + + USentryTransaction* Transaction = SentrySubsystem->StartTransactionWithContextAndOptions(TransactionContext, TransactionOptions); + + TestTrue("Custom sampling context should contain test_key", CapturedCustomData.Contains(TEXT("test_key"))); + TestTrue("Custom sampling context should contain numeric_key", CapturedCustomData.Contains(TEXT("numeric_key"))); + + if (CapturedCustomData.Contains(TEXT("test_key"))) + { + TestEqual("test_key should have correct value", CapturedCustomData[TEXT("test_key")].GetValue(), TEXT("test_value")); + } + + if (CapturedCustomData.Contains(TEXT("numeric_key"))) + { + TestEqual("numeric_key should have correct value", CapturedCustomData[TEXT("numeric_key")].GetValue(), 42); + } + + if (Transaction) + { + Transaction->Finish(); + } + + UTraceSamplingTestHandler::OnTraceSamplingTestHandler.Unbind(); + + SentrySubsystem->Close(); + }); + }); + + AfterEach([this] + { + SentrySubsystem->Close(); + }); +} + +#endif \ No newline at end of file diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h b/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h new file mode 100644 index 000000000..14786c869 --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h @@ -0,0 +1,22 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "SentryTraceSampler.h" +#include "SentrySamplingContext.h" + +#include "SentryTraceSamplingHandler.generated.h" + +UCLASS() +class UTraceSamplingTestHandler : public USentryTraceSampler +{ + GENERATED_BODY() +public: + virtual bool Sample_Implementation(USentrySamplingContext* samplingContext, float& samplingValue) override + { + OnTraceSamplingTestHandler.ExecuteIfBound(samplingContext); + return Super::Sample_Implementation(samplingContext, samplingValue); + } + + static TDelegate OnTraceSamplingTestHandler; +}; From 3cd7694d7c609e57b0449608df5e668d6c43a543 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Thu, 28 Aug 2025 11:00:34 +0300 Subject: [PATCH 14/15] Update packeage snapshot --- scripts/packaging/package.snapshot | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/packaging/package.snapshot b/scripts/packaging/package.snapshot index aeb72ea85..5fe2807e1 100644 --- a/scripts/packaging/package.snapshot +++ b/scripts/packaging/package.snapshot @@ -186,6 +186,8 @@ Source/Sentry/Private/Tests/SentryScope.spec.cpp Source/Sentry/Private/Tests/SentryScopeBeforeSendHandler.h Source/Sentry/Private/Tests/SentrySubsystem.spec.cpp Source/Sentry/Private/Tests/SentryTests.h +Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp +Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h Source/Sentry/Private/Tests/SentryUser.spec.cpp Source/Sentry/Private/Tests/SentryVariant.spec.cpp Source/Sentry/Private/Utils/SentryFileUtils.cpp From 6f1dcb8dc24905aff158bed0a3461ac13f06ae60 Mon Sep 17 00:00:00 2001 From: Sentry Github Bot Date: Thu, 28 Aug 2025 08:00:49 +0000 Subject: [PATCH 15/15] Format code --- .../Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp | 4 ++-- .../Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp b/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp index 6c37be468..4c6adcf18 100644 --- a/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp @@ -2,10 +2,10 @@ #include "SentrySettings.h" #include "SentrySubsystem.h" +#include "SentryTests.h" +#include "SentryTraceSamplingHandler.h" #include "SentryTransaction.h" #include "SentryTransactionContext.h" -#include "SentryTraceSamplingHandler.h" -#include "SentryTests.h" #include "HAL/PlatformSentryTransactionContext.h" diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h b/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h index 14786c869..69de6d877 100644 --- a/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h @@ -2,8 +2,8 @@ #pragma once -#include "SentryTraceSampler.h" #include "SentrySamplingContext.h" +#include "SentryTraceSampler.h" #include "SentryTraceSamplingHandler.generated.h"