From b59f94258cffd4940443baee8f3f1bc7f3135720 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 30 Jan 2026 17:11:33 +0200 Subject: [PATCH 01/38] Add metrics api stubs --- .../Android/AndroidSentrySubsystem.cpp | 30 ++++++++ .../Private/Android/AndroidSentrySubsystem.h | 3 + .../Android/Java/SentryBridgeJava.java | 26 +++++++ .../Private/Apple/AppleSentrySubsystem.cpp | 21 ++++++ .../Private/Apple/AppleSentrySubsystem.h | 3 + .../GenericPlatformSentrySubsystem.cpp | 15 ++++ .../GenericPlatformSentrySubsystem.h | 3 + .../Interface/SentrySubsystemInterface.h | 3 + .../Sentry/Private/Null/NullSentrySubsystem.h | 3 + .../Sentry/Private/SentryMeasurementUnit.cpp | 29 ++++++++ .../Source/Sentry/Private/SentrySettings.cpp | 1 + .../Source/Sentry/Private/SentrySubsystem.cpp | 30 ++++++++ .../Sentry/Public/SentryMeasurementUnit.h | 70 +++++++++++++++++++ .../Source/Sentry/Public/SentrySettings.h | 4 ++ .../Source/Sentry/Public/SentrySubsystem.h | 43 ++++++++++++ scripts/packaging/package.snapshot | 2 + 16 files changed, 286 insertions(+) create mode 100644 plugin-dev/Source/Sentry/Private/SentryMeasurementUnit.cpp create mode 100644 plugin-dev/Source/Sentry/Public/SentryMeasurementUnit.h diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index 3bd608aff..438c1e5be 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -193,6 +193,36 @@ void FAndroidSentrySubsystem::AddLog(const FString& Message, ESentryLevel Level, } } +void FAndroidSentrySubsystem::AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +{ + TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); + FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricCount", + "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", + *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, + *FSentryJavaObjectWrapper::GetJString(Unit), + attributesMap->GetJObject()); +} + +void FAndroidSentrySubsystem::AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +{ + TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); + FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricDistribution", + "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", + *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, + *FSentryJavaObjectWrapper::GetJString(Unit), + attributesMap->GetJObject()); +} + +void FAndroidSentrySubsystem::AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +{ + TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); + FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricGauge", + "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", + *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, + *FSentryJavaObjectWrapper::GetJString(Unit), + attributesMap->GetJObject()); +} + void FAndroidSentrySubsystem::ClearBreadcrumbs() { FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::Sentry, "clearBreadcrumbs", "()V"); diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h index df95782df..5f9606ee5 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h @@ -17,6 +17,9 @@ class FAndroidSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; + virtual void AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; virtual void AddAttachment(TSharedPtr attachment) override; virtual void RemoveAttachment(TSharedPtr attachment) override; diff --git a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java index 0194c29a4..00188977e 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java +++ b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java @@ -39,6 +39,7 @@ import io.sentry.SentryLogEventAttributeValue; import io.sentry.logger.SentryLogParameters; import io.sentry.SentryLogLevel; +import io.sentry.metrics.SentryMetricsParameters; public class SentryBridgeJava { public static native void onConfigureScope(long callbackAddr, IScope scope); @@ -349,6 +350,31 @@ public static Object getLogAttribute(final SentryLogEvent logEvent, final String return value; } + public static void metricCount(final String key, final double value, final String unit, final HashMap attributesMap) { + String effectiveUnit = (unit != null && !unit.isEmpty()) ? unit : null; + SentryMetricsParameters params = createMetricsParams(attributesMap); + Sentry.metrics().count(key, value, effectiveUnit, params); + } + + public static void metricDistribution(final String key, final double value, final String unit, final HashMap attributesMap) { + String effectiveUnit = (unit != null && !unit.isEmpty()) ? unit : null; + SentryMetricsParameters params = createMetricsParams(attributesMap); + Sentry.metrics().distribution(key, value, effectiveUnit, params); + } + + public static void metricGauge(final String key, final double value, final String unit, final HashMap attributesMap) { + String effectiveUnit = (unit != null && !unit.isEmpty()) ? unit : null; + SentryMetricsParameters params = createMetricsParams(attributesMap); + Sentry.metrics().gauge(key, value, effectiveUnit, params); + } + + private static SentryMetricsParameters createMetricsParams(final HashMap attributesMap) { + if (attributesMap == null || attributesMap.isEmpty()) { + return SentryMetricsParameters.create((Map) null); + } + return SentryMetricsParameters.create(attributesMap); + } + public static void removeLogAttribute(final SentryLogEvent logEvent, final String key) { if (logEvent == null || key == null) { return; diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index ce38ebf25..1532ec390 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -234,6 +234,27 @@ void FAppleSentrySubsystem::AddLog(const FString& Message, ESentryLevel Level, c } } +void FAppleSentrySubsystem::AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +{ + // Expected API once sentry-cocoa adds ObjC metrics bridge: + // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] countWithKey:Key.GetNSString() value:@(Value) unit:Unit.GetNSString() attributes:attributesDict]; + UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); +} + +void FAppleSentrySubsystem::AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +{ + // Expected API once sentry-cocoa adds ObjC metrics bridge: + // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] distributionWithKey:Key.GetNSString() value:@(Value) unit:Unit.GetNSString() attributes:attributesDict]; + UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); +} + +void FAppleSentrySubsystem::AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +{ + // Expected API once sentry-cocoa adds ObjC metrics bridge: + // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] gaugeWithKey:Key.GetNSString() value:@(Value) unit:Unit.GetNSString() attributes:attributesDict]; + UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); +} + void FAppleSentrySubsystem::ClearBreadcrumbs() { [SENTRY_APPLE_CLASS(SentrySDK) configureScope:^(SentryScope* scope) { diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h index e647ad7a7..f41e1902c 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h @@ -14,6 +14,9 @@ class FAppleSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; + virtual void AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; virtual void AddAttachment(TSharedPtr attachment) override; virtual void RemoveAttachment(TSharedPtr attachment) override; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 04fd0b694..a922e88a3 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -524,6 +524,21 @@ void FGenericPlatformSentrySubsystem::AddLog(const FString& Message, ESentryLeve } } +void FGenericPlatformSentrySubsystem::AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +{ + UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not supported on this platform.")); +} + +void FGenericPlatformSentrySubsystem::AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +{ + UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not supported on this platform.")); +} + +void FGenericPlatformSentrySubsystem::AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +{ + UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not supported on this platform.")); +} + void FGenericPlatformSentrySubsystem::ClearBreadcrumbs() { // Not implemented in sentry-native diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index 02a59d19e..070f20227 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -26,6 +26,9 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; + virtual void AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; virtual void AddAttachment(TSharedPtr attachment) override; virtual void RemoveAttachment(TSharedPtr attachment) override; diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h index dbba117b3..71ff1cfbd 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h @@ -39,6 +39,9 @@ class ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) = 0; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) = 0; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) = 0; + virtual void AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; + virtual void AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; + virtual void AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; virtual void ClearBreadcrumbs() = 0; virtual void AddAttachment(TSharedPtr attachment) = 0; virtual void RemoveAttachment(TSharedPtr attachment) = 0; diff --git a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h index 167823fd3..bdc0232b4 100644 --- a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h @@ -16,6 +16,9 @@ class FNullSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override {} virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override {} virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override {} + virtual void AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} + virtual void AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} + virtual void AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} virtual void ClearBreadcrumbs() override {} virtual void AddAttachment(TSharedPtr attachment) override {} virtual void RemoveAttachment(TSharedPtr attachment) override {} diff --git a/plugin-dev/Source/Sentry/Private/SentryMeasurementUnit.cpp b/plugin-dev/Source/Sentry/Private/SentryMeasurementUnit.cpp new file mode 100644 index 000000000..d6bb4c986 --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/SentryMeasurementUnit.cpp @@ -0,0 +1,29 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "SentryMeasurementUnit.h" + +FSentryMeasurementUnit::FSentryMeasurementUnit(ESentryMeasurementUnit InUnit) + : Unit(InUnit) +{ +} + +FSentryMeasurementUnit::FSentryMeasurementUnit(const FString& InCustomUnit) + : Unit(ESentryMeasurementUnit::Custom) + , CustomUnit(InCustomUnit) +{ +} + +FString FSentryMeasurementUnit::ToString() const +{ + if (Unit == ESentryMeasurementUnit::None) + { + return TEXT(""); + } + + if (Unit == ESentryMeasurementUnit::Custom) + { + return CustomUnit; + } + + return StaticEnum()->GetNameStringByValue(static_cast(Unit)).ToLower(); +} diff --git a/plugin-dev/Source/Sentry/Private/SentrySettings.cpp b/plugin-dev/Source/Sentry/Private/SentrySettings.cpp index 39a190b2d..5aa184315 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySettings.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySettings.cpp @@ -27,6 +27,7 @@ USentrySettings::USentrySettings(const FObjectInitializer& ObjectInitializer) , StructuredLoggingCategories() , StructuredLoggingLevels() , bSendBreadcrumbsWithStructuredLogging(false) + , EnableMetrics(false) , MaxBreadcrumbs(100) , AutomaticBreadcrumbs() , AutomaticBreadcrumbsForLogs() diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index e6f24843c..7a70adbde 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -289,6 +289,36 @@ void USentrySubsystem::LogFatalWithAttributes(const FString& Message, const TMap AddLog(Message, ESentryLevel::Fatal, Attributes, Category); } +void USentrySubsystem::MetricCount(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) +{ + if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) + { + return; + } + + SubsystemNativeImpl->AddMetricCounter(Key, Value, Unit.ToString(), Attributes); +} + +void USentrySubsystem::MetricDistribution(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) +{ + if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) + { + return; + } + + SubsystemNativeImpl->AddMetricDistribution(Key, Value, Unit.ToString(), Attributes); +} + +void USentrySubsystem::MetricGauge(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) +{ + if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) + { + return; + } + + SubsystemNativeImpl->AddMetricGauge(Key, Value, Unit.ToString(), Attributes); +} + void USentrySubsystem::ClearBreadcrumbs() { check(SubsystemNativeImpl); diff --git a/plugin-dev/Source/Sentry/Public/SentryMeasurementUnit.h b/plugin-dev/Source/Sentry/Public/SentryMeasurementUnit.h new file mode 100644 index 000000000..70c3c9bfd --- /dev/null +++ b/plugin-dev/Source/Sentry/Public/SentryMeasurementUnit.h @@ -0,0 +1,70 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" + +#include "SentryMeasurementUnit.generated.h" + +/** + * Predefined measurement units for Sentry metrics. + */ +UENUM(BlueprintType) +enum class ESentryMeasurementUnit : uint8 +{ + None, + // Duration + Nanosecond, + Microsecond, + Millisecond, + Second, + Minute, + Hour, + Day, + Week, + // Information + Bit, + Byte, + Kilobyte, + Kibibyte, + Megabyte, + Mebibyte, + Gigabyte, + Gibibyte, + Terabyte, + Tebibyte, + Petabyte, + Pebibyte, + Exabyte, + Exbibyte, + // Fraction + Ratio, + Percent, + // Custom string + Custom +}; + +/** + * A measurement unit that can be attached to a metric value. + * Use predefined units from the enum or provide a custom string. + */ +USTRUCT(BlueprintType) +struct SENTRY_API FSentryMeasurementUnit +{ + GENERATED_BODY() + + /** The predefined measurement unit. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Sentry") + ESentryMeasurementUnit Unit = ESentryMeasurementUnit::None; + + /** Custom unit string, used when Unit is set to Custom. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Sentry", meta = (EditCondition = "Unit==ESentryMeasurementUnit::Custom")) + FString CustomUnit; + + FSentryMeasurementUnit() = default; + FSentryMeasurementUnit(ESentryMeasurementUnit InUnit); + FSentryMeasurementUnit(const FString& InCustomUnit); + + /** Converts the unit to its string representation. */ + FString ToString() const; +}; diff --git a/plugin-dev/Source/Sentry/Public/SentrySettings.h b/plugin-dev/Source/Sentry/Public/SentrySettings.h index 602329474..8e5dc7892 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySettings.h +++ b/plugin-dev/Source/Sentry/Public/SentrySettings.h @@ -274,6 +274,10 @@ class SENTRY_API USentrySettings : public UObject Meta = (DisplayName = "Also send breadcrumbs", ToolTip = "Whether to also send breadcrumbs when structured logging is enabled.", EditCondition = "EnableStructuredLogging")) bool bSendBreadcrumbsWithStructuredLogging; + UPROPERTY(Config, EditAnywhere, Category = "General|Metrics", + Meta = (DisplayName = "Enable metrics", ToolTip = "Flag indicating whether to enable the Sentry metrics API for tracking counters, distributions, and gauges.")) + bool EnableMetrics; + UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Breadcrumbs", Meta = (DisplayName = "Max breadcrumbs", Tooltip = "Total amount of breadcrumbs that should be captured.")) int32 MaxBreadcrumbs; diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index bf1dfccb8..3d61fbb5b 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -6,6 +6,7 @@ #include "Subsystems/EngineSubsystem.h" #include "SentryDataTypes.h" +#include "SentryMeasurementUnit.h" #include "SentryScope.h" #include "SentryTransactionOptions.h" #include "SentryVariant.h" @@ -203,6 +204,48 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) void LogFatalWithAttributes(const FString& Message, const TMap& Attributes, const FString& Category = TEXT("LogSentrySdk")); + /** + * Emits a Counter metric. + * Counters track a value that can only be incremented. + * + * @param Key The name of the metric. + * @param Value The value to increment by (default 1.0). + * @param Unit The unit of measurement for the metric value. + * @param Attributes Structured attributes to attach to the metric. + */ + UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) + void MetricCount(const FString& Key, float Value = 1.0f, + FSentryMeasurementUnit Unit = FSentryMeasurementUnit(), + const TMap& Attributes = TMap()); + + /** + * Emits a Distribution metric. + * Distributions track the statistical distribution of values. + * + * @param Key The name of the metric. + * @param Value The value to record. + * @param Unit The unit of measurement for the metric value. + * @param Attributes Structured attributes to attach to the metric. + */ + UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) + void MetricDistribution(const FString& Key, float Value, + FSentryMeasurementUnit Unit = FSentryMeasurementUnit(), + const TMap& Attributes = TMap()); + + /** + * Emits a Gauge metric. + * Gauges track a value that can go up and down. + * + * @param Key The name of the metric. + * @param Value The current gauge value. + * @param Unit The unit of measurement for the metric value. + * @param Attributes Structured attributes to attach to the metric. + */ + UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) + void MetricGauge(const FString& Key, float Value, + FSentryMeasurementUnit Unit = FSentryMeasurementUnit(), + const TMap& Attributes = TMap()); + /** * Clear all breadcrumbs of the current Scope. * diff --git a/scripts/packaging/package.snapshot b/scripts/packaging/package.snapshot index 1680722d5..8b6c74ac8 100644 --- a/scripts/packaging/package.snapshot +++ b/scripts/packaging/package.snapshot @@ -184,6 +184,7 @@ Source/Sentry/Private/SentryFeedback.cpp Source/Sentry/Private/SentryHint.cpp Source/Sentry/Private/SentryLibrary.cpp Source/Sentry/Private/SentryLog.cpp +Source/Sentry/Private/SentryMeasurementUnit.cpp Source/Sentry/Private/SentryModule.cpp Source/Sentry/Private/SentryOutputDevice.cpp Source/Sentry/Private/SentrySamplingContext.cpp @@ -238,6 +239,7 @@ Source/Sentry/Public/SentryHint.h Source/Sentry/Public/SentryImplWrapper.h Source/Sentry/Public/SentryLibrary.h Source/Sentry/Public/SentryLog.h +Source/Sentry/Public/SentryMeasurementUnit.h Source/Sentry/Public/SentryModule.h Source/Sentry/Public/SentryOutputDevice.h Source/Sentry/Public/SentrySamplingContext.h From 44eed6709f7f0130e2dcf6ce848f527b5a01ef55 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Mon, 2 Feb 2026 10:14:03 +0200 Subject: [PATCH 02/38] Fix build errors and update naming --- .../Android/AndroidSentrySubsystem.cpp | 6 +-- .../Private/Android/AndroidSentrySubsystem.h | 6 +-- .../Private/Apple/AppleSentrySubsystem.cpp | 6 +-- .../Private/Apple/AppleSentrySubsystem.h | 6 +-- .../GenericPlatformSentrySubsystem.cpp | 6 +-- .../GenericPlatformSentrySubsystem.h | 6 +-- .../Interface/SentrySubsystemInterface.h | 6 +-- .../Sentry/Private/Null/NullSentrySubsystem.h | 6 +-- .../Source/Sentry/Private/SentrySubsystem.cpp | 27 ++++++++--- .../Source/Sentry/Public/SentrySubsystem.h | 48 ++++++++++++++----- 10 files changed, 81 insertions(+), 42 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index 438c1e5be..379144c80 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -193,7 +193,7 @@ void FAndroidSentrySubsystem::AddLog(const FString& Message, ESentryLevel Level, } } -void FAndroidSentrySubsystem::AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FAndroidSentrySubsystem::AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricCount", @@ -203,7 +203,7 @@ void FAndroidSentrySubsystem::AddMetricCounter(const FString& Key, float Value, attributesMap->GetJObject()); } -void FAndroidSentrySubsystem::AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FAndroidSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricDistribution", @@ -213,7 +213,7 @@ void FAndroidSentrySubsystem::AddMetricDistribution(const FString& Key, float Va attributesMap->GetJObject()); } -void FAndroidSentrySubsystem::AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FAndroidSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricGauge", diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h index 5f9606ee5..28b06ff9d 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h @@ -17,9 +17,9 @@ class FAndroidSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; - virtual void AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; - virtual void AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; - virtual void AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; virtual void AddAttachment(TSharedPtr attachment) override; virtual void RemoveAttachment(TSharedPtr attachment) override; diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index 1532ec390..bfb8b2655 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -234,21 +234,21 @@ void FAppleSentrySubsystem::AddLog(const FString& Message, ESentryLevel Level, c } } -void FAppleSentrySubsystem::AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FAppleSentrySubsystem::AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { // Expected API once sentry-cocoa adds ObjC metrics bridge: // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] countWithKey:Key.GetNSString() value:@(Value) unit:Unit.GetNSString() attributes:attributesDict]; UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); } -void FAppleSentrySubsystem::AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FAppleSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { // Expected API once sentry-cocoa adds ObjC metrics bridge: // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] distributionWithKey:Key.GetNSString() value:@(Value) unit:Unit.GetNSString() attributes:attributesDict]; UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); } -void FAppleSentrySubsystem::AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FAppleSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { // Expected API once sentry-cocoa adds ObjC metrics bridge: // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] gaugeWithKey:Key.GetNSString() value:@(Value) unit:Unit.GetNSString() attributes:attributesDict]; diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h index f41e1902c..d1721c53d 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h @@ -14,9 +14,9 @@ class FAppleSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; - virtual void AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; - virtual void AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; - virtual void AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; virtual void AddAttachment(TSharedPtr attachment) override; virtual void RemoveAttachment(TSharedPtr attachment) override; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index a922e88a3..d8451da94 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -524,17 +524,17 @@ void FGenericPlatformSentrySubsystem::AddLog(const FString& Message, ESentryLeve } } -void FGenericPlatformSentrySubsystem::AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FGenericPlatformSentrySubsystem::AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not supported on this platform.")); } -void FGenericPlatformSentrySubsystem::AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FGenericPlatformSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not supported on this platform.")); } -void FGenericPlatformSentrySubsystem::AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FGenericPlatformSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not supported on this platform.")); } diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index 070f20227..fc1405a90 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -26,9 +26,9 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; - virtual void AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; - virtual void AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; - virtual void AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; virtual void AddAttachment(TSharedPtr attachment) override; virtual void RemoveAttachment(TSharedPtr attachment) override; diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h index 71ff1cfbd..598a8bd59 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h @@ -39,9 +39,9 @@ class ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) = 0; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) = 0; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) = 0; - virtual void AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; - virtual void AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; - virtual void AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; + virtual void AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; + virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; + virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; virtual void ClearBreadcrumbs() = 0; virtual void AddAttachment(TSharedPtr attachment) = 0; virtual void RemoveAttachment(TSharedPtr attachment) = 0; diff --git a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h index bdc0232b4..db2c1fd98 100644 --- a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h @@ -16,9 +16,9 @@ class FNullSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override {} virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override {} virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override {} - virtual void AddMetricCounter(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} - virtual void AddMetricDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} - virtual void AddMetricGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} + virtual void AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} + virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} + virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} virtual void ClearBreadcrumbs() override {} virtual void AddAttachment(TSharedPtr attachment) override {} virtual void RemoveAttachment(TSharedPtr attachment) override {} diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index 7a70adbde..cbecdccd3 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -289,34 +289,49 @@ void USentrySubsystem::LogFatalWithAttributes(const FString& Message, const TMap AddLog(Message, ESentryLevel::Fatal, Attributes, Category); } -void USentrySubsystem::MetricCount(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) +void USentrySubsystem::AddCount(const FString& Key, float Value, FSentryMeasurementUnit Unit) +{ + AddCountWithAttributes(Key, Value, Unit, TMap()); +} + +void USentrySubsystem::AddCountWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) { if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) { return; } - SubsystemNativeImpl->AddMetricCounter(Key, Value, Unit.ToString(), Attributes); + SubsystemNativeImpl->AddCount(Key, Value, Unit.ToString(), Attributes); } -void USentrySubsystem::MetricDistribution(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) +void USentrySubsystem::AddDistribution(const FString& Key, float Value, FSentryMeasurementUnit Unit) +{ + AddDistributionWithAttributes(Key, Value, Unit, TMap()); +} + +void USentrySubsystem::AddDistributionWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) { if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) { return; } - SubsystemNativeImpl->AddMetricDistribution(Key, Value, Unit.ToString(), Attributes); + SubsystemNativeImpl->AddDistribution(Key, Value, Unit.ToString(), Attributes); +} + +void USentrySubsystem::AddGauge(const FString& Key, float Value, FSentryMeasurementUnit Unit) +{ + AddGaugeWithAttributes(Key, Value, Unit, TMap()); } -void USentrySubsystem::MetricGauge(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) +void USentrySubsystem::AddGaugeWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) { if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) { return; } - SubsystemNativeImpl->AddMetricGauge(Key, Value, Unit.ToString(), Attributes); + SubsystemNativeImpl->AddGauge(Key, Value, Unit.ToString(), Attributes); } void USentrySubsystem::ClearBreadcrumbs() diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index 3d61fbb5b..11679c6c4 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -211,12 +211,20 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Key The name of the metric. * @param Value The value to increment by (default 1.0). * @param Unit The unit of measurement for the metric value. + */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void AddCount(const FString& Key, float Value = 1.0f, FSentryMeasurementUnit Unit = FSentryMeasurementUnit()); + + /** + * Emits a Counter metric with attributes. + * + * @param Key The name of the metric. + * @param Value The value to increment by. + * @param Unit The unit of measurement for the metric value. * @param Attributes Structured attributes to attach to the metric. */ - UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) - void MetricCount(const FString& Key, float Value = 1.0f, - FSentryMeasurementUnit Unit = FSentryMeasurementUnit(), - const TMap& Attributes = TMap()); + UFUNCTION(BlueprintCallable, Category = "Sentry") + void AddCountWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes); /** * Emits a Distribution metric. @@ -225,12 +233,20 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Key The name of the metric. * @param Value The value to record. * @param Unit The unit of measurement for the metric value. + */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void AddDistribution(const FString& Key, float Value, FSentryMeasurementUnit Unit = FSentryMeasurementUnit()); + + /** + * Emits a Distribution metric with attributes. + * + * @param Key The name of the metric. + * @param Value The value to record. + * @param Unit The unit of measurement for the metric value. * @param Attributes Structured attributes to attach to the metric. */ - UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) - void MetricDistribution(const FString& Key, float Value, - FSentryMeasurementUnit Unit = FSentryMeasurementUnit(), - const TMap& Attributes = TMap()); + UFUNCTION(BlueprintCallable, Category = "Sentry") + void AddDistributionWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes); /** * Emits a Gauge metric. @@ -239,12 +255,20 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Key The name of the metric. * @param Value The current gauge value. * @param Unit The unit of measurement for the metric value. + */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void AddGauge(const FString& Key, float Value, FSentryMeasurementUnit Unit = FSentryMeasurementUnit()); + + /** + * Emits a Gauge metric with attributes. + * + * @param Key The name of the metric. + * @param Value The current gauge value. + * @param Unit The unit of measurement for the metric value. * @param Attributes Structured attributes to attach to the metric. */ - UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) - void MetricGauge(const FString& Key, float Value, - FSentryMeasurementUnit Unit = FSentryMeasurementUnit(), - const TMap& Attributes = TMap()); + UFUNCTION(BlueprintCallable, Category = "Sentry") + void AddGaugeWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes); /** * Clear all breadcrumbs of the current Scope. From f04925b3f53a6ef23d72bb82ea21a09bb7623aee Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Mon, 2 Feb 2026 14:15:55 +0200 Subject: [PATCH 03/38] Add temp Apple implementation --- .../Android/AndroidSentrySubsystem.cpp | 2 +- .../Private/Android/AndroidSentrySubsystem.h | 2 +- .../Private/Apple/AppleSentrySubsystem.cpp | 47 +++++++++++++++---- .../Private/Apple/AppleSentrySubsystem.h | 2 +- .../GenericPlatformSentrySubsystem.cpp | 2 +- .../GenericPlatformSentrySubsystem.h | 2 +- .../Interface/SentrySubsystemInterface.h | 2 +- .../Sentry/Private/Null/NullSentrySubsystem.h | 2 +- .../Source/Sentry/Private/SentrySubsystem.cpp | 4 +- .../Source/Sentry/Public/SentrySubsystem.h | 6 +-- 10 files changed, 49 insertions(+), 22 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index 379144c80..669035502 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -193,7 +193,7 @@ void FAndroidSentrySubsystem::AddLog(const FString& Message, ESentryLevel Level, } } -void FAndroidSentrySubsystem::AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FAndroidSentrySubsystem::AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricCount", diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h index 28b06ff9d..22136ba04 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h @@ -17,7 +17,7 @@ class FAndroidSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; - virtual void AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) override; virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index bfb8b2655..d79436631 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -234,25 +234,52 @@ void FAppleSentrySubsystem::AddLog(const FString& Message, ESentryLevel Level, c } } -void FAppleSentrySubsystem::AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FAppleSentrySubsystem::AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) { - // Expected API once sentry-cocoa adds ObjC metrics bridge: - // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] countWithKey:Key.GetNSString() value:@(Value) unit:Unit.GetNSString() attributes:attributesDict]; - UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); + NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; + for (const auto& pair : Attributes) + { + SentryAttribute* attribute = FAppleSentryConverters::VariantToAttributeNative(pair.Value); + if (attribute != nil) + { + [attributesDict setObject:attribute.value forKey:pair.Key.GetNSString()]; + } + } + + NSString* effectiveUnit = Unit.IsEmpty() ? nil : Unit.GetNSString(); + [[SENTRY_APPLE_CLASS(SentrySDK) metrics] countWithKey:Key.GetNSString() value:(NSUInteger)Value unit:effectiveUnit attributes:attributesDict]; } void FAppleSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { - // Expected API once sentry-cocoa adds ObjC metrics bridge: - // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] distributionWithKey:Key.GetNSString() value:@(Value) unit:Unit.GetNSString() attributes:attributesDict]; - UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); + NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; + for (const auto& pair : Attributes) + { + SentryAttribute* attribute = FAppleSentryConverters::VariantToAttributeNative(pair.Value); + if (attribute != nil) + { + [attributesDict setObject:attribute.value forKey:pair.Key.GetNSString()]; + } + } + + NSString* effectiveUnit = Unit.IsEmpty() ? nil : Unit.GetNSString(); + [[SENTRY_APPLE_CLASS(SentrySDK) metrics] distributionWithKey:Key.GetNSString() value:(double)Value unit:effectiveUnit attributes:attributesDict]; } void FAppleSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { - // Expected API once sentry-cocoa adds ObjC metrics bridge: - // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] gaugeWithKey:Key.GetNSString() value:@(Value) unit:Unit.GetNSString() attributes:attributesDict]; - UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); + NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; + for (const auto& pair : Attributes) + { + SentryAttribute* attribute = FAppleSentryConverters::VariantToAttributeNative(pair.Value); + if (attribute != nil) + { + [attributesDict setObject:attribute.value forKey:pair.Key.GetNSString()]; + } + } + + NSString* effectiveUnit = Unit.IsEmpty() ? nil : Unit.GetNSString(); + [[SENTRY_APPLE_CLASS(SentrySDK) metrics] gaugeWithKey:Key.GetNSString() value:(double)Value unit:effectiveUnit attributes:attributesDict]; } void FAppleSentrySubsystem::ClearBreadcrumbs() diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h index d1721c53d..8bd8c9ec9 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h @@ -14,7 +14,7 @@ class FAppleSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; - virtual void AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) override; virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index d8451da94..8d00db09e 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -524,7 +524,7 @@ void FGenericPlatformSentrySubsystem::AddLog(const FString& Message, ESentryLeve } } -void FGenericPlatformSentrySubsystem::AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) +void FGenericPlatformSentrySubsystem::AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) { UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not supported on this platform.")); } diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index fc1405a90..5e43836e7 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -26,7 +26,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; - virtual void AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) override; virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h index 598a8bd59..b4cf3f200 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h @@ -39,7 +39,7 @@ class ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) = 0; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) = 0; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) = 0; - virtual void AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; + virtual void AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) = 0; virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; virtual void ClearBreadcrumbs() = 0; diff --git a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h index db2c1fd98..15b500dbb 100644 --- a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h @@ -16,7 +16,7 @@ class FNullSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override {} virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override {} virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override {} - virtual void AddCount(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} + virtual void AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) override {} virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} virtual void ClearBreadcrumbs() override {} diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index cbecdccd3..bfc6d608b 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -289,12 +289,12 @@ void USentrySubsystem::LogFatalWithAttributes(const FString& Message, const TMap AddLog(Message, ESentryLevel::Fatal, Attributes, Category); } -void USentrySubsystem::AddCount(const FString& Key, float Value, FSentryMeasurementUnit Unit) +void USentrySubsystem::AddCount(const FString& Key, int32 Value, FSentryMeasurementUnit Unit) { AddCountWithAttributes(Key, Value, Unit, TMap()); } -void USentrySubsystem::AddCountWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) +void USentrySubsystem::AddCountWithAttributes(const FString& Key, int32 Value, FSentryMeasurementUnit Unit, const TMap& Attributes) { if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) { diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index 11679c6c4..8d01a4630 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -209,11 +209,11 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * Counters track a value that can only be incremented. * * @param Key The name of the metric. - * @param Value The value to increment by (default 1.0). + * @param Value The value to increment by (default 1). * @param Unit The unit of measurement for the metric value. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void AddCount(const FString& Key, float Value = 1.0f, FSentryMeasurementUnit Unit = FSentryMeasurementUnit()); + void AddCount(const FString& Key, int32 Value = 1, FSentryMeasurementUnit Unit = FSentryMeasurementUnit()); /** * Emits a Counter metric with attributes. @@ -224,7 +224,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Attributes Structured attributes to attach to the metric. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void AddCountWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes); + void AddCountWithAttributes(const FString& Key, int32 Value, FSentryMeasurementUnit Unit, const TMap& Attributes); /** * Emits a Distribution metric. From 0e63c93755ed58b72f13dcbcb5c09019e30c585b Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Mon, 2 Feb 2026 14:16:29 +0200 Subject: [PATCH 04/38] Fix cocoa binaries path in build deps script --- scripts/build-deps.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/build-deps.ps1 b/scripts/build-deps.ps1 index 65fb2cd00..20da4d202 100755 --- a/scripts/build-deps.ps1 +++ b/scripts/build-deps.ps1 @@ -133,7 +133,7 @@ function buildSentryCocoaIos() # Extract the built XCFramework $tempExtractDir = "$PSScriptRoot/../build/temp-xcframework-ios" - extractXCFramework "$CocoaPath/Carthage/Sentry-Dynamic.xcframework.zip" $tempExtractDir + extractXCFramework "$CocoaPath/XCFrameworkBuildPath/Sentry-Dynamic.xcframework.zip" $tempExtractDir # Prepare output directories $iosOutDir = "$outDir/IOS" @@ -198,7 +198,7 @@ function buildSentryCocoaMac() # Extract the built XCFramework $tempExtractDir = "$PSScriptRoot/../build/temp-xcframework-mac" - extractXCFramework "$CocoaPath/Carthage/Sentry-Dynamic.xcframework.zip" $tempExtractDir + extractXCFramework "$CocoaPath/XCFrameworkBuildPath/Sentry-Dynamic.xcframework.zip" $tempExtractDir # Prepare output directories $macOutDir = "$outDir/Mac" From cf4de17e178aca588fddfd119bb4af27894e80af Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 4 Feb 2026 09:18:24 +0200 Subject: [PATCH 05/38] Fix compilation errors --- plugin-dev/Source/Sentry/Public/SentrySubsystem.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index 8d01a4630..1d778b370 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -213,7 +213,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Unit The unit of measurement for the metric value. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void AddCount(const FString& Key, int32 Value = 1, FSentryMeasurementUnit Unit = FSentryMeasurementUnit()); + void AddCount(const FString& Key, int32 Value, FSentryMeasurementUnit Unit); /** * Emits a Counter metric with attributes. @@ -235,7 +235,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Unit The unit of measurement for the metric value. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void AddDistribution(const FString& Key, float Value, FSentryMeasurementUnit Unit = FSentryMeasurementUnit()); + void AddDistribution(const FString& Key, float Value, FSentryMeasurementUnit Unit); /** * Emits a Distribution metric with attributes. @@ -257,7 +257,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Unit The unit of measurement for the metric value. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void AddGauge(const FString& Key, float Value, FSentryMeasurementUnit Unit = FSentryMeasurementUnit()); + void AddGauge(const FString& Key, float Value, FSentryMeasurementUnit Unit); /** * Emits a Gauge metric with attributes. From d139a69dd044968a72301bade681d44e6e462471 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 4 Feb 2026 09:18:30 +0200 Subject: [PATCH 06/38] Update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 977eabf7d..91a5071d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +### Features + +- Add Metrics API support ([#1214](https://github.com/getsentry/sentry-unreal/pull/1214)) + ## 1.6.0 ### Features From ec3276b833f123de4647b45eda708432e89eb5a3 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 4 Feb 2026 09:50:20 +0200 Subject: [PATCH 07/38] Add default blueprint value for metric attributes --- plugin-dev/Source/Sentry/Public/SentrySubsystem.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index 1d778b370..7ab55e310 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -223,7 +223,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Unit The unit of measurement for the metric value. * @param Attributes Structured attributes to attach to the metric. */ - UFUNCTION(BlueprintCallable, Category = "Sentry") + UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) void AddCountWithAttributes(const FString& Key, int32 Value, FSentryMeasurementUnit Unit, const TMap& Attributes); /** @@ -245,7 +245,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Unit The unit of measurement for the metric value. * @param Attributes Structured attributes to attach to the metric. */ - UFUNCTION(BlueprintCallable, Category = "Sentry") + UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) void AddDistributionWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes); /** @@ -267,7 +267,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Unit The unit of measurement for the metric value. * @param Attributes Structured attributes to attach to the metric. */ - UFUNCTION(BlueprintCallable, Category = "Sentry") + UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) void AddGaugeWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes); /** From ac2558a24b091556941f01d9656242b9125f2a10 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 4 Feb 2026 09:52:38 +0200 Subject: [PATCH 08/38] Add demo UI --- sample/Content/UI/W_SentryDemo.uasset | Bin 545748 -> 594809 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sample/Content/UI/W_SentryDemo.uasset b/sample/Content/UI/W_SentryDemo.uasset index 43738ce7e3ff9a43625674f95232d8b3994136cc..f440f1933ba76ce79718c96217a87f52dafdf61c 100644 GIT binary patch literal 594809 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êl4bu!pc5JU>l_$R!t`$3gEIMhjKZ;tciiaU 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 U7?^tc2>fO6_FVnq%D!*^2P~CB`Tzg` literal 545748 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 BczXZ< From 56b9af3b98fe934dc2146162160ecc4577ce1026 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 4 Feb 2026 10:50:53 +0200 Subject: [PATCH 09/38] Add metrics api implementation for native --- .../GenericPlatformSentrySubsystem.cpp | 50 +++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 227cf1bf3..ee2de7afc 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -382,6 +382,7 @@ void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* se sentry_options_set_logger_enabled_when_crashed(options, settings->EnableOnCrashLogging); sentry_options_set_enable_logs(options, settings->EnableStructuredLogging); sentry_options_set_logs_with_attributes(options, true); + sentry_options_set_enable_metrics(options, settings->EnableMetrics); if (settings->bRequireUserConsent) { @@ -526,17 +527,60 @@ void FGenericPlatformSentrySubsystem::AddLog(const FString& Message, ESentryLeve void FGenericPlatformSentrySubsystem::AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) { - UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not supported on this platform.")); + // Note: sentry-native's count API doesn't accept a unit parameter + sentry_value_t attributes; + if (Attributes.Num() > 0) + { + attributes = sentry_value_new_object(); + for (auto it = Attributes.CreateConstIterator(); it; ++it) + { + sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), FGenericPlatformSentryConverters::VariantToAttributeNative(it.Value())); + } + } + else + { + attributes = sentry_value_new_null(); + } + + sentry_metrics_count(TCHAR_TO_UTF8(*Key), Value, attributes); } void FGenericPlatformSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { - UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not supported on this platform.")); + sentry_value_t attributes; + if (Attributes.Num() > 0) + { + attributes = sentry_value_new_object(); + for (auto it = Attributes.CreateConstIterator(); it; ++it) + { + sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), FGenericPlatformSentryConverters::VariantToAttributeNative(it.Value())); + } + } + else + { + attributes = sentry_value_new_null(); + } + + sentry_metrics_distribution(TCHAR_TO_UTF8(*Key), Value, Unit.IsEmpty() ? nullptr : TCHAR_TO_UTF8(*Unit), attributes); } void FGenericPlatformSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { - UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not supported on this platform.")); + sentry_value_t attributes; + if (Attributes.Num() > 0) + { + attributes = sentry_value_new_object(); + for (auto it = Attributes.CreateConstIterator(); it; ++it) + { + sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), FGenericPlatformSentryConverters::VariantToAttributeNative(it.Value())); + } + } + else + { + attributes = sentry_value_new_null(); + } + + sentry_metrics_gauge(TCHAR_TO_UTF8(*Key), Value, Unit.IsEmpty() ? nullptr : TCHAR_TO_UTF8(*Unit), attributes); } void FGenericPlatformSentrySubsystem::ClearBreadcrumbs() From 1301253f61371499c51bcf3f2b09699cb20408ab Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 10:07:12 +0200 Subject: [PATCH 10/38] Remove unit for counters --- .../Sentry/Private/Android/AndroidSentrySubsystem.cpp | 5 ++--- .../Sentry/Private/Android/AndroidSentrySubsystem.h | 2 +- .../Sentry/Private/Android/Java/SentryBridgeJava.java | 5 ++--- .../Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp | 5 ++--- .../Source/Sentry/Private/Apple/AppleSentrySubsystem.h | 2 +- .../GenericPlatform/GenericPlatformSentrySubsystem.cpp | 3 +-- .../GenericPlatform/GenericPlatformSentrySubsystem.h | 2 +- .../Sentry/Private/Interface/SentrySubsystemInterface.h | 2 +- .../Source/Sentry/Private/Null/NullSentrySubsystem.h | 2 +- plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp | 8 ++++---- plugin-dev/Source/Sentry/Public/SentrySubsystem.h | 6 ++---- 11 files changed, 18 insertions(+), 24 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index 8151e5d6f..760bcd768 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -194,13 +194,12 @@ void FAndroidSentrySubsystem::AddLog(const FString& Message, ESentryLevel Level, } } -void FAndroidSentrySubsystem::AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) +void FAndroidSentrySubsystem::AddCount(const FString& Key, int32 Value, const TMap& Attributes) { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricCount", - "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", + "(Ljava/lang/String;DLjava/util/HashMap;)V", *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, - *FSentryJavaObjectWrapper::GetJString(Unit), attributesMap->GetJObject()); } diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h index 22136ba04..67e5f396d 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h @@ -17,7 +17,7 @@ class FAndroidSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; - virtual void AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddCount(const FString& Key, int32 Value, const TMap& Attributes) override; virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; diff --git a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java index 00188977e..590a9d548 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java +++ b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java @@ -350,10 +350,9 @@ public static Object getLogAttribute(final SentryLogEvent logEvent, final String return value; } - public static void metricCount(final String key, final double value, final String unit, final HashMap attributesMap) { - String effectiveUnit = (unit != null && !unit.isEmpty()) ? unit : null; + public static void metricCount(final String key, final double value, final HashMap attributesMap) { SentryMetricsParameters params = createMetricsParams(attributesMap); - Sentry.metrics().count(key, value, effectiveUnit, params); + Sentry.metrics().count(key, value, params); } public static void metricDistribution(final String key, final double value, final String unit, final HashMap attributesMap) { diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index d79436631..3819ed48f 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -234,7 +234,7 @@ void FAppleSentrySubsystem::AddLog(const FString& Message, ESentryLevel Level, c } } -void FAppleSentrySubsystem::AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) +void FAppleSentrySubsystem::AddCount(const FString& Key, int32 Value, const TMap& Attributes) { NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; for (const auto& pair : Attributes) @@ -246,8 +246,7 @@ void FAppleSentrySubsystem::AddCount(const FString& Key, int32 Value, const FStr } } - NSString* effectiveUnit = Unit.IsEmpty() ? nil : Unit.GetNSString(); - [[SENTRY_APPLE_CLASS(SentrySDK) metrics] countWithKey:Key.GetNSString() value:(NSUInteger)Value unit:effectiveUnit attributes:attributesDict]; + [[SENTRY_APPLE_CLASS(SentrySDK) metrics] countWithKey:Key.GetNSString() value:(NSUInteger)Value attributes:attributesDict]; } void FAppleSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h index 8bd8c9ec9..2b9197171 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h @@ -14,7 +14,7 @@ class FAppleSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; - virtual void AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddCount(const FString& Key, int32 Value, const TMap& Attributes) override; virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index ee2de7afc..aac43bda2 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -525,9 +525,8 @@ void FGenericPlatformSentrySubsystem::AddLog(const FString& Message, ESentryLeve } } -void FGenericPlatformSentrySubsystem::AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) +void FGenericPlatformSentrySubsystem::AddCount(const FString& Key, int32 Value, const TMap& Attributes) { - // Note: sentry-native's count API doesn't accept a unit parameter sentry_value_t attributes; if (Attributes.Num() > 0) { diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index 5e43836e7..3e6ff377f 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -26,7 +26,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override; - virtual void AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) override; + virtual void AddCount(const FString& Key, int32 Value, const TMap& Attributes) override; virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override; virtual void ClearBreadcrumbs() override; diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h index b4cf3f200..a9e133424 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h @@ -39,7 +39,7 @@ class ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) = 0; virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) = 0; virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) = 0; - virtual void AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) = 0; + virtual void AddCount(const FString& Key, int32 Value, const TMap& Attributes) = 0; virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) = 0; virtual void ClearBreadcrumbs() = 0; diff --git a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h index 15b500dbb..dc2a5c250 100644 --- a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h @@ -16,7 +16,7 @@ class FNullSentrySubsystem : public ISentrySubsystem virtual void AddBreadcrumb(TSharedPtr breadcrumb) override {} virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) override {} virtual void AddLog(const FString& Message, ESentryLevel Level, const TMap& Attributes) override {} - virtual void AddCount(const FString& Key, int32 Value, const FString& Unit, const TMap& Attributes) override {} + virtual void AddCount(const FString& Key, int32 Value, const TMap& Attributes) override {} virtual void AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} virtual void AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) override {} virtual void ClearBreadcrumbs() override {} diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index bfc6d608b..42ce059c3 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -289,19 +289,19 @@ void USentrySubsystem::LogFatalWithAttributes(const FString& Message, const TMap AddLog(Message, ESentryLevel::Fatal, Attributes, Category); } -void USentrySubsystem::AddCount(const FString& Key, int32 Value, FSentryMeasurementUnit Unit) +void USentrySubsystem::AddCount(const FString& Key, int32 Value) { - AddCountWithAttributes(Key, Value, Unit, TMap()); + AddCountWithAttributes(Key, Value, TMap()); } -void USentrySubsystem::AddCountWithAttributes(const FString& Key, int32 Value, FSentryMeasurementUnit Unit, const TMap& Attributes) +void USentrySubsystem::AddCountWithAttributes(const FString& Key, int32 Value, const TMap& Attributes) { if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) { return; } - SubsystemNativeImpl->AddCount(Key, Value, Unit.ToString(), Attributes); + SubsystemNativeImpl->AddCount(Key, Value, Attributes); } void USentrySubsystem::AddDistribution(const FString& Key, float Value, FSentryMeasurementUnit Unit) diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index 7ab55e310..67ab0849e 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -210,21 +210,19 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * * @param Key The name of the metric. * @param Value The value to increment by (default 1). - * @param Unit The unit of measurement for the metric value. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void AddCount(const FString& Key, int32 Value, FSentryMeasurementUnit Unit); + void AddCount(const FString& Key, int32 Value); /** * Emits a Counter metric with attributes. * * @param Key The name of the metric. * @param Value The value to increment by. - * @param Unit The unit of measurement for the metric value. * @param Attributes Structured attributes to attach to the metric. */ UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) - void AddCountWithAttributes(const FString& Key, int32 Value, FSentryMeasurementUnit Unit, const TMap& Attributes); + void AddCountWithAttributes(const FString& Key, int32 Value, const TMap& Attributes); /** * Emits a Distribution metric. From 918954a7074b342a834ddd37fc0e9c6dab95958e Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 10:26:05 +0200 Subject: [PATCH 11/38] FIx Android build error --- .../Source/Sentry/Private/Android/Java/SentryBridgeJava.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java index 590a9d548..f127c4d19 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java +++ b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java @@ -352,7 +352,8 @@ public static Object getLogAttribute(final SentryLogEvent logEvent, final String public static void metricCount(final String key, final double value, final HashMap attributesMap) { SentryMetricsParameters params = createMetricsParams(attributesMap); - Sentry.metrics().count(key, value, params); + // Currently counters do not support unit param so pass null + Sentry.metrics().count(key, value, null, params); } public static void metricDistribution(final String key, final double value, final String unit, final HashMap attributesMap) { From 6b68e963c888851420fb44184d1e07a74d19cdf7 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 11:05:18 +0200 Subject: [PATCH 12/38] Comment Apple metrics impl --- .../Private/Apple/AppleSentrySubsystem.cpp | 78 +++++++++++-------- 1 file changed, 45 insertions(+), 33 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index 3819ed48f..bf504944a 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -236,49 +236,61 @@ void FAppleSentrySubsystem::AddLog(const FString& Message, ESentryLevel Level, c void FAppleSentrySubsystem::AddCount(const FString& Key, int32 Value, const TMap& Attributes) { - NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; - for (const auto& pair : Attributes) - { - SentryAttribute* attribute = FAppleSentryConverters::VariantToAttributeNative(pair.Value); - if (attribute != nil) - { - [attributesDict setObject:attribute.value forKey:pair.Key.GetNSString()]; - } - } + // Expected API once sentry-cocoa adds ObjC metrics bridge: + + // NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; + // for (const auto& pair : Attributes) + // { + // SentryAttribute* attribute = FAppleSentryConverters::VariantToAttributeNative(pair.Value); + // if (attribute != nil) + // { + // [attributesDict setObject:attribute.value forKey:pair.Key.GetNSString()]; + // } + // } + // + // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] countWithKey:Key.GetNSString() value:(NSUInteger)Value attributes:attributesDict]; - [[SENTRY_APPLE_CLASS(SentrySDK) metrics] countWithKey:Key.GetNSString() value:(NSUInteger)Value attributes:attributesDict]; + UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); } void FAppleSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { - NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; - for (const auto& pair : Attributes) - { - SentryAttribute* attribute = FAppleSentryConverters::VariantToAttributeNative(pair.Value); - if (attribute != nil) - { - [attributesDict setObject:attribute.value forKey:pair.Key.GetNSString()]; - } - } + // Expected API once sentry-cocoa adds ObjC metrics bridge: - NSString* effectiveUnit = Unit.IsEmpty() ? nil : Unit.GetNSString(); - [[SENTRY_APPLE_CLASS(SentrySDK) metrics] distributionWithKey:Key.GetNSString() value:(double)Value unit:effectiveUnit attributes:attributesDict]; + // NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; + // for (const auto& pair : Attributes) + // { + // SentryAttribute* attribute = FAppleSentryConverters::VariantToAttributeNative(pair.Value); + // if (attribute != nil) + // { + // [attributesDict setObject:attribute.value forKey:pair.Key.GetNSString()]; + // } + // } + // + // NSString* effectiveUnit = Unit.IsEmpty() ? nil : Unit.GetNSString(); + // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] distributionWithKey:Key.GetNSString() value:(double)Value unit:effectiveUnit attributes:attributesDict]; + + UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); } void FAppleSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { - NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; - for (const auto& pair : Attributes) - { - SentryAttribute* attribute = FAppleSentryConverters::VariantToAttributeNative(pair.Value); - if (attribute != nil) - { - [attributesDict setObject:attribute.value forKey:pair.Key.GetNSString()]; - } - } - - NSString* effectiveUnit = Unit.IsEmpty() ? nil : Unit.GetNSString(); - [[SENTRY_APPLE_CLASS(SentrySDK) metrics] gaugeWithKey:Key.GetNSString() value:(double)Value unit:effectiveUnit attributes:attributesDict]; + // Expected API once sentry-cocoa adds ObjC metrics bridge: + + // NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; + // for (const auto& pair : Attributes) + // { + // SentryAttribute* attribute = FAppleSentryConverters::VariantToAttributeNative(pair.Value); + // if (attribute != nil) + // { + // [attributesDict setObject:attribute.value forKey:pair.Key.GetNSString()]; + // } + // } + // + // NSString* effectiveUnit = Unit.IsEmpty() ? nil : Unit.GetNSString(); + // [[SENTRY_APPLE_CLASS(SentrySDK) metrics] gaugeWithKey:Key.GetNSString() value:(double)Value unit:effectiveUnit attributes:attributesDict]; + + UE_LOG(LogSentrySdk, Verbose, TEXT("Metrics are not yet supported on Apple platforms.")); } void FAppleSentrySubsystem::ClearBreadcrumbs() From 50d026f5d93d8f62aae61c7ee08c2b4fa782279d Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 11:58:33 +0200 Subject: [PATCH 13/38] Refactor unit --- .../Sentry/Private/SentryMeasurementUnit.cpp | 29 ------- .../Source/Sentry/Private/SentrySubsystem.cpp | 8 +- .../Source/Sentry/Private/SentryUnit.cpp | 43 ++++++++++ .../Sentry/Public/SentryMeasurementUnit.h | 70 --------------- .../Source/Sentry/Public/SentrySubsystem.h | 10 +-- plugin-dev/Source/Sentry/Public/SentryUnit.h | 86 +++++++++++++++++++ 6 files changed, 138 insertions(+), 108 deletions(-) delete mode 100644 plugin-dev/Source/Sentry/Private/SentryMeasurementUnit.cpp create mode 100644 plugin-dev/Source/Sentry/Private/SentryUnit.cpp delete mode 100644 plugin-dev/Source/Sentry/Public/SentryMeasurementUnit.h create mode 100644 plugin-dev/Source/Sentry/Public/SentryUnit.h diff --git a/plugin-dev/Source/Sentry/Private/SentryMeasurementUnit.cpp b/plugin-dev/Source/Sentry/Private/SentryMeasurementUnit.cpp deleted file mode 100644 index d6bb4c986..000000000 --- a/plugin-dev/Source/Sentry/Private/SentryMeasurementUnit.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#include "SentryMeasurementUnit.h" - -FSentryMeasurementUnit::FSentryMeasurementUnit(ESentryMeasurementUnit InUnit) - : Unit(InUnit) -{ -} - -FSentryMeasurementUnit::FSentryMeasurementUnit(const FString& InCustomUnit) - : Unit(ESentryMeasurementUnit::Custom) - , CustomUnit(InCustomUnit) -{ -} - -FString FSentryMeasurementUnit::ToString() const -{ - if (Unit == ESentryMeasurementUnit::None) - { - return TEXT(""); - } - - if (Unit == ESentryMeasurementUnit::Custom) - { - return CustomUnit; - } - - return StaticEnum()->GetNameStringByValue(static_cast(Unit)).ToLower(); -} diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index 42ce059c3..f18df6ab0 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -304,12 +304,12 @@ void USentrySubsystem::AddCountWithAttributes(const FString& Key, int32 Value, c SubsystemNativeImpl->AddCount(Key, Value, Attributes); } -void USentrySubsystem::AddDistribution(const FString& Key, float Value, FSentryMeasurementUnit Unit) +void USentrySubsystem::AddDistribution(const FString& Key, float Value, FSentryUnit Unit) { AddDistributionWithAttributes(Key, Value, Unit, TMap()); } -void USentrySubsystem::AddDistributionWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) +void USentrySubsystem::AddDistributionWithAttributes(const FString& Key, float Value, FSentryUnit Unit, const TMap& Attributes) { if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) { @@ -319,12 +319,12 @@ void USentrySubsystem::AddDistributionWithAttributes(const FString& Key, float V SubsystemNativeImpl->AddDistribution(Key, Value, Unit.ToString(), Attributes); } -void USentrySubsystem::AddGauge(const FString& Key, float Value, FSentryMeasurementUnit Unit) +void USentrySubsystem::AddGauge(const FString& Key, float Value, FSentryUnit Unit) { AddGaugeWithAttributes(Key, Value, Unit, TMap()); } -void USentrySubsystem::AddGaugeWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes) +void USentrySubsystem::AddGaugeWithAttributes(const FString& Key, float Value, FSentryUnit Unit, const TMap& Attributes) { if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) { diff --git a/plugin-dev/Source/Sentry/Private/SentryUnit.cpp b/plugin-dev/Source/Sentry/Private/SentryUnit.cpp new file mode 100644 index 000000000..da14e2226 --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/SentryUnit.cpp @@ -0,0 +1,43 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "SentryUnit.h" + +FSentryUnit::FSentryUnit() + : Unit(ESentryUnit::None) +{ +} + +FSentryUnit::FSentryUnit(ESentryUnit InUnit) + : Unit(InUnit) +{ +} + +FSentryUnit::FSentryUnit(const FString& InCustomUnit) + : Unit(ESentryUnit::None), CustomUnit(InCustomUnit) +{ +} + +FString FSentryUnit::ToString() const +{ + if (!CustomUnit.IsEmpty()) + { + return CustomUnit; + } + + if (Unit == ESentryUnit::None) + { + return TEXT(""); + } + + return StaticEnum()->GetNameStringByValue(static_cast(Unit)).ToLower(); +} + +FSentryUnit USentryUnitHelper::MakeSentryUnit(ESentryUnit Unit) +{ + return FSentryUnit(Unit); +} + +FSentryUnit USentryUnitHelper::MakeSentryCustomUnit(const FString& Unit) +{ + return FSentryUnit(Unit); +} diff --git a/plugin-dev/Source/Sentry/Public/SentryMeasurementUnit.h b/plugin-dev/Source/Sentry/Public/SentryMeasurementUnit.h deleted file mode 100644 index 70c3c9bfd..000000000 --- a/plugin-dev/Source/Sentry/Public/SentryMeasurementUnit.h +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#pragma once - -#include "CoreMinimal.h" - -#include "SentryMeasurementUnit.generated.h" - -/** - * Predefined measurement units for Sentry metrics. - */ -UENUM(BlueprintType) -enum class ESentryMeasurementUnit : uint8 -{ - None, - // Duration - Nanosecond, - Microsecond, - Millisecond, - Second, - Minute, - Hour, - Day, - Week, - // Information - Bit, - Byte, - Kilobyte, - Kibibyte, - Megabyte, - Mebibyte, - Gigabyte, - Gibibyte, - Terabyte, - Tebibyte, - Petabyte, - Pebibyte, - Exabyte, - Exbibyte, - // Fraction - Ratio, - Percent, - // Custom string - Custom -}; - -/** - * A measurement unit that can be attached to a metric value. - * Use predefined units from the enum or provide a custom string. - */ -USTRUCT(BlueprintType) -struct SENTRY_API FSentryMeasurementUnit -{ - GENERATED_BODY() - - /** The predefined measurement unit. */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Sentry") - ESentryMeasurementUnit Unit = ESentryMeasurementUnit::None; - - /** Custom unit string, used when Unit is set to Custom. */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Sentry", meta = (EditCondition = "Unit==ESentryMeasurementUnit::Custom")) - FString CustomUnit; - - FSentryMeasurementUnit() = default; - FSentryMeasurementUnit(ESentryMeasurementUnit InUnit); - FSentryMeasurementUnit(const FString& InCustomUnit); - - /** Converts the unit to its string representation. */ - FString ToString() const; -}; diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index 67ab0849e..b06f4bcf4 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -6,7 +6,7 @@ #include "Subsystems/EngineSubsystem.h" #include "SentryDataTypes.h" -#include "SentryMeasurementUnit.h" +#include "SentryUnit.h" #include "SentryScope.h" #include "SentryTransactionOptions.h" #include "SentryVariant.h" @@ -233,7 +233,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Unit The unit of measurement for the metric value. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void AddDistribution(const FString& Key, float Value, FSentryMeasurementUnit Unit); + void AddDistribution(const FString& Key, float Value, FSentryUnit Unit); /** * Emits a Distribution metric with attributes. @@ -244,7 +244,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Attributes Structured attributes to attach to the metric. */ UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) - void AddDistributionWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes); + void AddDistributionWithAttributes(const FString& Key, float Value, FSentryUnit Unit, const TMap& Attributes); /** * Emits a Gauge metric. @@ -255,7 +255,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Unit The unit of measurement for the metric value. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void AddGauge(const FString& Key, float Value, FSentryMeasurementUnit Unit); + void AddGauge(const FString& Key, float Value, FSentryUnit Unit); /** * Emits a Gauge metric with attributes. @@ -266,7 +266,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Attributes Structured attributes to attach to the metric. */ UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) - void AddGaugeWithAttributes(const FString& Key, float Value, FSentryMeasurementUnit Unit, const TMap& Attributes); + void AddGaugeWithAttributes(const FString& Key, float Value, FSentryUnit Unit, const TMap& Attributes); /** * Clear all breadcrumbs of the current Scope. diff --git a/plugin-dev/Source/Sentry/Public/SentryUnit.h b/plugin-dev/Source/Sentry/Public/SentryUnit.h new file mode 100644 index 000000000..bc4763872 --- /dev/null +++ b/plugin-dev/Source/Sentry/Public/SentryUnit.h @@ -0,0 +1,86 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintFunctionLibrary.h" + +#include "SentryUnit.generated.h" + +/** + * Predefined measurement units for Sentry metrics. + */ +UENUM(BlueprintType) +enum class ESentryUnit : uint8 +{ + None, + + // Duration + Nanosecond, + Microsecond, + Millisecond, + Second, + Minute, + Hour, + Day, + Week, + + // Information + Bit, + Byte, + Kilobyte, + Kibibyte, + Megabyte, + Mebibyte, + Gigabyte, + Gibibyte, + Terabyte, + Tebibyte, + Petabyte, + Pebibyte, + Exabyte, + Exbibyte, + + // Fraction + Ratio, + Percent +}; + +/** + * A measurement unit that can be attached to a metric value. + * Use predefined units from the enum or provide a custom string. + */ +USTRUCT(BlueprintType, meta = (HasNativeMake = "/Script/Sentry.SentryUnitHelper.MakeSentryUnit")) +struct SENTRY_API FSentryUnit +{ + GENERATED_BODY() + + FSentryUnit(); + FSentryUnit(ESentryUnit InUnit); + FSentryUnit(const FString& InCustomUnit); + + /** Converts the unit to its string representation. */ + FString ToString() const; + +private: + ESentryUnit Unit; + FString CustomUnit; +}; + +/** + * Blueprint factory functions for FSentryUnit. + */ +UCLASS() +class SENTRY_API USentryUnitHelper : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + /** Creates a measurement unit from a predefined type. */ + UFUNCTION(BlueprintPure, Category = "Sentry") + static FSentryUnit MakeSentryUnit(ESentryUnit Unit); + + /** Creates a measurement unit from a custom string. */ + UFUNCTION(BlueprintPure, Category = "Sentry") + static FSentryUnit MakeSentryCustomUnit(const FString& Unit); +}; From a77a770f8cc453d1c70dcbd21bc04772a7062928 Mon Sep 17 00:00:00 2001 From: Sentry Github Bot Date: Fri, 6 Feb 2026 10:05:11 +0000 Subject: [PATCH 14/38] Format code --- plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp | 2 +- plugin-dev/Source/Sentry/Public/SentrySubsystem.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index bf504944a..4a0aff37d 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -238,7 +238,7 @@ void FAppleSentrySubsystem::AddCount(const FString& Key, int32 Value, const TMap { // Expected API once sentry-cocoa adds ObjC metrics bridge: - // NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; + // NSMutableDictionary* attributesDict = [NSMutableDictionary dictionaryWithCapacity:Attributes.Num()]; // for (const auto& pair : Attributes) // { // SentryAttribute* attribute = FAppleSentryConverters::VariantToAttributeNative(pair.Value); diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index b06f4bcf4..1e0c76a35 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -6,9 +6,9 @@ #include "Subsystems/EngineSubsystem.h" #include "SentryDataTypes.h" -#include "SentryUnit.h" #include "SentryScope.h" #include "SentryTransactionOptions.h" +#include "SentryUnit.h" #include "SentryVariant.h" #include "SentrySubsystem.generated.h" From 7da386dc176b04247ef049bd6c5e1e5f7b4099c1 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 12:07:20 +0200 Subject: [PATCH 15/38] Update snapshot --- scripts/packaging/package.snapshot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/packaging/package.snapshot b/scripts/packaging/package.snapshot index a43f04add..e7f5de90e 100644 --- a/scripts/packaging/package.snapshot +++ b/scripts/packaging/package.snapshot @@ -186,7 +186,6 @@ Source/Sentry/Private/SentryFeedback.cpp Source/Sentry/Private/SentryHint.cpp Source/Sentry/Private/SentryLibrary.cpp Source/Sentry/Private/SentryLog.cpp -Source/Sentry/Private/SentryMeasurementUnit.cpp Source/Sentry/Private/SentryModule.cpp Source/Sentry/Private/SentryOutputDevice.cpp Source/Sentry/Private/SentrySamplingContext.cpp @@ -197,6 +196,7 @@ Source/Sentry/Private/SentrySubsystem.cpp Source/Sentry/Private/SentryTraceSampler.cpp Source/Sentry/Private/SentryTransaction.cpp Source/Sentry/Private/SentryTransactionContext.cpp +Source/Sentry/Private/SentryUnit.cpp Source/Sentry/Private/SentryUser.cpp Source/Sentry/Private/SentryVariant.cpp Source/Sentry/Private/Tests/SentryBeforeLogHandler.spec.cpp @@ -241,7 +241,6 @@ Source/Sentry/Public/SentryHint.h Source/Sentry/Public/SentryImplWrapper.h Source/Sentry/Public/SentryLibrary.h Source/Sentry/Public/SentryLog.h -Source/Sentry/Public/SentryMeasurementUnit.h Source/Sentry/Public/SentryModule.h Source/Sentry/Public/SentryOutputDevice.h Source/Sentry/Public/SentrySamplingContext.h @@ -253,6 +252,7 @@ Source/Sentry/Public/SentryTraceSampler.h Source/Sentry/Public/SentryTransaction.h Source/Sentry/Public/SentryTransactionContext.h Source/Sentry/Public/SentryTransactionOptions.h +Source/Sentry/Public/SentryUnit.h Source/Sentry/Public/SentryUser.h Source/Sentry/Public/SentryVariant.h Source/Sentry/Sentry_Android_UPL.xml From 747b057b63b7721b13a31ef9cae6cf40844819f2 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 12:10:53 +0200 Subject: [PATCH 16/38] Refactor --- .../GenericPlatformSentrySubsystem.cpp | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index aac43bda2..547af797f 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -527,7 +527,7 @@ void FGenericPlatformSentrySubsystem::AddLog(const FString& Message, ESentryLeve void FGenericPlatformSentrySubsystem::AddCount(const FString& Key, int32 Value, const TMap& Attributes) { - sentry_value_t attributes; + sentry_value_t attributes = sentry_value_new_null(); if (Attributes.Num() > 0) { attributes = sentry_value_new_object(); @@ -536,17 +536,13 @@ void FGenericPlatformSentrySubsystem::AddCount(const FString& Key, int32 Value, sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), FGenericPlatformSentryConverters::VariantToAttributeNative(it.Value())); } } - else - { - attributes = sentry_value_new_null(); - } sentry_metrics_count(TCHAR_TO_UTF8(*Key), Value, attributes); } void FGenericPlatformSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { - sentry_value_t attributes; + sentry_value_t attributes = sentry_value_new_null(); if (Attributes.Num() > 0) { attributes = sentry_value_new_object(); @@ -555,17 +551,13 @@ void FGenericPlatformSentrySubsystem::AddDistribution(const FString& Key, float sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), FGenericPlatformSentryConverters::VariantToAttributeNative(it.Value())); } } - else - { - attributes = sentry_value_new_null(); - } sentry_metrics_distribution(TCHAR_TO_UTF8(*Key), Value, Unit.IsEmpty() ? nullptr : TCHAR_TO_UTF8(*Unit), attributes); } void FGenericPlatformSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { - sentry_value_t attributes; + sentry_value_t attributes = sentry_value_new_null(); if (Attributes.Num() > 0) { attributes = sentry_value_new_object(); @@ -574,10 +566,6 @@ void FGenericPlatformSentrySubsystem::AddGauge(const FString& Key, float Value, sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), FGenericPlatformSentryConverters::VariantToAttributeNative(it.Value())); } } - else - { - attributes = sentry_value_new_null(); - } sentry_metrics_gauge(TCHAR_TO_UTF8(*Key), Value, Unit.IsEmpty() ? nullptr : TCHAR_TO_UTF8(*Unit), attributes); } From 0a0be38c3b8d78c83990a057b64d4bb44623a225 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 13:26:57 +0200 Subject: [PATCH 17/38] Add attribute map convertor --- .../GenericPlatformSentrySubsystem.cpp | 52 ++----------------- .../GenericPlatformSentryConverters.cpp | 16 ++++++ .../GenericPlatformSentryConverters.h | 1 + 3 files changed, 21 insertions(+), 48 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 547af797f..0d07ea0ec 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -488,21 +488,7 @@ void FGenericPlatformSentrySubsystem::AddLog(const FString& Message, ESentryLeve { FTCHARToUTF8 MessageUtf8(*Message); - // Only create attributes object if we have per-log attributes. - // Passing null preserves global attributes set via SetAttribute(). - sentry_value_t attributes; - if (Attributes.Num() > 0) - { - attributes = sentry_value_new_object(); - for (auto it = Attributes.CreateConstIterator(); it; ++it) - { - sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), FGenericPlatformSentryConverters::VariantToAttributeNative(it.Value())); - } - } - else - { - attributes = sentry_value_new_null(); - } + sentry_value_t attributes = FGenericPlatformSentryConverters::VariantMapToAttributesNative(Attributes); switch (Level) { @@ -527,47 +513,17 @@ void FGenericPlatformSentrySubsystem::AddLog(const FString& Message, ESentryLeve void FGenericPlatformSentrySubsystem::AddCount(const FString& Key, int32 Value, const TMap& Attributes) { - sentry_value_t attributes = sentry_value_new_null(); - if (Attributes.Num() > 0) - { - attributes = sentry_value_new_object(); - for (auto it = Attributes.CreateConstIterator(); it; ++it) - { - sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), FGenericPlatformSentryConverters::VariantToAttributeNative(it.Value())); - } - } - - sentry_metrics_count(TCHAR_TO_UTF8(*Key), Value, attributes); + sentry_metrics_count(TCHAR_TO_UTF8(*Key), Value, FGenericPlatformSentryConverters::VariantMapToAttributesNative(Attributes)); } void FGenericPlatformSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { - sentry_value_t attributes = sentry_value_new_null(); - if (Attributes.Num() > 0) - { - attributes = sentry_value_new_object(); - for (auto it = Attributes.CreateConstIterator(); it; ++it) - { - sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), FGenericPlatformSentryConverters::VariantToAttributeNative(it.Value())); - } - } - - sentry_metrics_distribution(TCHAR_TO_UTF8(*Key), Value, Unit.IsEmpty() ? nullptr : TCHAR_TO_UTF8(*Unit), attributes); + sentry_metrics_distribution(TCHAR_TO_UTF8(*Key), Value, TCHAR_TO_UTF8(*Unit), FGenericPlatformSentryConverters::VariantMapToAttributesNative(Attributes)); } void FGenericPlatformSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { - sentry_value_t attributes = sentry_value_new_null(); - if (Attributes.Num() > 0) - { - attributes = sentry_value_new_object(); - for (auto it = Attributes.CreateConstIterator(); it; ++it) - { - sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), FGenericPlatformSentryConverters::VariantToAttributeNative(it.Value())); - } - } - - sentry_metrics_gauge(TCHAR_TO_UTF8(*Key), Value, Unit.IsEmpty() ? nullptr : TCHAR_TO_UTF8(*Unit), attributes); + sentry_metrics_gauge(TCHAR_TO_UTF8(*Key), Value, TCHAR_TO_UTF8(*Unit), FGenericPlatformSentryConverters::VariantMapToAttributesNative(Attributes)); } void FGenericPlatformSentrySubsystem::ClearBreadcrumbs() diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/Infrastructure/GenericPlatformSentryConverters.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/Infrastructure/GenericPlatformSentryConverters.cpp index a1629a8d5..806ad72c0 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/Infrastructure/GenericPlatformSentryConverters.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/Infrastructure/GenericPlatformSentryConverters.cpp @@ -156,6 +156,22 @@ sentry_value_t FGenericPlatformSentryConverters::VariantToAttributeNative(const return sentry_value_new_attribute(value, nullptr); } +sentry_value_t FGenericPlatformSentryConverters::VariantMapToAttributesNative(const TMap& map) +{ + if (map.Num() == 0) + { + return sentry_value_new_null(); + } + + sentry_value_t attributes = sentry_value_new_object(); + for (auto it = map.CreateConstIterator(); it; ++it) + { + sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*it.Key()), VariantToAttributeNative(it.Value())); + } + + return attributes; +} + sentry_value_t FGenericPlatformSentryConverters::AddressToNative(uint64 address) { char buffer[32]; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/Infrastructure/GenericPlatformSentryConverters.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/Infrastructure/GenericPlatformSentryConverters.h index 821312171..965329f82 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/Infrastructure/GenericPlatformSentryConverters.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/Infrastructure/GenericPlatformSentryConverters.h @@ -23,6 +23,7 @@ class FGenericPlatformSentryConverters static sentry_value_t VariantArrayToNative(const TArray& array); static sentry_value_t VariantMapToNative(const TMap& map); static sentry_value_t VariantToAttributeNative(const FSentryVariant& variant); + static sentry_value_t VariantMapToAttributesNative(const TMap& map); static sentry_value_t AddressToNative(uint64 address); static sentry_value_t CallstackToNative(const TArray& callstack); From 1e3cf1c96a69a18574e81779335109a0f9a54c94 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 13:27:04 +0200 Subject: [PATCH 18/38] Formatting --- .../Android/AndroidSentrySubsystem.cpp | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index 760bcd768..2d95f8437 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -197,30 +197,22 @@ void FAndroidSentrySubsystem::AddLog(const FString& Message, ESentryLevel Level, void FAndroidSentrySubsystem::AddCount(const FString& Key, int32 Value, const TMap& Attributes) { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); - FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricCount", - "(Ljava/lang/String;DLjava/util/HashMap;)V", - *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, - attributesMap->GetJObject()); + FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricCount", "(Ljava/lang/String;DLjava/util/HashMap;)V", + *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, attributesMap->GetJObject()); } void FAndroidSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); - FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricDistribution", - "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", - *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, - *FSentryJavaObjectWrapper::GetJString(Unit), - attributesMap->GetJObject()); + FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricDistribution", "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", + *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, *FSentryJavaObjectWrapper::GetJString(Unit), attributesMap->GetJObject()); } void FAndroidSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); - FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricGauge", - "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", - *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, - *FSentryJavaObjectWrapper::GetJString(Unit), - attributesMap->GetJObject()); + FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricGauge", "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", + *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, *FSentryJavaObjectWrapper::GetJString(Unit), attributesMap->GetJObject()); } void FAndroidSentrySubsystem::ClearBreadcrumbs() From 60a926a2c5cdd93942483d735f2a53dd31b0cd3c Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 13:31:33 +0200 Subject: [PATCH 19/38] Fix demo blueprint --- sample/Content/UI/W_SentryDemo.uasset | Bin 594809 -> 585535 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sample/Content/UI/W_SentryDemo.uasset b/sample/Content/UI/W_SentryDemo.uasset index f440f1933ba76ce79718c96217a87f52dafdf61c..359cbb60cc78739f5b01126043123dd3218a5fdd 100644 GIT binary patch literal 585535 zcmeF4cYKt^_Wz$n6f9UlQLhSE5S3n}SxAG>0wf?73`?>Jfg~G}4Nb(}yJGLy1+QMk z-h02cYcE*uwYO_Uk>7dG%*j5x*(6WCOWMLnIUN5@rp@Kbb%~i$cN&yGzzfoZTe3C<)iM;>$9h%P0nlYZ7A1?@#>gd z+Iuxpsbvw*>n?Zwhvf_&JSuDOpuB;30|ySv8tekJ^%=0QArP1+ zHf)MOvYF4WA8!qNy#YH!yb<4Zw2AJ2>4tT*zn|Rq&8;r4sE+l`Ev-nzYqKirV>PuE z)rl#wx_EtUNvy7KVIo>x8m%pz5G|>V*LfG;KjDsT$u~M$73(`SzwbfCg|X^H?V_Am zRoolVZpF^KHubbm3TgcFmj-SJX<Yj@QPf7R;Ix zD@l02<@ery3*R%_1nh071!j4Gqq5Wofl?Cw!OuYXLZ=eY%Ygn&Dk|>G`*t^uaT{A5PlT#)r)C`XBZAotsLTqe@GQ z^Q#l`&ztwm>9=fdlSU;H(URF!!hUb%+I_OS+SDwmPiaYQebuakDiX6NMQfu~b>76k z?&%G;rJ!tSbb?2cy|!XjeIi!p4SMI#f9`A_=Ty|$unjd1d866{Y2|M4k8e?p-c4N!2B@ zFm+;1p_jAvo?K+r&=+UNs}s?R>N@X~&*qLmi`nGSv4pqcpM*G`UK6WLEb{Vi`=p`+nF|YZrxbbb-Cg&%X{ovGHYGQAV$qaQ6N|jl9z5?U z(+^4U>9*%Ho=Z}ZSoP{o%gLTKDyLiC)QQ>MCKcpQEXtkYb@^%Wom73+sLIOtf*jFK z2@w@<-4C08)rI8jXmwG%yu30tt)i}CRz+onRIT9FUhV9|coqE0s-HEhGA80u9V_+b z_1S$qDrHu-|DnlU8S^IZHgY6NJmXUt6ge?rU1i;*Xmza8+bS`99xR`gyRb&oR;-lg zbrt2+((~s(U0h)5JtkV06Dy0>S0ntk^!b3B6YFa zYSA6@8NqX>-QAOpo|RuG;!u~!tFJEchW)(iN%Bh~>L)5p^SYe)`;m??FJ4k#XAIx zSBpvYwJ}q(x1K0C!R087CCmu(<(T&Jr=J++jgOT_OBPLx#iaR?w>(xjH&!_%R#xYo zb<1HRP$sj+$Ky2>)#cs?T`#Rg_8TSwuk)~hoqG6FL_lg}zOGInb>-1S48D?g!`NK| z7!VD4N7q-BdM|a@VJb?mA+>N(T_RRBEmm8H#2%B_c<+=H-49d+M{N!?IE&A@al@Nfo6U;HE4@COmVU`}mnAn1rp}h_Z#xxJ zCo3*`x5`_0_u^}@-Dat(W{NUa$(FyIeW;nbCb6n1ijR+%d#9Xu%rRyHc4;!Z$70pq ztg*Y!G&7o_$V6OUC&gDRmKk#Pf8L4kG;7kdXl(_vrWh7x<-$~QRF^$A!~9M@6%mMH z;^wk8@?O25=4dl#7se{fu=ZjL6W*+kmi)uafQ7T;3uJQfR=xMrex_AsHt|M&d6tJU zlVNi4KHqz4M^l}~6VK>uZ$R%gJ2Qu6$l0Jyy@x0NeYlw&Q;Ja4;N5=zR+lzLaQff7 z=&aeZc4>s*o+dFKDeb$|be_XN%X;H~-)AkxpsSq@7NZ)xy({ni&ev#t$N=`%oN!?0 z3>ocO_iNV=F6riyk-*~QvaNVZOy=`yyL9>E zrES01ErpJiMZ+o}g?8oQ>3bttK-n@4tt<_S^Tn3&uH5FTU$K$Wp4){&N=YBT@a(b_ z$`otGU%zQbj_z2AsxC$@|1z_f+iB6x!6fSZxY*&x;>Dfb~^_9Lf5sDw^6W zc_qv5!?oBzBZJhsrV8t4)tRM7N|})-I$nvE_S56=NFjQ1w{Jg48MRVqfvoqVOm8Wa ztNV=nhJ~`fIPr2Num~Cz`}vxE?@H+!DOTnt@vg;63u+pb{e1UtUrAw>ESAT`7R`!_ zW6&%@Q)+VG`I~;(%U_dm1H?&~D5|K6)#?%_CBqqmi`I1aXBaQb4CnAlAzbxn^t_Zd zPKeHpjjxbJTC@^fkV5?a!nX#dRN6;uG(ZaV=a#`F;|A(dZ_fM{ZoXIj771!glZAB-@YFI$?1)xAOm5so%N?)HgQ>sdYB>} zs(6**RDQMG$g@l`V({NnV-dMzWbHmHpS%iKWs2}ybIpQIm_Z0Cy!1@Uhn*Ei}3=wT$)Zs=X~$~ z_=~HoxoC2#4SiN@ha0VF=TA-oZt&yW{a7Dl%UoR^msP~COP4)qTVxZAcl^vD(>Jr# zvWbQ9+5|4K&RgyLPmJE|*|Czj@p^yvdVlmh=j)AlRvE3U^AZado@1&PubLIliZ8UC z<4x?=;bu&HabWq9i;H5lRTbi$lIh3z%T8VS-M4trl4Og-N%`HZ%VMUtOlD*K7bbY{ z`7W0Yz~e9E#&Q1K_77ZX+GOvu+lcaP!pfCtjW%M z`jSi8*&!vPTkyrMi3-y-O%T+1r=Rjc)O5L0sEu!UJLaA42N}qMi8;k)r*PG;1A5s? zh~v?$F!xzGZ)>C6Iq5zPN^IE`v|+xYFyYTp4wV+Ird0S`feDGRqWEf8qh-GyLf89VMtH(#?UGk3QyID;-C3AKAV{f%BZo)eD{(AMY`M73f z#5Q3FduM$ZImhx;?z#}>YXq$7F~Jz4@LqF zd0|w9TZXTqeD~;+@30m%yJZ{aXMcbQa3j{2*XiN_j-(;Y#@4&luaYC-L6D;T{8E=Ohm>qZXnuovwj)C5ECUC)n{A{j*A8`YZ&R{F*onf zhyF`@oZRr8nvne>uWs|JH)5oukzrnqiB*b)?bRLoRDMc*Esis)98td^i4LgQhGLKb zyW{B%A3bR*3clf4iYqwVd*tKDSt-3^^EGT&c;k0EZ5T4<3NSn4Y$|xGKK}Q7RJMCy zE%rKZ>}UIQL~pueD-&Bj_0vF!!4 z(%9*3-ke<-O@43N277(9v1z8=YaSn+C0l=2{WgE4A+(7m^WyXWon_b*Ur;R~9bb@N zC7T!Cb|>HYoN02sT}FAYefVcz#$e8(>S$F(iQ84Orw!`7=<(-X%Am?EwMP@$$5+ju z%iX>1@|fxDl9io@gXo@#SI;Q#)eFwfg+DI2uw-_uDk{!W@1935>I6^O-HVmx$bKHh z(zVsP%NvyIi=6%(3ixo&kZk6nwdV`m4`zsuE`+;bOnD^-J6W{M(5;-B_ z-5tsKH|jK(2J7CUG_cN#9kW??hEk&^!-tQlC@mG=>YJ;|A8W{)0&?Pk@BWt)BPOr^ z$?)MhvH7vecn!@esIFY(?OXQR=cYar3#U%W^*)L(?~Ug!7Z2;Cc!kWHw@%-5S6Y}` zU0>x*d;EmBZBu=fij+6`&C3s@>vKgKYA4i{dzT;nT@5 zO`eB-x@s3wvQs?N(>r79`XR_)u1!Rbcz2JudAgB?LRp8$3dNB;rCw~HtqvM9!*pOu z^6=q#6_u6Vlu96r22 zHrQpuq12nXZ}*LibS;dPcuT(ga|hEA_U4!C^HwdI`o zDfX*J@0uaU++{?@P>HqKpoe;VaBF|l{)LI!XkKNsyv}=Ia$XO5F>h31QMbHN`QyEp zr!4skHs*~g8a3XVzr$50(CrPA{JjsHf2&E5_RE-$c^mAuOF6=oS5aLdKI+1kHrkQw zW#&Lh=S7#lfURZLY7MgV#|rIC3u1id{!tXWP+iC-vJ4&|_^?d^WfVUJ*%OIpmH zHL~XIqzlfy)nFMPk~gf=X=gHItxHMIpO_hc$t6GThNR`yR><*{%0))2ZSdrCo0_`o zCP(d$_nty;D~F6s)Ok6*_T0~u>*&Z_6i2yv-@mcejAhM{6p`x=`LhdkPB#>;dU5tF zFyt5w&Zk(ZRs1J*oL&S*V^^2AWkI_m>2`T!sy*!FQ9IKXzXQv=;Ii2l8Ms)&@2m1Y zU%cf2dcTod$~$3NmIM!7Sd(xWObodyfSc|h|6p2AFs%p!J(a7n}FYnb$p6<$w zkVzrm@aPXiOi>NWT9#Pezt;THoAxDhu<&B{q0?oxw zdj+PK9@3EA6=U=2fbiZtzSAu>vz_1F_KR8a{d(cGFJPl;W?efbPk4CSz4XP6yZcDY zB0&wD;)42wuu*Tl9=CmRAA?BCGb;hRQdvD_^?Ck!CLa~s(?q?x&b$@&xV$!3-3f>6 zNPqehi}U>qT)NSVw<8OV!m1wAS>DhO_h)j_Cr)|fntjYmU)yjm45hS(a#~bQQ+Xp| zuYBu+&7c#WTlRi`A8dYE(d<}tF80Wlqa#ltBd+9e)iM-bJ|U~UuPWvQYQ7weVt?B^ zVNLJ(3`Um$C!Og*@39fxUuSuc{-D@CzTuuXE<*5pkHvN94LR#AV~C|Di-)Pk`}Ult zZuj*8NH`k_*1}%>$ImN#tul^AyRiSX@0U@Z7$lz*XHfPZj2)QIr0c7Kj4kmGxD&R% zMW`D5rz~9YTeoJixV4J+_3A$+ql8@1*3<9ZvT~%qH*KmoEX>(BZ}8if7y3p(;ev`p z$!s^+A6`>_25T%W&-bi2yQ-$JzC?}=%X;L9v%dBTwyBNmoQq(1Lu$`mmf?|X6L_`% z+$sxAGFO(ktMfIo3%j~=J^lq?s!{M(QwMm&nyrm0Ao{3VEy9M#u(mF4@_rz7EmW@}%n+?6> zchl+Sk$*8Bg~ zHru(~%Z!8ZGAUOlMj89ftRD{FN6=UpGyC1X8PneQSXsjB zd*aDoF$jIzFW#lEyninI8gH!JIs2Tm%uvXRAX;n9na23N!Ginng^f$PwJ8A;ek@owK}>X;@Av5om;pI+DDb;wwVG>h#K@65~3xd4@v zkqDi&$C$SnKI8D44+_^LWTvYSQIB~ymLKpgL#LYc!?2xlmvduH-JOQMO@p{;VB4`jb{uOGV+&Lf z)_K=n|HB>d7b8Pm;xl(E{x9Q)G{dr2R<>UO7fBcst0=lu(B{Y7ae#p|YfPab-5 zJ72=VUTxktF~%*K>b!gZy0ntob0>>G@s3tjSNz9Rm=|Dv+Th7fFm+-)kvp$GT4|iR zh>2J9!tr;ST2CE6zTpV?$G@-r(3DnRWembPFSpOozatZI`-Vnr+=c77buVnh#(fiE zNI55l9#|js?j2v!VFhJnb-W;OLA$?SwkP)i564Dd+N3KAp`hAqa@hHc<5=%>d~s*$ zClBoTTJME-ci+vCrugZ-L&uIR)REf*Py7ImJbALGAW=nf;^V*7eSm^~d z-U+*{y48T`uDsWAaLeRfnicH1Loay_ix=yf(*bi zStWblWsU3r!;GINR$COuYhb35JbAw*<`pd;c?n`FJ`Cx-I%|Dx`r2-j3@&H?oYH&e zm38xAkgysPMO^J{k9tr471;;|YY$kr!n^UEZ)cupNcAtnKRYMpoAf(@Us z6|rw+7=7T$`(B1`PV$RnE=W|=cq4j0cslB)@lLQ;*0JAoru-?n6LWH>bSoM&C0Aa= zuuI+XyX}>rT2sW8Ur}QEDCy;kKYY^ZR7)PpXs#$*#FEDAaOuC!wOQ)omGfhz2g$y0 zi5%WA9Iw9lr$^r}Sgro`j&CJ}Gu@ z8Agv4M$2M{pi(xz^RCyZhbGv~+5^5AG8pz~s#)@m>9(*Q_OQWSI;|qMz$yf9$unQ) zG^8IAmqQFy93S?Iw>{%oMrHbjxEI;wt?4wx`d7Vm_n)?aO52svUR~cl#z31>n<5VE zyp8K}{K<%e)g5~F#rtFMV6zNOs+2c(DwvPF*2w`*uXyRI)*G)w~aun);aA zyy7A!d|sIN-ApRty@BQdw`z@cn)nX2m5@ z6fO7K&-s2|mrri%yx9-Dx5C|<4aD2xLwYe*-LYU>49EZ+9*cAIHwvy?w|$e}0@B4TWEI@TLc1r08}_%zNPN53e`vM&~>_?7#|ci~@Re z*nV4E+J%X%%DB90cg=!}Kg8|By4j?pyp84c+-Ll!XspbS{`z9P)Q_-P;SH4Y;unJyMq^0gVSTdc4m zvBK{Bvcp3x0E=YHW=-*hcBFCS=IFfIkEwr}t+{i>`9qmElgYXfGi=?*pJ|42_8}&T zXhPMwDru^j9T#6Pr^?(g{hfZ`SI?u@nGUKkZ>wG_y#QU} zJ6zD|t0Rp;GIeTxj<@)u3u7S2D61$n2BDexPv7sZ?@`zD&EQ+!Z}@NA*`c_+U;i87 zg1M75$_86JyE1v--&?iy%IA~!1H7t1S*6MQf!;g4dTx-sALOlGbj66|{a|l)=^uwB z?}vE*$m;T6l%}amopR% zsK2{6I(Br=@teTAX>yi1UOOPio7%5(V}wFp`;;RuoD*K?{qgOIuQQGK(yV=Y+!0%u z!-T#E#zZZfKW-Iz`Jisr_~>T7?%>?A)hieRDI1q3FYLQJec?|m&i1~1^NdOw?Cj+= zdDq>8QD$!&<^iwZ@MkYZU8kj|ZM)5X;i~Ovlclng#Csc!dUH;~1 ziUQC~4M1~H0GfjX&>R|o=CA-XGXl^Y9)PAe0L{z*G|>PwvjWhR2B0YqKr=T0O;rGz zcmSH37HCRDp7#krb8P^cdt0EHC0O^jFm|B%H2_V&09Z!^pji@t=EwjvO9Rjx6@X^< z7W7Y4`14Z>x5rF2;05od@(8$*enNL&t86HLg&}`5G z%}gohw-)MCEHtxPka=k00cfrbKy!TnnmYo}91x&g2L_<|PXL-P0?-U-p)cU!OH&@jF_H9@2E+Gj#DxCNR|g$Dl#pLCs|B@M)?q-W8e` zEJ?F8F9x9bX8@X)0?@o1faaAJXx<6Xc4#`Zz(Z&{2B6t208OVBXxRzh=JfzHxlN26tq*I)zgj2|Ea%=a#mXwHtO!LcqzS->x;UC%J|OxU@7c&_9{@lrvaahA;!rA_yw#A{eOgNiOZ(AJJl9_PUwJ{FskW4r~9^AI=VNH|?=d(lF76)0* zg!9&+ZHvR2DihB0hqWyZ>+?)F56x&>oK2g+`N!dHi?dl1IM)`pEl#H z*pJJEGqSvGaoE$#gwuC++v2b9LMCYIHw3s zXM{jL@a+e;Ia9v0?QzUcN;;hH0F=-4W7i+&5np?TN|~Ieqe-;qD+zo?9~TY|{R7Sy zfXHXS@!{ZLFM>1H_0^6l;D84B2#XrVijrsI8}=eNLmf`+#Bkb!n1S=X1U{Fa6b=rh zg7Y&V@;T$=aBvu&;QR!Le2zUO930k<;2iGyXa1?-;IMuKN6!TQ>$Gri!0_Wl&j<&H z^&>bV9pAn^GaMY&kKjyqID4JF{y1Oy#xC>1I4PeG5c`{$$lEz>k2Btt?Z|EO-wHC|EDix@QU;uRLcp1v0q2(xaHeFy8FXIT_fKI4oZ1j@iZbBb z76Q)H3^?D0fHN%v&OXc9rhlrPjzhmangM4{8{xR3J#hYpVv`S-Jf~D|3;{>&UU06& zkdx21tJ{WewlvSQ=Rse4bY3{)tG35^#D{aStHARi;5?cEr}XQ#X-}0;-tbx#asAtq2}k=!asFy!oI{#u&!7Ko+x93HqoBnehvpGy*
iR=F96XW|03y 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 U&BwrOrxUQBf)3|ue)`1IKQ`jnNB{r; literal 594809 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êl4bu!pc5JU>l_$R!t`$3gEIMhjKZ;tciiaU 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 U7?^tc2>fO6_FVnq%D!*^2P~CB`Tzg` From b3f29a71e8eb57b5876300eb4c980f917868f626 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 13:36:04 +0200 Subject: [PATCH 20/38] Add cons ref --- plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp | 8 ++++---- plugin-dev/Source/Sentry/Public/SentrySubsystem.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index f18df6ab0..2910e3d11 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -304,12 +304,12 @@ void USentrySubsystem::AddCountWithAttributes(const FString& Key, int32 Value, c SubsystemNativeImpl->AddCount(Key, Value, Attributes); } -void USentrySubsystem::AddDistribution(const FString& Key, float Value, FSentryUnit Unit) +void USentrySubsystem::AddDistribution(const FString& Key, float Value, const FSentryUnit& Unit) { AddDistributionWithAttributes(Key, Value, Unit, TMap()); } -void USentrySubsystem::AddDistributionWithAttributes(const FString& Key, float Value, FSentryUnit Unit, const TMap& Attributes) +void USentrySubsystem::AddDistributionWithAttributes(const FString& Key, float Value, const FSentryUnit& Unit, const TMap& Attributes) { if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) { @@ -319,12 +319,12 @@ void USentrySubsystem::AddDistributionWithAttributes(const FString& Key, float V SubsystemNativeImpl->AddDistribution(Key, Value, Unit.ToString(), Attributes); } -void USentrySubsystem::AddGauge(const FString& Key, float Value, FSentryUnit Unit) +void USentrySubsystem::AddGauge(const FString& Key, float Value, const FSentryUnit& Unit) { AddGaugeWithAttributes(Key, Value, Unit, TMap()); } -void USentrySubsystem::AddGaugeWithAttributes(const FString& Key, float Value, FSentryUnit Unit, const TMap& Attributes) +void USentrySubsystem::AddGaugeWithAttributes(const FString& Key, float Value, const FSentryUnit& Unit, const TMap& Attributes) { if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) { diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index 1e0c76a35..774e2cdb3 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -233,7 +233,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Unit The unit of measurement for the metric value. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void AddDistribution(const FString& Key, float Value, FSentryUnit Unit); + void AddDistribution(const FString& Key, float Value, const FSentryUnit& Unit); /** * Emits a Distribution metric with attributes. @@ -244,7 +244,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Attributes Structured attributes to attach to the metric. */ UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) - void AddDistributionWithAttributes(const FString& Key, float Value, FSentryUnit Unit, const TMap& Attributes); + void AddDistributionWithAttributes(const FString& Key, float Value, const FSentryUnit& Unit, const TMap& Attributes); /** * Emits a Gauge metric. @@ -255,7 +255,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Unit The unit of measurement for the metric value. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void AddGauge(const FString& Key, float Value, FSentryUnit Unit); + void AddGauge(const FString& Key, float Value, const FSentryUnit& Unit); /** * Emits a Gauge metric with attributes. @@ -266,7 +266,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem * @param Attributes Structured attributes to attach to the metric. */ UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "Attributes")) - void AddGaugeWithAttributes(const FString& Key, float Value, FSentryUnit Unit, const TMap& Attributes); + void AddGaugeWithAttributes(const FString& Key, float Value, const FSentryUnit& Unit, const TMap& Attributes); /** * Clear all breadcrumbs of the current Scope. From bbb987f7950f74515be2140d6ecc2b6769cbaada Mon Sep 17 00:00:00 2001 From: Sentry Github Bot Date: Fri, 6 Feb 2026 11:36:23 +0000 Subject: [PATCH 21/38] Format code --- .../Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index 2d95f8437..08516f30d 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -205,7 +205,7 @@ void FAndroidSentrySubsystem::AddDistribution(const FString& Key, float Value, c { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricDistribution", "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", - *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, *FSentryJavaObjectWrapper::GetJString(Unit), attributesMap->GetJObject()); + *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, *FSentryJavaObjectWrapper::GetJString(Unit), attributesMap->GetJObject()); } void FAndroidSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) From 1e6a68fdd795e71e94ca1fc2c9744876ec7a5b81 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 13:41:43 +0200 Subject: [PATCH 22/38] Propagate metrics setting on Android and Apple --- .../Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp | 1 + .../Source/Sentry/Private/Android/Java/SentryBridgeJava.java | 1 + plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp | 1 + 3 files changed, 3 insertions(+) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index 2d95f8437..5c719e529 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -67,6 +67,7 @@ void FAndroidSentrySubsystem::InitWithSettings(const USentrySettings* settings, SettingsJson->SetBoolField(TEXT("enableAnrTracking"), settings->EnableAppNotRespondingTracking); SettingsJson->SetBoolField(TEXT("enableAutoLogAttachment"), settings->EnableAutoLogAttachment); SettingsJson->SetBoolField(TEXT("enableStructuredLogging"), settings->EnableStructuredLogging); + SettingsJson->SetBoolField(TEXT("enableMetrics"), settings->EnableMetrics); if (settings->EnableTracing && settings->SamplingType == ESentryTracesSamplingType::UniformSampleRate) { SettingsJson->SetNumberField(TEXT("tracesSampleRate"), settings->TracesSampleRate); diff --git a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java index f127c4d19..b50500b33 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java +++ b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java @@ -77,6 +77,7 @@ public void configure(SentryAndroidOptions options) { } options.setAnrEnabled(settingJson.getBoolean("enableAnrTracking")); options.getLogs().setEnabled(settingJson.getBoolean("enableStructuredLogging")); + options.getMetrics().setEnabled(settingJson.getBoolean("enableMetrics")); if(settingJson.has("tracesSampleRate")) { options.setTracesSampleRate(settingJson.getDouble("tracesSampleRate")); } diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index 4a0aff37d..c3025c861 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -65,6 +65,7 @@ void FAppleSentrySubsystem::InitWithSettings(const USentrySettings* settings, US options.sendDefaultPii = settings->SendDefaultPii; options.maxAttachmentSize = settings->MaxAttachmentSize; options.enableLogs = settings->EnableStructuredLogging; + options.experimental.enableMetrics = settings->EnableMetrics; #if SENTRY_UIKIT_AVAILABLE options.attachScreenshot = settings->AttachScreenshot; #endif From 26a077dcc265860c24478b4ffa793abea81fbde1 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 14:23:07 +0200 Subject: [PATCH 23/38] Add before send metric handler --- .../Private/Android/AndroidSentryMetric.cpp | 134 ++++++++++++++++ .../Private/Android/AndroidSentryMetric.h | 43 ++++++ .../Android/AndroidSentrySubsystem.cpp | 6 +- .../Private/Android/AndroidSentrySubsystem.h | 2 +- .../AndroidSentryJavaClasses.cpp | 2 + .../Infrastructure/AndroidSentryJavaClasses.h | 1 + .../Android/Java/SentryBridgeJava.java | 89 +++++++++++ .../Private/Android/Jni/AndroidSentryJni.cpp | 20 +++ .../Private/Apple/AppleSentrySubsystem.cpp | 2 +- .../Private/Apple/AppleSentrySubsystem.h | 2 +- .../GenericPlatformSentryMetric.cpp | 143 ++++++++++++++++++ .../GenericPlatformSentryMetric.h | 41 +++++ .../GenericPlatformSentrySubsystem.cpp | 49 +++++- .../GenericPlatformSentrySubsystem.h | 6 +- .../Sentry/Private/HAL/PlatformSentryMetric.h | 18 +++ .../Sentry/Private/IOS/IOSSentrySubsystem.cpp | 4 +- .../Sentry/Private/IOS/IOSSentrySubsystem.h | 2 +- .../Private/Interface/SentryMetricInterface.h | 30 ++++ .../Interface/SentrySubsystemInterface.h | 3 +- .../Private/Linux/LinuxSentrySubsystem.cpp | 4 +- .../Private/Linux/LinuxSentrySubsystem.h | 2 +- .../Sentry/Private/Mac/MacSentrySubsystem.cpp | 4 +- .../Sentry/Private/Mac/MacSentrySubsystem.h | 2 +- .../Microsoft/MicrosoftSentrySubsystem.cpp | 4 +- .../Microsoft/MicrosoftSentrySubsystem.h | 2 +- .../Sentry/Private/Null/NullSentryMetric.h | 29 ++++ .../Sentry/Private/Null/NullSentrySubsystem.h | 2 +- .../Private/SentryBeforeMetricHandler.cpp | 9 ++ .../Source/Sentry/Private/SentryMetric.cpp | 102 +++++++++++++ .../Source/Sentry/Private/SentrySubsystem.cpp | 8 +- .../Windows/WindowsSentrySubsystem.cpp | 4 +- .../Private/Windows/WindowsSentrySubsystem.h | 2 +- .../Sentry/Public/SentryBeforeMetricHandler.h | 21 +++ .../Source/Sentry/Public/SentryMetric.h | 77 ++++++++++ .../Source/Sentry/Public/SentrySettings.h | 5 + .../Source/Sentry/Public/SentrySubsystem.h | 4 + 36 files changed, 854 insertions(+), 24 deletions(-) create mode 100644 plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp create mode 100644 plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.h create mode 100644 plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.cpp create mode 100644 plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.h create mode 100644 plugin-dev/Source/Sentry/Private/HAL/PlatformSentryMetric.h create mode 100644 plugin-dev/Source/Sentry/Private/Interface/SentryMetricInterface.h create mode 100644 plugin-dev/Source/Sentry/Private/Null/NullSentryMetric.h create mode 100644 plugin-dev/Source/Sentry/Private/SentryBeforeMetricHandler.cpp create mode 100644 plugin-dev/Source/Sentry/Private/SentryMetric.cpp create mode 100644 plugin-dev/Source/Sentry/Public/SentryBeforeMetricHandler.h create mode 100644 plugin-dev/Source/Sentry/Public/SentryMetric.h diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp new file mode 100644 index 000000000..beca54d23 --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp @@ -0,0 +1,134 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "AndroidSentryMetric.h" + +#include "Infrastructure/AndroidSentryConverters.h" +#include "Infrastructure/AndroidSentryJavaClasses.h" + +FAndroidSentryMetric::FAndroidSentryMetric() + : FSentryJavaObjectWrapper(SentryJavaClasses::SentryMetricsEvent, "()V") +{ + SetupClassMethods(); +} + +FAndroidSentryMetric::FAndroidSentryMetric(jobject metricEvent) + : FSentryJavaObjectWrapper(SentryJavaClasses::SentryMetricsEvent, metricEvent) +{ + SetupClassMethods(); +} + +void FAndroidSentryMetric::SetupClassMethods() +{ + SetNameMethod = GetMethod("setName", "(Ljava/lang/String;)V"); + GetNameMethod = GetMethod("getName", "()Ljava/lang/String;"); + SetTypeMethod = GetMethod("setType", "(Ljava/lang/String;)V"); + GetTypeMethod = GetMethod("getType", "()Ljava/lang/String;"); + SetValueMethod = GetMethod("setValue", "(Ljava/lang/Double;)V"); + GetValueMethod = GetMethod("getValue", "()Ljava/lang/Double;"); + SetUnitMethod = GetMethod("setUnit", "(Ljava/lang/String;)V"); + GetUnitMethod = GetMethod("getUnit", "()Ljava/lang/String;"); +} + +void FAndroidSentryMetric::SetName(const FString& name) +{ + CallMethod(SetNameMethod, *GetJString(name)); +} + +FString FAndroidSentryMetric::GetName() const +{ + return CallMethod(GetNameMethod); +} + +void FAndroidSentryMetric::SetType(const FString& type) +{ + CallMethod(SetTypeMethod, *GetJString(type)); +} + +FString FAndroidSentryMetric::GetType() const +{ + return CallMethod(GetTypeMethod); +} + +void FAndroidSentryMetric::SetValue(double value) +{ + TSharedPtr javaDouble = MakeShareable(new FSentryJavaObjectWrapper(SentryJavaClasses::Double, "(D)V", value)); + CallMethod(SetValueMethod, javaDouble->GetJObject()); +} + +double FAndroidSentryMetric::GetValue() const +{ + auto valueObject = CallObjectMethod(GetValueMethod); + if (!valueObject) + { + return 0.0; + } + + FSentryJavaObjectWrapper valueWrapper(SentryJavaClasses::Double, *valueObject); + FSentryJavaMethod doubleValueMethod = valueWrapper.GetMethod("doubleValue", "()D"); + return valueWrapper.CallMethod(doubleValueMethod); +} + +void FAndroidSentryMetric::SetUnit(const FString& unit) +{ + CallMethod(SetUnitMethod, *GetJString(unit)); +} + +FString FAndroidSentryMetric::GetUnit() const +{ + return CallMethod(GetUnitMethod); +} + +void FAndroidSentryMetric::SetAttribute(const FString& key, const FSentryVariant& value) +{ + TSharedPtr attribute = FAndroidSentryConverters::VariantToNative(value); + + if (!attribute) + { + return; + } + + CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "setMetricAttribute", "(Lio/sentry/SentryMetricsEvent;Ljava/lang/String;Ljava/lang/Object;)V", + GetJObject(), *GetJString(key), attribute->GetJObject()); +} + +FSentryVariant FAndroidSentryMetric::GetAttribute(const FString& key) const +{ + auto attribute = CallStaticObjectMethod(SentryJavaClasses::SentryBridgeJava, "getMetricAttribute", "(Lio/sentry/SentryMetricsEvent;Ljava/lang/String;)Ljava/lang/Object;", + GetJObject(), *GetJString(key)); + + if (!attribute) + { + return FSentryVariant(); + } + + return FAndroidSentryConverters::VariantToUnreal(*attribute); +} + +bool FAndroidSentryMetric::TryGetAttribute(const FString& key, FSentryVariant& value) const +{ + auto attribute = CallStaticObjectMethod(SentryJavaClasses::SentryBridgeJava, "getMetricAttribute", "(Lio/sentry/SentryMetricsEvent;Ljava/lang/String;)Ljava/lang/Object;", + GetJObject(), *GetJString(key)); + + if (!attribute) + { + return false; + } + + value = FAndroidSentryConverters::VariantToUnreal(*attribute); + + return true; +} + +void FAndroidSentryMetric::RemoveAttribute(const FString& key) +{ + CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "removeMetricAttribute", "(Lio/sentry/SentryMetricsEvent;Ljava/lang/String;)V", + GetJObject(), *GetJString(key)); +} + +void FAndroidSentryMetric::AddAttributes(const TMap& attributes) +{ + for (const auto& pair : attributes) + { + SetAttribute(pair.Key, pair.Value); + } +} diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.h new file mode 100644 index 000000000..fa80b8cda --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.h @@ -0,0 +1,43 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "Interface/SentryMetricInterface.h" + +#include "Infrastructure/AndroidSentryJavaObjectWrapper.h" + +class FAndroidSentryMetric : public ISentryMetric, public FSentryJavaObjectWrapper +{ +public: + FAndroidSentryMetric(); + FAndroidSentryMetric(jobject metricEvent); + + void SetupClassMethods(); + + virtual void SetName(const FString& name) override; + virtual FString GetName() const override; + virtual void SetType(const FString& type) override; + virtual FString GetType() const override; + virtual void SetValue(double value) override; + virtual double GetValue() const override; + virtual void SetUnit(const FString& unit) override; + virtual FString GetUnit() const override; + + virtual void SetAttribute(const FString& key, const FSentryVariant& value) override; + virtual FSentryVariant GetAttribute(const FString& key) const override; + virtual bool TryGetAttribute(const FString& key, FSentryVariant& value) const override; + virtual void RemoveAttribute(const FString& key) override; + virtual void AddAttributes(const TMap& attributes) override; + +private: + FSentryJavaMethod SetNameMethod; + FSentryJavaMethod GetNameMethod; + FSentryJavaMethod SetTypeMethod; + FSentryJavaMethod GetTypeMethod; + FSentryJavaMethod SetValueMethod; + FSentryJavaMethod GetValueMethod; + FSentryJavaMethod SetUnitMethod; + FSentryJavaMethod GetUnitMethod; +}; + +typedef FAndroidSentryMetric FPlatformSentryMetric; diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index c3348b9ca..eb1c2b06e 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -45,7 +45,7 @@ FAndroidSentrySubsystem::~FAndroidSentrySubsystem() SentryJavaClasses::ClearJavaClassRefsCache(); } -void FAndroidSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) +void FAndroidSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) { isScreenshotAttachmentEnabled = settings->AttachScreenshot; @@ -88,6 +88,10 @@ void FAndroidSentrySubsystem::InitWithSettings(const USentrySettings* settings, { SettingsJson->SetNumberField(TEXT("beforeLogHandler"), (jlong)beforeLogHandler); } + if (beforeMetricHandler != nullptr) + { + SettingsJson->SetNumberField(TEXT("beforeMetricHandler"), (jlong)beforeMetricHandler); + } FString SettingsJsonStr; TSharedRef> JsonWriter = TJsonWriterFactory<>::Create(&SettingsJsonStr); diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h index 67e5f396d..f6af60494 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h @@ -10,7 +10,7 @@ class FAndroidSentrySubsystem : public ISentrySubsystem FAndroidSentrySubsystem(); ~FAndroidSentrySubsystem(); - virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) override; + virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) override; virtual void Close() override; virtual bool IsEnabled() override; virtual ESentryCrashedLastRun IsCrashedLastRun() override; diff --git a/plugin-dev/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.cpp b/plugin-dev/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.cpp index 54e6c23b0..352392c8f 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.cpp @@ -29,6 +29,7 @@ const FSentryJavaClass SentryJavaClasses::TransactionOptions = FSentryJavaClass const FSentryJavaClass SentryJavaClasses::SentryTraceHeader = FSentryJavaClass { "io/sentry/SentryTraceHeader", ESentryJavaClassType::External }; const FSentryJavaClass SentryJavaClasses::SentryLogEvent = FSentryJavaClass { "io/sentry/SentryLogEvent", ESentryJavaClassType::External }; const FSentryJavaClass SentryJavaClasses::SentryLogLevel = FSentryJavaClass { "io/sentry/SentryLogLevel", ESentryJavaClassType::External }; +const FSentryJavaClass SentryJavaClasses::SentryMetricsEvent = FSentryJavaClass { "io/sentry/SentryMetricsEvent", ESentryJavaClassType::External }; // System Java classes definitions const FSentryJavaClass SentryJavaClasses::ArrayList = FSentryJavaClass { "java/util/ArrayList", ESentryJavaClassType::System }; @@ -73,6 +74,7 @@ void SentryJavaClasses::InitJavaClassRefsCache() JavaClassRefsCache.Add(SentryTraceHeader.Name, FindJavaClassRef(SentryTraceHeader)); JavaClassRefsCache.Add(SentryLogEvent.Name, FindJavaClassRef(SentryLogEvent)); JavaClassRefsCache.Add(SentryLogLevel.Name, FindJavaClassRef(SentryLogLevel)); + JavaClassRefsCache.Add(SentryMetricsEvent.Name, FindJavaClassRef(SentryMetricsEvent)); // System Java classes definitions JavaClassRefsCache.Add(ArrayList.Name, FindJavaClassRef(ArrayList)); diff --git a/plugin-dev/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.h b/plugin-dev/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.h index a9d0478cf..c522cb715 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.h +++ b/plugin-dev/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.h @@ -29,6 +29,7 @@ struct SentryJavaClasses const static FSentryJavaClass SentryTraceHeader; const static FSentryJavaClass SentryLogEvent; const static FSentryJavaClass SentryLogLevel; + const static FSentryJavaClass SentryMetricsEvent; // System Java classes const static FSentryJavaClass ArrayList; diff --git a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java index b50500b33..1a1fb3dd8 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java +++ b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java @@ -39,6 +39,7 @@ import io.sentry.SentryLogEventAttributeValue; import io.sentry.logger.SentryLogParameters; import io.sentry.SentryLogLevel; +import io.sentry.SentryMetricsEvent; import io.sentry.metrics.SentryMetricsParameters; public class SentryBridgeJava { @@ -46,6 +47,7 @@ public class SentryBridgeJava { public static native SentryEvent onBeforeSend(long handlerAddr, SentryEvent event, Hint hint); public static native Breadcrumb onBeforeBreadcrumb(long handlerAddr, Breadcrumb breadcrumb, Hint hint); public static native SentryLogEvent onBeforeLog(long handlerAddr, SentryLogEvent logEvent); + public static native SentryMetricsEvent onBeforeMetric(long handlerAddr, SentryMetricsEvent metricEvent); public static native float onTracesSampler(long samplerAddr, SamplingContext samplingContext); public static native String getLogFilePath(boolean isCrash); public static native String getScreenshotFilePath(); @@ -116,6 +118,9 @@ public Breadcrumb execute(Breadcrumb breadcrumb, Hint hint) { if (settingJson.has("beforeLogHandler")) { options.getLogs().setBeforeSend(new SentryUnrealBeforeLogCallback(settingJson.getLong("beforeLogHandler"))); } + if (settingJson.has("beforeMetricHandler")) { + options.getMetrics().setBeforeSend(new SentryUnrealBeforeMetricCallback(settingJson.getLong("beforeMetricHandler"))); + } } catch (JSONException e) { throw new RuntimeException(e); } @@ -387,6 +392,74 @@ public static void removeLogAttribute(final SentryLogEvent logEvent, final Strin } } + public static void setMetricAttribute(final SentryMetricsEvent metricEvent, final String key, final Object value) { + if (metricEvent == null || key == null || value == null) { + return; + } + + SentryLogEventAttributeValue attributeValue; + + if (value instanceof String) { + attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.STRING, value); + } else if (value instanceof Integer) { + attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.INTEGER, value); + } else if (value instanceof Boolean) { + attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.BOOLEAN, value); + } else if (value instanceof Float) { + // Unreal's variant doesn't support Double so manual conversion is required + attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.DOUBLE, ((Float) value).doubleValue()); + } else { + // Unsupported type (e.g. ArrayList, HashMap) - convert to JSON string for consistency with other platforms + String jsonString; + if (value instanceof java.util.List) { + jsonString = new JSONArray((java.util.List) value).toString(); + } else if (value instanceof java.util.Map) { + jsonString = new JSONObject((java.util.Map) value).toString(); + } else { + jsonString = value.toString(); + } + attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.STRING, jsonString); + } + + metricEvent.setAttribute(key, attributeValue); + } + + public static Object getMetricAttribute(final SentryMetricsEvent metricEvent, final String key) { + if (metricEvent == null || key == null) { + return null; + } + + Map attributes = metricEvent.getAttributes(); + if (attributes == null) { + return null; + } + + SentryLogEventAttributeValue attributeValue = attributes.get(key); + if (attributeValue == null) { + return null; + } + + Object value = attributeValue.getValue(); + + if (value instanceof Double) { + // Unreal's variant doesn't support Double so manual conversion is required + return ((Double) attributeValue.getValue()).floatValue(); + } + + return value; + } + + public static void removeMetricAttribute(final SentryMetricsEvent metricEvent, final String key) { + if (metricEvent == null || key == null) { + return; + } + + Map attributes = metricEvent.getAttributes(); + if (attributes != null) { + attributes.remove(key); + } + } + private static class SentryUnrealBeforeSendCallback implements SentryOptions.BeforeSendCallback { private final boolean attachLog; private final boolean attachScreenshot; @@ -456,6 +529,22 @@ public SentryLogEvent execute(SentryLogEvent logEvent) { } } + private static class SentryUnrealBeforeMetricCallback implements SentryOptions.Metrics.BeforeSendMetricCallback { + private final long beforeMetricAddr; + + public SentryUnrealBeforeMetricCallback(long beforeMetricAddr) { + this.beforeMetricAddr = beforeMetricAddr; + } + + @Override + public SentryMetricsEvent execute(SentryMetricsEvent metricEvent, Hint hint) { + if (beforeMetricAddr != 0) { + return onBeforeMetric(beforeMetricAddr, metricEvent); + } + return metricEvent; + } + } + private static byte[] readFileToBytes(File file) throws Exception { FileInputStream fis = new FileInputStream(file); try { diff --git a/plugin-dev/Source/Sentry/Private/Android/Jni/AndroidSentryJni.cpp b/plugin-dev/Source/Sentry/Private/Android/Jni/AndroidSentryJni.cpp index 1aca295dd..8768e3a8d 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Jni/AndroidSentryJni.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/Jni/AndroidSentryJni.cpp @@ -4,6 +4,7 @@ #include "Android/AndroidSentryEvent.h" #include "Android/AndroidSentryHint.h" #include "Android/AndroidSentryLog.h" +#include "Android/AndroidSentryMetric.h" #include "Android/AndroidSentrySamplingContext.h" #include "Android/AndroidSentryScope.h" #include "Android/AndroidSentrySubsystem.h" @@ -15,12 +16,14 @@ #include "SentryBeforeBreadcrumbHandler.h" #include "SentryBeforeLogHandler.h" +#include "SentryBeforeMetricHandler.h" #include "SentryBeforeSendHandler.h" #include "SentryBreadcrumb.h" #include "SentryDefines.h" #include "SentryEvent.h" #include "SentryHint.h" #include "SentryLog.h" +#include "SentryMetric.h" #include "SentrySamplingContext.h" #include "SentryTraceSampler.h" @@ -100,6 +103,23 @@ JNI_METHOD jobject Java_io_sentry_unreal_SentryBridgeJava_onBeforeLog(JNIEnv* en return ProcessedLogData ? logEvent : nullptr; } +JNI_METHOD jobject Java_io_sentry_unreal_SentryBridgeJava_onBeforeMetric(JNIEnv* env, jclass clazz, jlong objAddr, jobject metricEvent) +{ + if (!SentryCallbackUtils::IsCallbackSafeToRun()) + { + // Metric will be sent without calling a `onBeforeMetric` handler + return metricEvent; + } + + USentryBeforeMetricHandler* handler = reinterpret_cast(objAddr); + + USentryMetric* MetricDataToProcess = USentryMetric::Create(MakeShareable(new FAndroidSentryMetric(metricEvent))); + + USentryMetric* ProcessedMetricData = handler->HandleBeforeMetric(MetricDataToProcess); + + return ProcessedMetricData ? metricEvent : nullptr; +} + JNI_METHOD jfloat Java_io_sentry_unreal_SentryBridgeJava_onTracesSampler(JNIEnv* env, jclass clazz, jlong objAddr, jobject samplingContext) { if (!SentryCallbackUtils::IsCallbackSafeToRun()) diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index c3025c861..5901d9b36 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -41,7 +41,7 @@ #include "UObject/GarbageCollection.h" #include "UObject/UObjectThreadContext.h" -void FAppleSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) +void FAppleSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) { isScreenshotAttachmentEnabled = settings->AttachScreenshot; isGameLogAttachmentEnabled = settings->EnableAutoLogAttachment; diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h index 2b9197171..57b226945 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h @@ -7,7 +7,7 @@ class FAppleSentrySubsystem : public ISentrySubsystem { public: - virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) override; + virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) override; virtual void Close() override; virtual bool IsEnabled() override; virtual ESentryCrashedLastRun IsCrashedLastRun() override; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.cpp new file mode 100644 index 000000000..e79b00b9f --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.cpp @@ -0,0 +1,143 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "GenericPlatformSentryMetric.h" + +#if USE_SENTRY_NATIVE + +#include "Infrastructure/GenericPlatformSentryConverters.h" + +FGenericPlatformSentryMetric::FGenericPlatformSentryMetric() +{ + Metric = sentry_value_new_object(); +} + +FGenericPlatformSentryMetric::FGenericPlatformSentryMetric(sentry_value_t metric) +{ + Metric = metric; +} + +sentry_value_t FGenericPlatformSentryMetric::GetNativeObject() +{ + return Metric; +} + +void FGenericPlatformSentryMetric::SetName(const FString& name) +{ + sentry_value_set_by_key(Metric, "name", sentry_value_new_string(TCHAR_TO_UTF8(*name))); +} + +FString FGenericPlatformSentryMetric::GetName() const +{ + sentry_value_t name = sentry_value_get_by_key(Metric, "name"); + return FString(UTF8_TO_TCHAR(sentry_value_as_string(name))); +} + +void FGenericPlatformSentryMetric::SetType(const FString& type) +{ + sentry_value_set_by_key(Metric, "type", sentry_value_new_string(TCHAR_TO_UTF8(*type))); +} + +FString FGenericPlatformSentryMetric::GetType() const +{ + sentry_value_t type = sentry_value_get_by_key(Metric, "type"); + return FString(UTF8_TO_TCHAR(sentry_value_as_string(type))); +} + +void FGenericPlatformSentryMetric::SetValue(double value) +{ + sentry_value_set_by_key(Metric, "value", sentry_value_new_double(value)); +} + +double FGenericPlatformSentryMetric::GetValue() const +{ + sentry_value_t value = sentry_value_get_by_key(Metric, "value"); + return sentry_value_as_double(value); +} + +void FGenericPlatformSentryMetric::SetUnit(const FString& unit) +{ + sentry_value_set_by_key(Metric, "unit", sentry_value_new_string(TCHAR_TO_UTF8(*unit))); +} + +FString FGenericPlatformSentryMetric::GetUnit() const +{ + sentry_value_t unit = sentry_value_get_by_key(Metric, "unit"); + return FString(UTF8_TO_TCHAR(sentry_value_as_string(unit))); +} + +void FGenericPlatformSentryMetric::SetAttribute(const FString& key, const FSentryVariant& value) +{ + sentry_value_t attributes = sentry_value_get_by_key(Metric, "attributes"); + if (sentry_value_is_null(attributes)) + { + attributes = sentry_value_new_object(); + sentry_value_set_by_key(Metric, "attributes", attributes); + } + + sentry_value_t attribute = FGenericPlatformSentryConverters::VariantToAttributeNative(value); + sentry_value_set_by_key(attributes, TCHAR_TO_UTF8(*key), attribute); +} + +FSentryVariant FGenericPlatformSentryMetric::GetAttribute(const FString& key) const +{ + sentry_value_t attributes = sentry_value_get_by_key(Metric, "attributes"); + if (sentry_value_is_null(attributes)) + { + return FSentryVariant(); + } + + sentry_value_t attribute = sentry_value_get_by_key(attributes, TCHAR_TO_UTF8(*key)); + if (sentry_value_is_null(attribute)) + { + return FSentryVariant(); + } + + sentry_value_t attributeValue = sentry_value_get_by_key(attribute, "value"); + return FGenericPlatformSentryConverters::VariantToUnreal(attributeValue); +} + +bool FGenericPlatformSentryMetric::TryGetAttribute(const FString& key, FSentryVariant& value) const +{ + sentry_value_t attributes = sentry_value_get_by_key(Metric, "attributes"); + if (sentry_value_is_null(attributes)) + { + return false; + } + + sentry_value_t attribute = sentry_value_get_by_key(attributes, TCHAR_TO_UTF8(*key)); + if (sentry_value_is_null(attribute)) + { + return false; + } + + sentry_value_t attributeValue = sentry_value_get_by_key(attribute, "value"); + if (sentry_value_is_null(attributeValue)) + { + return false; + } + + value = FGenericPlatformSentryConverters::VariantToUnreal(attributeValue); + + return true; +} + +void FGenericPlatformSentryMetric::RemoveAttribute(const FString& key) +{ + sentry_value_t attributes = sentry_value_get_by_key(Metric, "attributes"); + if (sentry_value_is_null(attributes)) + { + return; + } + + sentry_value_remove_by_key(attributes, TCHAR_TO_UTF8(*key)); +} + +void FGenericPlatformSentryMetric::AddAttributes(const TMap& attributes) +{ + for (const auto& pair : attributes) + { + SetAttribute(pair.Key, pair.Value); + } +} + +#endif // USE_SENTRY_NATIVE diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.h new file mode 100644 index 000000000..14ce95971 --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.h @@ -0,0 +1,41 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "Convenience/GenericPlatformSentryInclude.h" + +#include "Interface/SentryMetricInterface.h" + +#if USE_SENTRY_NATIVE + +class FGenericPlatformSentryMetric : public ISentryMetric +{ +public: + FGenericPlatformSentryMetric(); + FGenericPlatformSentryMetric(sentry_value_t metric); + virtual ~FGenericPlatformSentryMetric() override = default; + + sentry_value_t GetNativeObject(); + + virtual void SetName(const FString& name) override; + virtual FString GetName() const override; + virtual void SetType(const FString& type) override; + virtual FString GetType() const override; + virtual void SetValue(double value) override; + virtual double GetValue() const override; + virtual void SetUnit(const FString& unit) override; + virtual FString GetUnit() const override; + + virtual void SetAttribute(const FString& key, const FSentryVariant& value) override; + virtual FSentryVariant GetAttribute(const FString& key) const override; + virtual bool TryGetAttribute(const FString& key, FSentryVariant& value) const override; + virtual void RemoveAttribute(const FString& key) override; + virtual void AddAttributes(const TMap& attributes) override; + +private: + sentry_value_t Metric; +}; + +typedef FGenericPlatformSentryMetric FPlatformSentryMetric; + +#endif // USE_SENTRY_NATIVE diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 0d07ea0ec..691c69753 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -7,6 +7,7 @@ #include "GenericPlatformSentryFeedback.h" #include "GenericPlatformSentryId.h" #include "GenericPlatformSentryLog.h" +#include "GenericPlatformSentryMetric.h" #include "GenericPlatformSentrySamplingContext.h" #include "GenericPlatformSentryScope.h" #include "GenericPlatformSentryTransaction.h" @@ -15,11 +16,13 @@ #include "SentryBeforeBreadcrumbHandler.h" #include "SentryBeforeLogHandler.h" +#include "SentryBeforeMetricHandler.h" #include "SentryBeforeSendHandler.h" #include "SentryBreadcrumb.h" #include "SentryDefines.h" #include "SentryEvent.h" #include "SentryLog.h" +#include "SentryMetric.h" #include "SentryModule.h" #include "SentrySamplingContext.h" #include "SentrySettings.h" @@ -113,6 +116,16 @@ static void PrintVerboseLog(sentry_level_t level, const char* message, va_list a return log; } +/* static */ sentry_value_t FGenericPlatformSentrySubsystem::HandleBeforeMetric(sentry_value_t metric, void* closure) +{ + if (closure) + { + return StaticCast(closure)->OnBeforeMetric(metric, closure); + } + + return metric; +} + sentry_value_t FGenericPlatformSentrySubsystem::OnBeforeSend(sentry_value_t event, void* hint, void* closure, bool isCrash) { if (!closure || this != closure) @@ -195,6 +208,33 @@ sentry_value_t FGenericPlatformSentrySubsystem::OnBeforeLog(sentry_value_t log, return ProcessedLogData ? log : sentry_value_new_null(); } +sentry_value_t FGenericPlatformSentrySubsystem::OnBeforeMetric(sentry_value_t metric, void* closure) +{ + if (!closure || this != closure) + { + return metric; + } + + USentryBeforeMetricHandler* Handler = GetBeforeMetricHandler(); + if (!Handler) + { + // If custom handler isn't set skip further processing + return metric; + } + + if (!SentryCallbackUtils::IsCallbackSafeToRun()) + { + return metric; + } + + // Create USentryMetric object using the metric wrapper + USentryMetric* MetricData = USentryMetric::Create(MakeShareable(new FGenericPlatformSentryMetric(metric))); + + USentryMetric* ProcessedMetricData = Handler->HandleBeforeMetric(MetricData); + + return ProcessedMetricData ? metric : sentry_value_new_null(); +} + sentry_value_t FGenericPlatformSentrySubsystem::OnCrash(const sentry_ucontext_t* uctx, sentry_value_t event, void* closure) { if (isScreenshotAttachmentEnabled) @@ -307,11 +347,12 @@ FGenericPlatformSentrySubsystem::FGenericPlatformSentrySubsystem() { } -void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) +void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) { beforeSend = beforeSendHandler; beforeBreadcrumb = beforeBreadcrumbHandler; beforeLog = beforeLogHandler; + beforeMetric = beforeMetricHandler; sampler = traceSampler; sentry_options_t* options = sentry_options_new(); @@ -383,6 +424,7 @@ void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* se sentry_options_set_enable_logs(options, settings->EnableStructuredLogging); sentry_options_set_logs_with_attributes(options, true); sentry_options_set_enable_metrics(options, settings->EnableMetrics); + sentry_options_set_before_send_metric(options, HandleBeforeMetric, this); if (settings->bRequireUserConsent) { @@ -857,6 +899,11 @@ USentryBeforeLogHandler* FGenericPlatformSentrySubsystem::GetBeforeLogHandler() return beforeLog; } +USentryBeforeMetricHandler* FGenericPlatformSentrySubsystem::GetBeforeMetricHandler() const +{ + return beforeMetric; +} + USentryTraceSampler* FGenericPlatformSentrySubsystem::GetTraceSampler() const { return sampler; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index 3e6ff377f..84a0d6a0a 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -19,7 +19,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem public: FGenericPlatformSentrySubsystem(); - virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) override; + virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) override; virtual void Close() override; virtual bool IsEnabled() override; virtual ESentryCrashedLastRun IsCrashedLastRun() override; @@ -64,6 +64,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem USentryBeforeSendHandler* GetBeforeSendHandler() const; USentryBeforeBreadcrumbHandler* GetBeforeBreadcrumbHandler() const; USentryBeforeLogHandler* GetBeforeLogHandler() const; + USentryBeforeMetricHandler* GetBeforeMetricHandler() const; USentryTraceSampler* GetTraceSampler() const; void TryCaptureScreenshot(); @@ -84,6 +85,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 OnBeforeLog(sentry_value_t log, void* closure); + virtual sentry_value_t OnBeforeMetric(sentry_value_t metric, 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); @@ -103,12 +105,14 @@ 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 HandleBeforeLog(sentry_value_t log, void* closure); + static sentry_value_t HandleBeforeMetric(sentry_value_t metric, 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, void* closure); USentryBeforeSendHandler* beforeSend; USentryBeforeBreadcrumbHandler* beforeBreadcrumb; USentryBeforeLogHandler* beforeLog; + USentryBeforeMetricHandler* beforeMetric; USentryTraceSampler* sampler; TSharedPtr crashReporter; diff --git a/plugin-dev/Source/Sentry/Private/HAL/PlatformSentryMetric.h b/plugin-dev/Source/Sentry/Private/HAL/PlatformSentryMetric.h new file mode 100644 index 000000000..8bbc3de9d --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/HAL/PlatformSentryMetric.h @@ -0,0 +1,18 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "HAL/Platform.h" + +#if PLATFORM_ANDROID +#include "Android/AndroidSentryMetric.h" +#elif USE_SENTRY_NATIVE +#include "GenericPlatform/GenericPlatformSentryMetric.h" +#else +#include "Null/NullSentryMetric.h" +#endif + +static TSharedPtr CreateSharedSentryMetric() +{ + return MakeShareable(new FPlatformSentryMetric); +} diff --git a/plugin-dev/Source/Sentry/Private/IOS/IOSSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/IOS/IOSSentrySubsystem.cpp index 38264e51d..d7eacb407 100644 --- a/plugin-dev/Source/Sentry/Private/IOS/IOSSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/IOS/IOSSentrySubsystem.cpp @@ -81,14 +81,14 @@ void InstallSentrySignalHandler() sigaction(SIGSYS, &Action, NULL); } -void FIOSSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) +void FIOSSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) { GIOSSentrySubsystem = this; SaveDefaultSignalHandlers(); InstallSentrySignalHandler(); - FAppleSentrySubsystem::InitWithSettings(settings, beforeSendHandler, beforeBreadcrumbHandler, beforeLogHandler, traceSampler); + FAppleSentrySubsystem::InitWithSettings(settings, beforeSendHandler, beforeBreadcrumbHandler, beforeLogHandler, beforeMetricHandler, traceSampler); } void FIOSSentrySubsystem::HandleAssert() diff --git a/plugin-dev/Source/Sentry/Private/IOS/IOSSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/IOS/IOSSentrySubsystem.h index 4d0f5133d..0c61d0cf0 100644 --- a/plugin-dev/Source/Sentry/Private/IOS/IOSSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/IOS/IOSSentrySubsystem.h @@ -7,7 +7,7 @@ class FIOSSentrySubsystem : public FAppleSentrySubsystem { public: - virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) override; + virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) override; virtual void HandleAssert() override; diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentryMetricInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentryMetricInterface.h new file mode 100644 index 000000000..8b4ed7560 --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/Interface/SentryMetricInterface.h @@ -0,0 +1,30 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" + +#include "SentryDataTypes.h" +#include "SentryVariant.h" + +class ISentryMetric +{ + +public: + virtual ~ISentryMetric() = default; + + virtual void SetName(const FString& name) = 0; + virtual FString GetName() const = 0; + virtual void SetType(const FString& type) = 0; + virtual FString GetType() const = 0; + virtual void SetValue(double value) = 0; + virtual double GetValue() const = 0; + virtual void SetUnit(const FString& unit) = 0; + virtual FString GetUnit() const = 0; + + virtual void SetAttribute(const FString& key, const FSentryVariant& value) = 0; + virtual FSentryVariant GetAttribute(const FString& key) const = 0; + virtual bool TryGetAttribute(const FString& key, FSentryVariant& value) const = 0; + virtual void RemoveAttribute(const FString& key) = 0; + virtual void AddAttributes(const TMap& attributes) = 0; +}; diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h index a9e133424..49299a2b9 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h @@ -22,6 +22,7 @@ class USentrySettings; class USentryBeforeSendHandler; class USentryBeforeLogHandler; class USentryBeforeBreadcrumbHandler; +class USentryBeforeMetricHandler; class USentryTraceSampler; DECLARE_DELEGATE_OneParam(FSentryScopeDelegate, TSharedPtr); @@ -32,7 +33,7 @@ class ISentrySubsystem virtual ~ISentrySubsystem() = default; /** Methods that map directly to the platform's Sentry SDK API */ - virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) = 0; + virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) = 0; virtual void Close() = 0; virtual bool IsEnabled() = 0; virtual ESentryCrashedLastRun IsCrashedLastRun() = 0; diff --git a/plugin-dev/Source/Sentry/Private/Linux/LinuxSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Linux/LinuxSentrySubsystem.cpp index 7382dd207..dbccd6710 100644 --- a/plugin-dev/Source/Sentry/Private/Linux/LinuxSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Linux/LinuxSentrySubsystem.cpp @@ -13,9 +13,9 @@ #if USE_SENTRY_NATIVE -void FLinuxSentrySubsystem::InitWithSettings(const USentrySettings* Settings, USentryBeforeSendHandler* BeforeSendHandler, USentryBeforeBreadcrumbHandler* BeforeBreadcrumbHandler, USentryBeforeLogHandler* BeforeLogHandler, USentryTraceSampler* TraceSampler) +void FLinuxSentrySubsystem::InitWithSettings(const USentrySettings* Settings, USentryBeforeSendHandler* BeforeSendHandler, USentryBeforeBreadcrumbHandler* BeforeBreadcrumbHandler, USentryBeforeLogHandler* BeforeLogHandler, USentryBeforeMetricHandler* BeforeMetricHandler, USentryTraceSampler* TraceSampler) { - FGenericPlatformSentrySubsystem::InitWithSettings(Settings, BeforeSendHandler, BeforeBreadcrumbHandler, BeforeLogHandler, TraceSampler); + FGenericPlatformSentrySubsystem::InitWithSettings(Settings, BeforeSendHandler, BeforeBreadcrumbHandler, BeforeLogHandler, BeforeMetricHandler, TraceSampler); if (Settings->EnableCrashReporterContextPropagation) { diff --git a/plugin-dev/Source/Sentry/Private/Linux/LinuxSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Linux/LinuxSentrySubsystem.h index a83b28ede..c37ccd47d 100644 --- a/plugin-dev/Source/Sentry/Private/Linux/LinuxSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Linux/LinuxSentrySubsystem.h @@ -9,7 +9,7 @@ class FLinuxSentrySubsystem : public FGenericPlatformSentrySubsystem { public: - virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) override; + virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) override; protected: virtual void ConfigureHandlerPath(sentry_options_t* Options) override; diff --git a/plugin-dev/Source/Sentry/Private/Mac/MacSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Mac/MacSentrySubsystem.cpp index 1c9572e1d..43a3d425c 100644 --- a/plugin-dev/Source/Sentry/Private/Mac/MacSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Mac/MacSentrySubsystem.cpp @@ -14,9 +14,9 @@ #include "Misc/FileHelper.h" #include "Misc/Paths.h" -void FMacSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) +void FMacSentrySubsystem::InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) { - FAppleSentrySubsystem::InitWithSettings(settings, beforeSendHandler, beforeBreadcrumbHandler, beforeLogHandler, traceSampler); + FAppleSentrySubsystem::InitWithSettings(settings, beforeSendHandler, beforeBreadcrumbHandler, beforeLogHandler, beforeMetricHandler, traceSampler); if (IsEnabled() && isScreenshotAttachmentEnabled) { diff --git a/plugin-dev/Source/Sentry/Private/Mac/MacSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Mac/MacSentrySubsystem.h index 3ec9a8660..b6de9466a 100644 --- a/plugin-dev/Source/Sentry/Private/Mac/MacSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Mac/MacSentrySubsystem.h @@ -7,7 +7,7 @@ class FMacSentrySubsystem : public FAppleSentrySubsystem { public: - virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) override; + virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) override; virtual void Close() override; virtual TSharedPtr CaptureEnsure(const FString& type, const FString& message) override; diff --git a/plugin-dev/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.cpp index 1e2ecfc18..9100e5310 100644 --- a/plugin-dev/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.cpp @@ -22,7 +22,7 @@ #include "GenericPlatform/GenericPlatformMisc.h" #endif -void FMicrosoftSentrySubsystem::InitWithSettings(const USentrySettings* Settings, USentryBeforeSendHandler* BeforeSendHandler, USentryBeforeBreadcrumbHandler* BeforeBreadcrumbHandler, USentryBeforeLogHandler* BeforeLogHandler, USentryTraceSampler* TraceSampler) +void FMicrosoftSentrySubsystem::InitWithSettings(const USentrySettings* Settings, USentryBeforeSendHandler* BeforeSendHandler, USentryBeforeBreadcrumbHandler* BeforeBreadcrumbHandler, USentryBeforeLogHandler* BeforeLogHandler, USentryBeforeMetricHandler* BeforeMetricHandler, USentryTraceSampler* TraceSampler) { // Initialize crash logger if enabled if (Settings->EnableOnCrashLogging) @@ -39,7 +39,7 @@ void FMicrosoftSentrySubsystem::InitWithSettings(const USentrySettings* Settings } } - FGenericPlatformSentrySubsystem::InitWithSettings(Settings, BeforeSendHandler, BeforeBreadcrumbHandler, BeforeLogHandler, TraceSampler); + FGenericPlatformSentrySubsystem::InitWithSettings(Settings, BeforeSendHandler, BeforeBreadcrumbHandler, BeforeLogHandler, BeforeMetricHandler, TraceSampler); #if !UE_VERSION_OLDER_THAN(5, 2, 0) if (IsEnabled()) diff --git a/plugin-dev/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.h index 07d0f1841..330df65c2 100644 --- a/plugin-dev/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.h @@ -11,7 +11,7 @@ class FMicrosoftSentrySubsystem : public FGenericPlatformSentrySubsystem { public: - virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) override; + virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) override; virtual void Close() override; protected: diff --git a/plugin-dev/Source/Sentry/Private/Null/NullSentryMetric.h b/plugin-dev/Source/Sentry/Private/Null/NullSentryMetric.h new file mode 100644 index 000000000..26389bccb --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/Null/NullSentryMetric.h @@ -0,0 +1,29 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "Interface/SentryMetricInterface.h" + +class FNullSentryMetric : public ISentryMetric +{ +public: + FNullSentryMetric() {} + virtual ~FNullSentryMetric() override = default; + + virtual void SetName(const FString& name) override {} + virtual FString GetName() const override { return FString(); } + virtual void SetType(const FString& type) override {} + virtual FString GetType() const override { return FString(); } + virtual void SetValue(double value) override {} + virtual double GetValue() const override { return 0.0; } + virtual void SetUnit(const FString& unit) override {} + virtual FString GetUnit() const override { return FString(); } + + virtual void SetAttribute(const FString& key, const FSentryVariant& value) override {} + virtual FSentryVariant GetAttribute(const FString& key) const override { return FSentryVariant(); } + virtual bool TryGetAttribute(const FString& key, FSentryVariant& value) const override { return false; } + virtual void RemoveAttribute(const FString& key) override {} + virtual void AddAttributes(const TMap& attributes) override {} +}; + +typedef FNullSentryMetric FPlatformSentryMetric; diff --git a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h index dc2a5c250..f3bfe0562 100644 --- a/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Null/NullSentrySubsystem.h @@ -9,7 +9,7 @@ class FNullSentrySubsystem : public ISentrySubsystem public: virtual ~FNullSentrySubsystem() override = default; - virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryTraceSampler* traceSampler) override {} + virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryBeforeBreadcrumbHandler* beforeBreadcrumbHandler, USentryBeforeLogHandler* beforeLogHandler, USentryBeforeMetricHandler* beforeMetricHandler, USentryTraceSampler* traceSampler) override {} virtual void Close() override {} virtual bool IsEnabled() override { return false; } virtual ESentryCrashedLastRun IsCrashedLastRun() override { return ESentryCrashedLastRun::NotEvaluated; } diff --git a/plugin-dev/Source/Sentry/Private/SentryBeforeMetricHandler.cpp b/plugin-dev/Source/Sentry/Private/SentryBeforeMetricHandler.cpp new file mode 100644 index 000000000..37989835a --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/SentryBeforeMetricHandler.cpp @@ -0,0 +1,9 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "SentryBeforeMetricHandler.h" +#include "SentryMetric.h" + +USentryMetric* USentryBeforeMetricHandler::HandleBeforeMetric_Implementation(USentryMetric* Metric) +{ + return Metric; +} diff --git a/plugin-dev/Source/Sentry/Private/SentryMetric.cpp b/plugin-dev/Source/Sentry/Private/SentryMetric.cpp new file mode 100644 index 000000000..bebce3a8b --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/SentryMetric.cpp @@ -0,0 +1,102 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "SentryMetric.h" + +#include "Interface/SentryMetricInterface.h" + +#include "HAL/PlatformSentryMetric.h" + +void USentryMetric::Initialize() +{ + NativeImpl = MakeShareable(new FPlatformSentryMetric); +} + +void USentryMetric::SetName(const FString& InName) +{ + if (NativeImpl) + NativeImpl->SetName(InName); +} + +FString USentryMetric::GetName() const +{ + if (NativeImpl) + return NativeImpl->GetName(); + + return FString(); +} + +void USentryMetric::SetType(const FString& InType) +{ + if (NativeImpl) + NativeImpl->SetType(InType); +} + +FString USentryMetric::GetType() const +{ + if (NativeImpl) + return NativeImpl->GetType(); + + return FString(); +} + +void USentryMetric::SetValue(float InValue) +{ + if (NativeImpl) + NativeImpl->SetValue((double)InValue); +} + +float USentryMetric::GetValue() const +{ + if (NativeImpl) + return (float)NativeImpl->GetValue(); + + return 0.0f; +} + +void USentryMetric::SetUnit(const FString& InUnit) +{ + if (NativeImpl) + NativeImpl->SetUnit(InUnit); +} + +FString USentryMetric::GetUnit() const +{ + if (NativeImpl) + return NativeImpl->GetUnit(); + + return FString(); +} + +void USentryMetric::SetAttribute(const FString& Key, const FSentryVariant& Value) +{ + if (NativeImpl) + NativeImpl->SetAttribute(Key, Value); +} + +FSentryVariant USentryMetric::GetAttribute(const FString& Key) const +{ + if (NativeImpl) + return NativeImpl->GetAttribute(Key); + + return FSentryVariant(); +} + +bool USentryMetric::TryGetAttribute(const FString& Key, FSentryVariant& Value) const +{ + if (NativeImpl) + return NativeImpl->TryGetAttribute(Key, Value); + + return false; +} + +void USentryMetric::RemoveAttribute(const FString& Key) +{ + if (NativeImpl) + NativeImpl->RemoveAttribute(Key); +} + +void USentryMetric::AddAttributes(const TMap& Attributes) +{ + if (NativeImpl) + NativeImpl->AddAttributes(Attributes); +} diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index 2910e3d11..ae422adaa 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -4,6 +4,7 @@ #include "SentryBeforeBreadcrumbHandler.h" #include "SentryBeforeLogHandler.h" +#include "SentryBeforeMetricHandler.h" #include "SentryBeforeSendHandler.h" #include "SentryBreadcrumb.h" #include "SentryDefines.h" @@ -113,12 +114,17 @@ void USentrySubsystem::Initialize() ? NewObject(this, static_cast(Settings->BeforeLogHandler)) : nullptr; + BeforeMetricHandler = + Settings->BeforeMetricHandler != nullptr + ? NewObject(this, static_cast(Settings->BeforeMetricHandler)) + : nullptr; + TraceSampler = Settings->TracesSampler != nullptr ? NewObject(this, static_cast(Settings->TracesSampler)) : nullptr; - SubsystemNativeImpl->InitWithSettings(Settings, BeforeSendHandler, BeforeBreadcrumbHandler, BeforeLogHandler, TraceSampler); + SubsystemNativeImpl->InitWithSettings(Settings, BeforeSendHandler, BeforeBreadcrumbHandler, BeforeLogHandler, BeforeMetricHandler, TraceSampler); if (!SubsystemNativeImpl->IsEnabled()) { diff --git a/plugin-dev/Source/Sentry/Private/Windows/WindowsSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Windows/WindowsSentrySubsystem.cpp index e30ef7db9..39b5384ff 100644 --- a/plugin-dev/Source/Sentry/Private/Windows/WindowsSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Windows/WindowsSentrySubsystem.cpp @@ -11,13 +11,13 @@ #include "Misc/Paths.h" -void FWindowsSentrySubsystem::InitWithSettings(const USentrySettings* Settings, USentryBeforeSendHandler* BeforeSendHandler, USentryBeforeBreadcrumbHandler* BeforeBreadcrumbHandler, USentryBeforeLogHandler* BeforeLogHandler, USentryTraceSampler* TraceSampler) +void FWindowsSentrySubsystem::InitWithSettings(const USentrySettings* Settings, USentryBeforeSendHandler* BeforeSendHandler, USentryBeforeBreadcrumbHandler* BeforeBreadcrumbHandler, USentryBeforeLogHandler* BeforeLogHandler, USentryBeforeMetricHandler* BeforeMetricHandler, USentryTraceSampler* TraceSampler) { // Detect Wine/Proton before initializing WineProtonInfo = FSentryPlatformDetectionUtils::DetectWineProton(); // Call parent implementation (handles crash logger initialization) - FMicrosoftSentrySubsystem::InitWithSettings(Settings, BeforeSendHandler, BeforeBreadcrumbHandler, BeforeLogHandler, TraceSampler); + FMicrosoftSentrySubsystem::InitWithSettings(Settings, BeforeSendHandler, BeforeBreadcrumbHandler, BeforeLogHandler, BeforeMetricHandler, TraceSampler); // Add Wine/Proton context for all events if detected if (WineProtonInfo.bIsRunningUnderWine && IsEnabled()) diff --git a/plugin-dev/Source/Sentry/Private/Windows/WindowsSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Windows/WindowsSentrySubsystem.h index 4c5b0e062..110bd4765 100644 --- a/plugin-dev/Source/Sentry/Private/Windows/WindowsSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Windows/WindowsSentrySubsystem.h @@ -11,7 +11,7 @@ class FWindowsSentrySubsystem : public FMicrosoftSentrySubsystem { public: - virtual void InitWithSettings(const USentrySettings* Settings, USentryBeforeSendHandler* BeforeSendHandler, USentryBeforeBreadcrumbHandler* BeforeBreadcrumbHandler, USentryBeforeLogHandler* BeforeLogHandler, USentryTraceSampler* TraceSampler) override; + virtual void InitWithSettings(const USentrySettings* Settings, USentryBeforeSendHandler* BeforeSendHandler, USentryBeforeBreadcrumbHandler* BeforeBreadcrumbHandler, USentryBeforeLogHandler* BeforeLogHandler, USentryBeforeMetricHandler* BeforeMetricHandler, USentryTraceSampler* TraceSampler) override; protected: virtual void ConfigureHandlerPath(sentry_options_t* Options) override; diff --git a/plugin-dev/Source/Sentry/Public/SentryBeforeMetricHandler.h b/plugin-dev/Source/Sentry/Public/SentryBeforeMetricHandler.h new file mode 100644 index 000000000..ace69efa5 --- /dev/null +++ b/plugin-dev/Source/Sentry/Public/SentryBeforeMetricHandler.h @@ -0,0 +1,21 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "SentryDataTypes.h" + +#include "SentryBeforeMetricHandler.generated.h" + +class USentryMetric; + +UCLASS(Blueprintable) +class SENTRY_API USentryBeforeMetricHandler : public UObject +{ + GENERATED_BODY() + +public: + UFUNCTION(BlueprintNativeEvent) + USentryMetric* HandleBeforeMetric(USentryMetric* Metric); + virtual USentryMetric* HandleBeforeMetric_Implementation(USentryMetric* Metric); +}; diff --git a/plugin-dev/Source/Sentry/Public/SentryMetric.h b/plugin-dev/Source/Sentry/Public/SentryMetric.h new file mode 100644 index 000000000..606fe940e --- /dev/null +++ b/plugin-dev/Source/Sentry/Public/SentryMetric.h @@ -0,0 +1,77 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "SentryDataTypes.h" +#include "SentryImplWrapper.h" +#include "SentryVariant.h" + +#include "SentryMetric.generated.h" + +class ISentryMetric; + +/** + * Data structure representing a metric entry for Sentry. + */ +UCLASS(BlueprintType, NotBlueprintable, HideDropdown) +class SENTRY_API USentryMetric : public UObject, public TSentryImplWrapper +{ + GENERATED_BODY() + +public: + /** Initializes the metric data. */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void Initialize(); + + /** Sets the metric name. */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void SetName(const FString& Name); + + /** Gets the metric name. */ + UFUNCTION(BlueprintPure, Category = "Sentry") + FString GetName() const; + + /** Sets the metric type (counter, gauge, distribution). */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void SetType(const FString& Type); + + /** Gets the metric type. */ + UFUNCTION(BlueprintPure, Category = "Sentry") + FString GetType() const; + + /** Sets the metric value. */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void SetValue(float Value); + + /** Gets the metric value. */ + UFUNCTION(BlueprintPure, Category = "Sentry") + float GetValue() const; + + /** Sets the metric unit. */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void SetUnit(const FString& Unit); + + /** Gets the metric unit. */ + UFUNCTION(BlueprintPure, Category = "Sentry") + FString GetUnit() const; + + /** Sets an attribute of the metric. */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void SetAttribute(const FString& Key, const FSentryVariant& Value); + + /** Gets an attribute of the metric. */ + UFUNCTION(BlueprintPure, Category = "Sentry") + FSentryVariant GetAttribute(const FString& Key) const; + + /** Tries to get an attribute of the metric. */ + UFUNCTION(BlueprintPure, Category = "Sentry") + bool TryGetAttribute(const FString& Key, FSentryVariant& Value) const; + + /** Removes the attribute of the metric with the specified key. */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void RemoveAttribute(const FString& Key); + + /** Adds attributes to the metric. */ + UFUNCTION(BlueprintCallable, Category = "Sentry") + void AddAttributes(const TMap& Attributes); +}; diff --git a/plugin-dev/Source/Sentry/Public/SentrySettings.h b/plugin-dev/Source/Sentry/Public/SentrySettings.h index 8e5dc7892..b3f873a0b 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySettings.h +++ b/plugin-dev/Source/Sentry/Public/SentrySettings.h @@ -12,6 +12,7 @@ class USentryBeforeSendHandler; class USentryBeforeBreadcrumbHandler; class USentryBeforeLogHandler; +class USentryBeforeMetricHandler; class USentryTraceSampler; UENUM(BlueprintType) @@ -326,6 +327,10 @@ class SENTRY_API USentrySettings : public UObject Meta = (DisplayName = "Custom `beforeLog` event handler", ToolTip = "Custom handler for processing structured logs before sending them to Sentry.")) TSubclassOf BeforeLogHandler; + UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Hooks", + Meta = (DisplayName = "Custom `beforeMetric` event handler", ToolTip = "Custom handler for processing metrics before sending them to Sentry.")) + TSubclassOf BeforeMetricHandler; + UPROPERTY(Config, EditAnywhere, Category = "General|Windows", Meta = (DisplayName = "Override Windows default crash capturing mechanism (UE 5.2+)", ToolTip = "Flag indicating whether to capture crashes automatically on Windows as an alternative to Crash Reporter.")) bool EnableAutoCrashCapturing; diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index 774e2cdb3..cce45a7da 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -21,6 +21,7 @@ class USentryUser; class USentryBeforeSendHandler; class USentryBeforeBreadcrumbHandler; class USentryBeforeLogHandler; +class USentryBeforeMetricHandler; class USentryTransaction; class USentryTraceSampler; class USentryTransactionContext; @@ -587,6 +588,9 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem UPROPERTY() USentryBeforeLogHandler* BeforeLogHandler; + UPROPERTY() + USentryBeforeMetricHandler* BeforeMetricHandler; + UPROPERTY() USentryTraceSampler* TraceSampler; From ba18be18cf4e776e23fb84d9e51be0f7aa18b227 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 15:28:43 +0200 Subject: [PATCH 24/38] Add metric type enum and handle double/float --- .../Private/Android/AndroidSentryMetric.cpp | 10 ++--- .../Private/Android/AndroidSentryMetric.h | 4 +- .../Android/AndroidSentrySubsystem.cpp | 6 +-- .../GenericPlatformSentryMetric.cpp | 23 ++++++++-- .../GenericPlatformSentryMetric.h | 4 +- .../Private/Interface/SentryMetricInterface.h | 4 +- .../Sentry/Private/Null/NullSentryMetric.h | 4 +- .../Source/Sentry/Private/SentryMetric.cpp | 44 ++++++++++++++++--- .../Source/Sentry/Public/SentryDataTypes.h | 9 ++++ .../Source/Sentry/Public/SentryMetric.h | 8 +++- 10 files changed, 87 insertions(+), 29 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp index beca54d23..af2237b25 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp @@ -49,23 +49,23 @@ FString FAndroidSentryMetric::GetType() const return CallMethod(GetTypeMethod); } -void FAndroidSentryMetric::SetValue(double value) +void FAndroidSentryMetric::SetValue(float value) { - TSharedPtr javaDouble = MakeShareable(new FSentryJavaObjectWrapper(SentryJavaClasses::Double, "(D)V", value)); + TSharedPtr javaDouble = MakeShareable(new FSentryJavaObjectWrapper(SentryJavaClasses::Double, "(D)V", static_cast(value))); CallMethod(SetValueMethod, javaDouble->GetJObject()); } -double FAndroidSentryMetric::GetValue() const +float FAndroidSentryMetric::GetValue() const { auto valueObject = CallObjectMethod(GetValueMethod); if (!valueObject) { - return 0.0; + return 0.0f; } FSentryJavaObjectWrapper valueWrapper(SentryJavaClasses::Double, *valueObject); FSentryJavaMethod doubleValueMethod = valueWrapper.GetMethod("doubleValue", "()D"); - return valueWrapper.CallMethod(doubleValueMethod); + return static_cast(valueWrapper.CallMethod(doubleValueMethod)); } void FAndroidSentryMetric::SetUnit(const FString& unit) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.h index fa80b8cda..5d37302d8 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.h @@ -18,8 +18,8 @@ class FAndroidSentryMetric : public ISentryMetric, public FSentryJavaObjectWrapp virtual FString GetName() const override; virtual void SetType(const FString& type) override; virtual FString GetType() const override; - virtual void SetValue(double value) override; - virtual double GetValue() const override; + virtual void SetValue(float value) override; + virtual float GetValue() const override; virtual void SetUnit(const FString& unit) override; virtual FString GetUnit() const override; diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index eb1c2b06e..ecc06fb24 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -203,21 +203,21 @@ void FAndroidSentrySubsystem::AddCount(const FString& Key, int32 Value, const TM { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricCount", "(Ljava/lang/String;DLjava/util/HashMap;)V", - *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, attributesMap->GetJObject()); + *FSentryJavaObjectWrapper::GetJString(Key), static_cast(Value), attributesMap->GetJObject()); } void FAndroidSentrySubsystem::AddDistribution(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricDistribution", "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", - *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, *FSentryJavaObjectWrapper::GetJString(Unit), attributesMap->GetJObject()); + *FSentryJavaObjectWrapper::GetJString(Key), static_cast(Value), *FSentryJavaObjectWrapper::GetJString(Unit), attributesMap->GetJObject()); } void FAndroidSentrySubsystem::AddGauge(const FString& Key, float Value, const FString& Unit, const TMap& Attributes) { TSharedPtr attributesMap = FAndroidSentryConverters::VariantMapToNative(Attributes); FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "metricGauge", "(Ljava/lang/String;DLjava/lang/String;Ljava/util/HashMap;)V", - *FSentryJavaObjectWrapper::GetJString(Key), (double)Value, *FSentryJavaObjectWrapper::GetJString(Unit), attributesMap->GetJObject()); + *FSentryJavaObjectWrapper::GetJString(Key), static_cast(Value), *FSentryJavaObjectWrapper::GetJString(Unit), attributesMap->GetJObject()); } void FAndroidSentrySubsystem::ClearBreadcrumbs() diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.cpp index e79b00b9f..cbf2a8935 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.cpp @@ -43,15 +43,30 @@ FString FGenericPlatformSentryMetric::GetType() const return FString(UTF8_TO_TCHAR(sentry_value_as_string(type))); } -void FGenericPlatformSentryMetric::SetValue(double value) +void FGenericPlatformSentryMetric::SetValue(float value) { - sentry_value_set_by_key(Metric, "value", sentry_value_new_double(value)); + if (GetType() == TEXT("counter")) + { + sentry_value_set_by_key(Metric, "value", sentry_value_new_int64(value)); + } + else + { + sentry_value_set_by_key(Metric, "value", sentry_value_new_double(value)); + } } -double FGenericPlatformSentryMetric::GetValue() const +float FGenericPlatformSentryMetric::GetValue() const { sentry_value_t value = sentry_value_get_by_key(Metric, "value"); - return sentry_value_as_double(value); + + if (sentry_value_get_type(value) == SENTRY_VALUE_TYPE_INT64) + { + return static_cast(sentry_value_as_int64(value)); + } + else + { + return static_cast(sentry_value_as_double(value)); + } } void FGenericPlatformSentryMetric::SetUnit(const FString& unit) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.h index 14ce95971..c29f05207 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.h @@ -21,8 +21,8 @@ class FGenericPlatformSentryMetric : public ISentryMetric virtual FString GetName() const override; virtual void SetType(const FString& type) override; virtual FString GetType() const override; - virtual void SetValue(double value) override; - virtual double GetValue() const override; + virtual void SetValue(float value) override; + virtual float GetValue() const override; virtual void SetUnit(const FString& unit) override; virtual FString GetUnit() const override; diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentryMetricInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentryMetricInterface.h index 8b4ed7560..b8683b68a 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentryMetricInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentryMetricInterface.h @@ -17,8 +17,8 @@ class ISentryMetric virtual FString GetName() const = 0; virtual void SetType(const FString& type) = 0; virtual FString GetType() const = 0; - virtual void SetValue(double value) = 0; - virtual double GetValue() const = 0; + virtual void SetValue(float value) = 0; + virtual float GetValue() const = 0; virtual void SetUnit(const FString& unit) = 0; virtual FString GetUnit() const = 0; diff --git a/plugin-dev/Source/Sentry/Private/Null/NullSentryMetric.h b/plugin-dev/Source/Sentry/Private/Null/NullSentryMetric.h index 26389bccb..e93d95245 100644 --- a/plugin-dev/Source/Sentry/Private/Null/NullSentryMetric.h +++ b/plugin-dev/Source/Sentry/Private/Null/NullSentryMetric.h @@ -14,8 +14,8 @@ class FNullSentryMetric : public ISentryMetric virtual FString GetName() const override { return FString(); } virtual void SetType(const FString& type) override {} virtual FString GetType() const override { return FString(); } - virtual void SetValue(double value) override {} - virtual double GetValue() const override { return 0.0; } + virtual void SetValue(float value) override {} + virtual float GetValue() const override { return 0.0f; } virtual void SetUnit(const FString& unit) override {} virtual FString GetUnit() const override { return FString(); } diff --git a/plugin-dev/Source/Sentry/Private/SentryMetric.cpp b/plugin-dev/Source/Sentry/Private/SentryMetric.cpp index bebce3a8b..90931b9da 100644 --- a/plugin-dev/Source/Sentry/Private/SentryMetric.cpp +++ b/plugin-dev/Source/Sentry/Private/SentryMetric.cpp @@ -25,30 +25,33 @@ FString USentryMetric::GetName() const return FString(); } -void USentryMetric::SetType(const FString& InType) +void USentryMetric::SetType(ESentryMetricType InType) { + if (InType == ESentryMetricType::Unknown) + return; + if (NativeImpl) - NativeImpl->SetType(InType); + NativeImpl->SetType(MetricTypeToString(InType)); } -FString USentryMetric::GetType() const +ESentryMetricType USentryMetric::GetType() const { if (NativeImpl) - return NativeImpl->GetType(); + return StringToMetricType(NativeImpl->GetType()); - return FString(); + return ESentryMetricType::Unknown; } void USentryMetric::SetValue(float InValue) { if (NativeImpl) - NativeImpl->SetValue((double)InValue); + NativeImpl->SetValue(InValue); } float USentryMetric::GetValue() const { if (NativeImpl) - return (float)NativeImpl->GetValue(); + return NativeImpl->GetValue(); return 0.0f; } @@ -100,3 +103,30 @@ void USentryMetric::AddAttributes(const TMap& Attribute if (NativeImpl) NativeImpl->AddAttributes(Attributes); } + +FString USentryMetric::MetricTypeToString(ESentryMetricType Type) +{ + switch (Type) + { + case ESentryMetricType::Counter: + return TEXT("counter"); + case ESentryMetricType::Gauge: + return TEXT("gauge"); + case ESentryMetricType::Distribution: + return TEXT("distribution"); + default: + return TEXT(""); + } +} + +ESentryMetricType USentryMetric::StringToMetricType(const FString& Type) +{ + if (Type == TEXT("counter")) + return ESentryMetricType::Counter; + if (Type == TEXT("gauge")) + return ESentryMetricType::Gauge; + if (Type == TEXT("distribution")) + return ESentryMetricType::Distribution; + + return ESentryMetricType::Unknown; +} diff --git a/plugin-dev/Source/Sentry/Public/SentryDataTypes.h b/plugin-dev/Source/Sentry/Public/SentryDataTypes.h index 121036aba..b2c54e669 100644 --- a/plugin-dev/Source/Sentry/Public/SentryDataTypes.h +++ b/plugin-dev/Source/Sentry/Public/SentryDataTypes.h @@ -31,3 +31,12 @@ enum class EUserConsent : uint8 Given, Unknown }; + +UENUM(BlueprintType) +enum class ESentryMetricType : uint8 +{ + Unknown, + Counter, + Gauge, + Distribution +}; diff --git a/plugin-dev/Source/Sentry/Public/SentryMetric.h b/plugin-dev/Source/Sentry/Public/SentryMetric.h index 606fe940e..795bc6c4a 100644 --- a/plugin-dev/Source/Sentry/Public/SentryMetric.h +++ b/plugin-dev/Source/Sentry/Public/SentryMetric.h @@ -33,11 +33,11 @@ class SENTRY_API USentryMetric : public UObject, public TSentryImplWrapper& Attributes); + +private: + static FString MetricTypeToString(ESentryMetricType Type); + static ESentryMetricType StringToMetricType(const FString& Type); }; From 2e36c9a22979d16563cfbc9699957ab0eea01f11 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 15:47:14 +0200 Subject: [PATCH 25/38] Expose metric unit to blueprints --- plugin-dev/Source/Sentry/Private/SentryMetric.cpp | 10 +++++----- plugin-dev/Source/Sentry/Private/SentryUnit.cpp | 15 +++++++++++++++ plugin-dev/Source/Sentry/Public/SentryMetric.h | 5 +++-- plugin-dev/Source/Sentry/Public/SentryUnit.h | 11 +++++++++++ 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/SentryMetric.cpp b/plugin-dev/Source/Sentry/Private/SentryMetric.cpp index 90931b9da..f6ebf32d7 100644 --- a/plugin-dev/Source/Sentry/Private/SentryMetric.cpp +++ b/plugin-dev/Source/Sentry/Private/SentryMetric.cpp @@ -56,18 +56,18 @@ float USentryMetric::GetValue() const return 0.0f; } -void USentryMetric::SetUnit(const FString& InUnit) +void USentryMetric::SetUnit(const FSentryUnit& InUnit) { if (NativeImpl) - NativeImpl->SetUnit(InUnit); + NativeImpl->SetUnit(InUnit.ToString()); } -FString USentryMetric::GetUnit() const +FSentryUnit USentryMetric::GetUnit() const { if (NativeImpl) - return NativeImpl->GetUnit(); + return FSentryUnit(NativeImpl->GetUnit()); - return FString(); + return FSentryUnit(); } void USentryMetric::SetAttribute(const FString& Key, const FSentryVariant& Value) diff --git a/plugin-dev/Source/Sentry/Private/SentryUnit.cpp b/plugin-dev/Source/Sentry/Private/SentryUnit.cpp index da14e2226..f4af8205c 100644 --- a/plugin-dev/Source/Sentry/Private/SentryUnit.cpp +++ b/plugin-dev/Source/Sentry/Private/SentryUnit.cpp @@ -32,6 +32,11 @@ FString FSentryUnit::ToString() const return StaticEnum()->GetNameStringByValue(static_cast(Unit)).ToLower(); } +ESentryUnit FSentryUnit::GetUnitType() const +{ + return Unit; +} + FSentryUnit USentryUnitHelper::MakeSentryUnit(ESentryUnit Unit) { return FSentryUnit(Unit); @@ -41,3 +46,13 @@ FSentryUnit USentryUnitHelper::MakeSentryCustomUnit(const FString& Unit) { return FSentryUnit(Unit); } + +FString USentryUnitHelper::ToString(const FSentryUnit& Unit) +{ + return Unit.ToString(); +} + +ESentryUnit USentryUnitHelper::GetUnitType(const FSentryUnit& Unit) +{ + return Unit.GetUnitType(); +} diff --git a/plugin-dev/Source/Sentry/Public/SentryMetric.h b/plugin-dev/Source/Sentry/Public/SentryMetric.h index 795bc6c4a..45342b219 100644 --- a/plugin-dev/Source/Sentry/Public/SentryMetric.h +++ b/plugin-dev/Source/Sentry/Public/SentryMetric.h @@ -4,6 +4,7 @@ #include "SentryDataTypes.h" #include "SentryImplWrapper.h" +#include "SentryUnit.h" #include "SentryVariant.h" #include "SentryMetric.generated.h" @@ -49,11 +50,11 @@ class SENTRY_API USentryMetric : public UObject, public TSentryImplWrapper Date: Fri, 6 Feb 2026 15:47:33 +0200 Subject: [PATCH 26/38] Add test metric handler blueprint --- .../Misc/BP_TestBeforeMetricHandler.uasset | Bin 0 -> 67465 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sample/Content/Misc/BP_TestBeforeMetricHandler.uasset diff --git a/sample/Content/Misc/BP_TestBeforeMetricHandler.uasset b/sample/Content/Misc/BP_TestBeforeMetricHandler.uasset new file mode 100644 index 0000000000000000000000000000000000000000..bf90ffb4c3f934b392531466b61b19b20e8b79e7 GIT binary patch literal 67465 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 Date: Fri, 6 Feb 2026 16:11:19 +0200 Subject: [PATCH 27/38] Fix android build errors --- .../Source/Sentry/Private/Android/AndroidSentryMetric.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp index af2237b25..5819c618a 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryMetric.cpp @@ -64,8 +64,8 @@ float FAndroidSentryMetric::GetValue() const } FSentryJavaObjectWrapper valueWrapper(SentryJavaClasses::Double, *valueObject); - FSentryJavaMethod doubleValueMethod = valueWrapper.GetMethod("doubleValue", "()D"); - return static_cast(valueWrapper.CallMethod(doubleValueMethod)); + FSentryJavaMethod floatValueMethod = valueWrapper.GetMethod("floatValue", "()F"); + return valueWrapper.CallMethod(floatValueMethod); } void FAndroidSentryMetric::SetUnit(const FString& unit) From 893ed4a1fc8fe680e7fa9466c600437f910ea964 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 16:18:33 +0200 Subject: [PATCH 28/38] Fix sample gui layout on mobile --- sample/Content/UI/W_SentryDemo.uasset | Bin 585535 -> 584233 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sample/Content/UI/W_SentryDemo.uasset b/sample/Content/UI/W_SentryDemo.uasset index 359cbb60cc78739f5b01126043123dd3218a5fdd..cb0db74542c8f62bc690ee31deab4db2773b1679 100644 GIT binary patch literal 584233 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

#K>r*1<1XpXXcH>i~B$h9B>en>96#Dd7eUK;%20 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 Fd;?d4{mlRX literal 585535 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

iR=F96XW|03y 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 U&BwrOrxUQBf)3|ue)`1IKQ`jnNB{r; From f96d2e9e7458c2c05b731f1dd7ee7f6defce8bd2 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 16:24:03 +0200 Subject: [PATCH 29/38] Update package snapshot --- scripts/packaging/package.snapshot | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/scripts/packaging/package.snapshot b/scripts/packaging/package.snapshot index e7f5de90e..e67ae173a 100644 --- a/scripts/packaging/package.snapshot +++ b/scripts/packaging/package.snapshot @@ -25,6 +25,8 @@ Source/Sentry/Private/Android/AndroidSentryLog.cpp Source/Sentry/Private/Android/AndroidSentryLog.h Source/Sentry/Private/Android/AndroidSentryMessage.cpp Source/Sentry/Private/Android/AndroidSentryMessage.h +Source/Sentry/Private/Android/AndroidSentryMetric.cpp +Source/Sentry/Private/Android/AndroidSentryMetric.h Source/Sentry/Private/Android/AndroidSentrySamplingContext.cpp Source/Sentry/Private/Android/AndroidSentrySamplingContext.h Source/Sentry/Private/Android/AndroidSentryScope.cpp @@ -99,6 +101,8 @@ Source/Sentry/Private/GenericPlatform/GenericPlatformSentryId.cpp Source/Sentry/Private/GenericPlatform/GenericPlatformSentryId.h Source/Sentry/Private/GenericPlatform/GenericPlatformSentryLog.cpp Source/Sentry/Private/GenericPlatform/GenericPlatformSentryLog.h +Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.cpp +Source/Sentry/Private/GenericPlatform/GenericPlatformSentryMetric.h Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp @@ -123,6 +127,7 @@ Source/Sentry/Private/HAL/PlatformSentryFeedback.h Source/Sentry/Private/HAL/PlatformSentryHint.h Source/Sentry/Private/HAL/PlatformSentryId.h Source/Sentry/Private/HAL/PlatformSentryLog.h +Source/Sentry/Private/HAL/PlatformSentryMetric.h Source/Sentry/Private/HAL/PlatformSentrySamplingContext.h Source/Sentry/Private/HAL/PlatformSentryScope.h Source/Sentry/Private/HAL/PlatformSentrySpan.h @@ -137,6 +142,7 @@ Source/Sentry/Private/Interface/SentryFeedbackInterface.h Source/Sentry/Private/Interface/SentryHintInterface.h Source/Sentry/Private/Interface/SentryIdInterface.h Source/Sentry/Private/Interface/SentryLogInterface.h +Source/Sentry/Private/Interface/SentryMetricInterface.h Source/Sentry/Private/Interface/SentrySamplingContextInterface.h Source/Sentry/Private/Interface/SentryScopeInterface.h Source/Sentry/Private/Interface/SentrySpanInterface.h @@ -167,6 +173,7 @@ Source/Sentry/Private/Null/NullSentryFeedback.h Source/Sentry/Private/Null/NullSentryHint.h Source/Sentry/Private/Null/NullSentryId.h Source/Sentry/Private/Null/NullSentryLog.h +Source/Sentry/Private/Null/NullSentryMetric.h Source/Sentry/Private/Null/NullSentrySamplingContext.h Source/Sentry/Private/Null/NullSentryScope.h Source/Sentry/Private/Null/NullSentrySpan.h @@ -177,6 +184,7 @@ Source/Sentry/Private/Null/NullSentryUser.h Source/Sentry/Private/SentryAttachment.cpp Source/Sentry/Private/SentryBeforeBreadcrumbHandler.cpp Source/Sentry/Private/SentryBeforeLogHandler.cpp +Source/Sentry/Private/SentryBeforeMetricHandler.cpp Source/Sentry/Private/SentryBeforeSendHandler.cpp Source/Sentry/Private/SentryBreadcrumb.cpp Source/Sentry/Private/SentryDefines.h @@ -186,6 +194,7 @@ Source/Sentry/Private/SentryFeedback.cpp Source/Sentry/Private/SentryHint.cpp Source/Sentry/Private/SentryLibrary.cpp Source/Sentry/Private/SentryLog.cpp +Source/Sentry/Private/SentryMetric.cpp Source/Sentry/Private/SentryModule.cpp Source/Sentry/Private/SentryOutputDevice.cpp Source/Sentry/Private/SentrySamplingContext.cpp @@ -231,6 +240,7 @@ Source/Sentry/Private/Windows/WindowsSentrySubsystem.h Source/Sentry/Public/SentryAttachment.h Source/Sentry/Public/SentryBeforeBreadcrumbHandler.h Source/Sentry/Public/SentryBeforeLogHandler.h +Source/Sentry/Public/SentryBeforeMetricHandler.h Source/Sentry/Public/SentryBeforeSendHandler.h Source/Sentry/Public/SentryBreadcrumb.h Source/Sentry/Public/SentryDataTypes.h @@ -241,6 +251,7 @@ Source/Sentry/Public/SentryHint.h Source/Sentry/Public/SentryImplWrapper.h Source/Sentry/Public/SentryLibrary.h Source/Sentry/Public/SentryLog.h +Source/Sentry/Public/SentryMetric.h Source/Sentry/Public/SentryModule.h Source/Sentry/Public/SentryOutputDevice.h Source/Sentry/Public/SentrySamplingContext.h From d72eeff480a73df5b1d1567895907e71328ee19f Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 16:53:36 +0200 Subject: [PATCH 30/38] Fix missing initializer --- .../Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 691c69753..82abca45c 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -337,6 +337,7 @@ FGenericPlatformSentrySubsystem::FGenericPlatformSentrySubsystem() : beforeSend(nullptr) , beforeBreadcrumb(nullptr) , beforeLog(nullptr) + , beforeMetric(nullptr) , sampler(nullptr) , crashReporter(nullptr) , isEnabled(false) From 4411dd2cf660498166fb83f66664e30759b21aee Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 17:26:50 +0200 Subject: [PATCH 31/38] Fix packaging script --- scripts/packaging/pack.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/packaging/pack.ps1 b/scripts/packaging/pack.ps1 index e7079598f..d3ab2da98 100644 --- a/scripts/packaging/pack.ps1 +++ b/scripts/packaging/pack.ps1 @@ -70,6 +70,7 @@ function packFiles() -replace 'USentryBeforeSendHandler\* BeforeSendHandler;', 'TObjectPtr BeforeSendHandler;' ` -replace 'USentryBeforeBreadcrumbHandler\* BeforeBreadcrumbHandler;', 'TObjectPtr BeforeBreadcrumbHandler;' ` -replace 'USentryBeforeLogHandler\* BeforeLogHandler;', 'TObjectPtr BeforeLogHandler;' ` + -replace 'USentryBeforeMetricHandler\* BeforeMetricHandler;', 'TObjectPtr BeforeMetricHandler;' ` -replace 'USentryTraceSampler\* TraceSampler;', 'TObjectPtr TraceSampler;' } From 90cf8382f9272411ad60788227e844cfd732c836 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 17:43:35 +0200 Subject: [PATCH 32/38] Fix pr suggestions --- plugin-dev/Source/Sentry/Private/SentryMetric.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin-dev/Source/Sentry/Private/SentryMetric.cpp b/plugin-dev/Source/Sentry/Private/SentryMetric.cpp index f6ebf32d7..58733ba91 100644 --- a/plugin-dev/Source/Sentry/Private/SentryMetric.cpp +++ b/plugin-dev/Source/Sentry/Private/SentryMetric.cpp @@ -8,7 +8,7 @@ void USentryMetric::Initialize() { - NativeImpl = MakeShareable(new FPlatformSentryMetric); + NativeImpl = CreateSharedSentryMetric(); } void USentryMetric::SetName(const FString& InName) From d0951da00766844eaf8b111c95610f9d851767a0 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 17:55:43 +0200 Subject: [PATCH 33/38] Remove unit enum getter --- plugin-dev/Source/Sentry/Private/SentryUnit.cpp | 9 --------- plugin-dev/Source/Sentry/Public/SentryUnit.h | 7 ------- 2 files changed, 16 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/SentryUnit.cpp b/plugin-dev/Source/Sentry/Private/SentryUnit.cpp index f4af8205c..5dd56d215 100644 --- a/plugin-dev/Source/Sentry/Private/SentryUnit.cpp +++ b/plugin-dev/Source/Sentry/Private/SentryUnit.cpp @@ -32,11 +32,6 @@ FString FSentryUnit::ToString() const return StaticEnum()->GetNameStringByValue(static_cast(Unit)).ToLower(); } -ESentryUnit FSentryUnit::GetUnitType() const -{ - return Unit; -} - FSentryUnit USentryUnitHelper::MakeSentryUnit(ESentryUnit Unit) { return FSentryUnit(Unit); @@ -52,7 +47,3 @@ FString USentryUnitHelper::ToString(const FSentryUnit& Unit) return Unit.ToString(); } -ESentryUnit USentryUnitHelper::GetUnitType(const FSentryUnit& Unit) -{ - return Unit.GetUnitType(); -} diff --git a/plugin-dev/Source/Sentry/Public/SentryUnit.h b/plugin-dev/Source/Sentry/Public/SentryUnit.h index 81f16fda9..0303b7eba 100644 --- a/plugin-dev/Source/Sentry/Public/SentryUnit.h +++ b/plugin-dev/Source/Sentry/Public/SentryUnit.h @@ -62,9 +62,6 @@ struct SENTRY_API FSentryUnit /** Converts the unit to its string representation. */ FString ToString() const; - /** Gets the predefined unit type. Returns None for custom units. */ - ESentryUnit GetUnitType() const; - private: ESentryUnit Unit; FString CustomUnit; @@ -90,8 +87,4 @@ class SENTRY_API USentryUnitHelper : public UBlueprintFunctionLibrary /** Converts the unit to its string representation. */ UFUNCTION(BlueprintPure, Category = "Sentry") static FString ToString(const FSentryUnit& Unit); - - /** Gets the predefined unit type. Returns None for custom units. */ - UFUNCTION(BlueprintPure, Category = "Sentry") - static ESentryUnit GetUnitType(const FSentryUnit& Unit); }; From d1e9820ed0eaf42e309432f9657cab65ecd9d827 Mon Sep 17 00:00:00 2001 From: Sentry Github Bot Date: Fri, 6 Feb 2026 15:56:03 +0000 Subject: [PATCH 34/38] Format code --- plugin-dev/Source/Sentry/Private/SentryUnit.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/plugin-dev/Source/Sentry/Private/SentryUnit.cpp b/plugin-dev/Source/Sentry/Private/SentryUnit.cpp index 5dd56d215..1752b0b82 100644 --- a/plugin-dev/Source/Sentry/Private/SentryUnit.cpp +++ b/plugin-dev/Source/Sentry/Private/SentryUnit.cpp @@ -46,4 +46,3 @@ FString USentryUnitHelper::ToString(const FSentryUnit& Unit) { return Unit.ToString(); } - From ba4fb629da4a252ef518f7981d38d8d528a36162 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 19:08:11 +0200 Subject: [PATCH 35/38] Add unit tests --- .../Tests/SentryBeforeMetricHandler.spec.cpp | 56 ++++++++++ .../Private/Tests/SentryMetric.spec.cpp | 102 ++++++++++++++++++ .../Tests/SentryTestBeforeMetricHandler.h | 22 ++++ 3 files changed, 180 insertions(+) create mode 100644 plugin-dev/Source/Sentry/Private/Tests/SentryBeforeMetricHandler.spec.cpp create mode 100644 plugin-dev/Source/Sentry/Private/Tests/SentryMetric.spec.cpp create mode 100644 plugin-dev/Source/Sentry/Private/Tests/SentryTestBeforeMetricHandler.h diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryBeforeMetricHandler.spec.cpp b/plugin-dev/Source/Sentry/Private/Tests/SentryBeforeMetricHandler.spec.cpp new file mode 100644 index 000000000..d6eee238d --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryBeforeMetricHandler.spec.cpp @@ -0,0 +1,56 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "SentryBeforeMetricHandler.h" +#include "Engine/Engine.h" +#include "SentryMetric.h" +#include "SentrySettings.h" +#include "SentrySubsystem.h" +#include "SentryTestBeforeMetricHandler.h" +#include "SentryTests.h" + +#include "Misc/AutomationTest.h" + +#include "HAL/PlatformSentryMetric.h" + +TDelegate UTestBeforeMetricHandler::OnTestBeforeMetricHandler; + +#if WITH_AUTOMATION_TESTS && (PLATFORM_ANDROID || USE_SENTRY_NATIVE) + +BEGIN_DEFINE_SPEC(SentryBeforeMetricHandlerSpec, "Sentry.SentryBeforeMetricHandler", EAutomationTestFlags::ProductFilter | SentryApplicationContextMask) +END_DEFINE_SPEC(SentryBeforeMetricHandlerSpec) + +void SentryBeforeMetricHandlerSpec::Define() +{ + Describe("BeforeMetricHandler functionality", [this]() + { + It("should be called when metric is emitted", [this]() + { + USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem(); + + bool bHandlerCalled = false; + const FString TestKey = TEXT("test.counter"); + const int32 TestValue = 5; + + SentrySubsystem->InitializeWithSettings(FConfigureSettingsNativeDelegate::CreateLambda([=](USentrySettings* Settings) + { + Settings->BeforeMetricHandler = UTestBeforeMetricHandler::StaticClass(); + })); + + UTestBeforeMetricHandler::OnTestBeforeMetricHandler.BindLambda([this, &bHandlerCalled, TestKey](USentryMetric* MetricData) + { + bHandlerCalled = true; + TestEqual("Handler received correct name", MetricData->GetName(), TestKey); + TestEqual("Handler received correct type", MetricData->GetType(), ESentryMetricType::Counter); + }); + + SentrySubsystem->AddCount(TestKey, TestValue); + + TestTrue("BeforeMetricHandler should be called", bHandlerCalled); + + UTestBeforeMetricHandler::OnTestBeforeMetricHandler.Unbind(); + SentrySubsystem->Close(); + }); + }); +} + +#endif diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryMetric.spec.cpp b/plugin-dev/Source/Sentry/Private/Tests/SentryMetric.spec.cpp new file mode 100644 index 000000000..42d1e5e6c --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryMetric.spec.cpp @@ -0,0 +1,102 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "SentryMetric.h" +#include "SentryTests.h" + +#include "Misc/AutomationTest.h" + +#include "HAL/PlatformSentryMetric.h" + +#if WITH_AUTOMATION_TESTS && (PLATFORM_ANDROID || USE_SENTRY_NATIVE) + +BEGIN_DEFINE_SPEC(SentryMetricSpec, "Sentry.SentryMetric", EAutomationTestFlags::ProductFilter | SentryApplicationContextMask) + USentryMetric* SentryMetric; +END_DEFINE_SPEC(SentryMetricSpec) + +void SentryMetricSpec::Define() +{ + BeforeEach([this]() + { + SentryMetric = USentryMetric::Create(CreateSharedSentryMetric()); + }); + + Describe("Metric params", [this]() + { + It("should persist their values", [this]() + { + const FString TestName = TEXT("request.duration"); + const ESentryMetricType TestType = ESentryMetricType::Gauge; + const float TestValue = 42.5f; + const FSentryUnit TestUnit = FSentryUnit(ESentryUnit::Millisecond); + + SentryMetric->SetName(TestName); + SentryMetric->SetType(TestType); + SentryMetric->SetValue(TestValue); + SentryMetric->SetUnit(TestUnit); + + TestEqual("Metric name", SentryMetric->GetName(), TestName); + TestEqual("Metric type", SentryMetric->GetType(), TestType); + TestEqual("Metric value", SentryMetric->GetValue(), TestValue); + TestEqual("Metric unit", SentryMetric->GetUnit().ToString(), TestUnit.ToString()); + }); + + It("should handle all metric types", [this]() + { + SentryMetric->SetType(ESentryMetricType::Counter); + TestEqual("Counter type", SentryMetric->GetType(), ESentryMetricType::Counter); + + SentryMetric->SetType(ESentryMetricType::Gauge); + TestEqual("Gauge type", SentryMetric->GetType(), ESentryMetricType::Gauge); + + SentryMetric->SetType(ESentryMetricType::Distribution); + TestEqual("Distribution type", SentryMetric->GetType(), ESentryMetricType::Distribution); + }); + + It("should reject Unknown type", [this]() + { + SentryMetric->SetType(ESentryMetricType::Counter); + SentryMetric->SetType(ESentryMetricType::Unknown); + + TestEqual("Type should remain Counter", SentryMetric->GetType(), ESentryMetricType::Counter); + }); + + It("should handle empty name", [this]() + { + const FString EmptyName = TEXT(""); + + SentryMetric->SetName(EmptyName); + + TestEqual("Empty name", SentryMetric->GetName(), EmptyName); + }); + + It("should handle predefined unit round-trip", [this]() + { + SentryMetric->SetUnit(FSentryUnit(ESentryUnit::Nanosecond)); + TestEqual("Nanosecond unit", SentryMetric->GetUnit().ToString(), TEXT("nanosecond")); + + SentryMetric->SetUnit(FSentryUnit(ESentryUnit::Megabyte)); + TestEqual("Megabyte unit", SentryMetric->GetUnit().ToString(), TEXT("megabyte")); + + SentryMetric->SetUnit(FSentryUnit(ESentryUnit::Percent)); + TestEqual("Percent unit", SentryMetric->GetUnit().ToString(), TEXT("percent")); + }); + + It("should handle custom unit string", [this]() + { + const FString CustomUnit = TEXT("requests"); + + SentryMetric->SetUnit(FSentryUnit(CustomUnit)); + + TestEqual("Custom unit", SentryMetric->GetUnit().ToString(), CustomUnit); + }); + + It("should handle None unit as empty string", [this]() + { + SentryMetric->SetUnit(FSentryUnit(ESentryUnit::None)); + + TestEqual("None unit", SentryMetric->GetUnit().ToString(), TEXT("")); + }); + }); +} + +#endif diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryTestBeforeMetricHandler.h b/plugin-dev/Source/Sentry/Private/Tests/SentryTestBeforeMetricHandler.h new file mode 100644 index 000000000..8de3a8e15 --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryTestBeforeMetricHandler.h @@ -0,0 +1,22 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "SentryBeforeMetricHandler.h" +#include "SentryMetric.h" + +#include "SentryTestBeforeMetricHandler.generated.h" + +UCLASS() +class UTestBeforeMetricHandler : public USentryBeforeMetricHandler +{ + GENERATED_BODY() +public: + virtual USentryMetric* HandleBeforeMetric_Implementation(USentryMetric* Metric) override + { + OnTestBeforeMetricHandler.ExecuteIfBound(Metric); + return Super::HandleBeforeMetric_Implementation(Metric); + } + + static TDelegate OnTestBeforeMetricHandler; +}; From 7d56c99d201452ae02da14bcbde22b1d1a1eae7c Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 19:24:26 +0200 Subject: [PATCH 36/38] 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 e67ae173a..d34ade762 100644 --- a/scripts/packaging/package.snapshot +++ b/scripts/packaging/package.snapshot @@ -209,15 +209,18 @@ Source/Sentry/Private/SentryUnit.cpp Source/Sentry/Private/SentryUser.cpp Source/Sentry/Private/SentryVariant.cpp Source/Sentry/Private/Tests/SentryBeforeLogHandler.spec.cpp +Source/Sentry/Private/Tests/SentryBeforeMetricHandler.spec.cpp Source/Sentry/Private/Tests/SentryBreadcrumb.spec.cpp Source/Sentry/Private/Tests/SentryEvent.spec.cpp Source/Sentry/Private/Tests/SentryFeedback.spec.cpp Source/Sentry/Private/Tests/SentryLog.spec.cpp Source/Sentry/Private/Tests/SentryLogAttributes.spec.cpp +Source/Sentry/Private/Tests/SentryMetric.spec.cpp Source/Sentry/Private/Tests/SentryScope.spec.cpp Source/Sentry/Private/Tests/SentryScopeBeforeSendHandler.h Source/Sentry/Private/Tests/SentrySubsystem.spec.cpp Source/Sentry/Private/Tests/SentryTestBeforeLogHandler.h +Source/Sentry/Private/Tests/SentryTestBeforeMetricHandler.h Source/Sentry/Private/Tests/SentryTests.h Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h From 6397ad2066e591279b7b961085bea01eb2c709df Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 20:27:44 +0200 Subject: [PATCH 37/38] Refactor attribute get/set/remove utils in Java bridge --- .../Android/Java/SentryBridgeJava.java | 107 +++++++----------- 1 file changed, 38 insertions(+), 69 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java index 1a1fb3dd8..64e1c46cc 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java +++ b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java @@ -300,61 +300,25 @@ private static void addLog(final SentryLogLevel level, final String message, fin } public static void setLogAttribute(final SentryLogEvent logEvent, final String key, final Object value) { - if (logEvent == null || key == null || value == null) { + if (logEvent == null) { return; } - - SentryLogEventAttributeValue attributeValue; - - if (value instanceof String) { - attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.STRING, value); - } else if (value instanceof Integer) { - attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.INTEGER, value); - } else if (value instanceof Boolean) { - attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.BOOLEAN, value); - } else if (value instanceof Float) { - // Unreal's variant doesn't support Double so manual conversion is required - attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.DOUBLE, ((Float) value).doubleValue()); - } else { - // Unsupported type (e.g. ArrayList, HashMap) - convert to JSON string for consistency with other platforms - String jsonString; - if (value instanceof java.util.List) { - jsonString = new JSONArray((java.util.List) value).toString(); - } else if (value instanceof java.util.Map) { - jsonString = new JSONObject((java.util.Map) value).toString(); - } else { - jsonString = value.toString(); - } - attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.STRING, jsonString); - } - - logEvent.setAttribute(key, attributeValue); + setAttributeInternal(key, value, logEvent::setAttribute); } public static Object getLogAttribute(final SentryLogEvent logEvent, final String key) { - if (logEvent == null || key == null) { - return null; - } - - Map attributes = logEvent.getAttributes(); - if (attributes == null) { - return null; - } - - SentryLogEventAttributeValue attributeValue = attributes.get(key); - if (attributeValue == null) { + if (logEvent == null) { return null; } + return getAttributeInternal(key, logEvent.getAttributes()); + } - Object value = attributeValue.getValue(); - - if (value instanceof Double) { - // Unreal's variant doesn't support Double so manual conversion is required - return ((Double) attributeValue.getValue()).floatValue(); + public static void removeLogAttribute(final SentryLogEvent logEvent, final String key) { + if (logEvent == null) { + return; } - - return value; - } + removeAttributeInternal(key, logEvent.getAttributes()); + } public static void metricCount(final String key, final double value, final HashMap attributesMap) { SentryMetricsParameters params = createMetricsParams(attributesMap); @@ -381,19 +345,33 @@ private static SentryMetricsParameters createMetricsParams(final HashMap attributes = logEvent.getAttributes(); - if (attributes != null) { - attributes.remove(key); + public static Object getMetricAttribute(final SentryMetricsEvent metricEvent, final String key) { + if (metricEvent == null) { + return null; } + return getAttributeInternal(key, metricEvent.getAttributes()); } - public static void setMetricAttribute(final SentryMetricsEvent metricEvent, final String key, final Object value) { - if (metricEvent == null || key == null || value == null) { + public static void removeMetricAttribute(final SentryMetricsEvent metricEvent, final String key) { + if (metricEvent == null) { + return; + } + removeAttributeInternal(key, metricEvent.getAttributes()); + } + + private interface AttributeSetter { + void setAttribute(String key, SentryLogEventAttributeValue value); + } + + private static void setAttributeInternal(final String key, final Object value, AttributeSetter setter) { + if (key == null || value == null) { return; } @@ -421,16 +399,11 @@ public static void setMetricAttribute(final SentryMetricsEvent metricEvent, fina attributeValue = new SentryLogEventAttributeValue(SentryAttributeType.STRING, jsonString); } - metricEvent.setAttribute(key, attributeValue); + setter.setAttribute(key, attributeValue); } - public static Object getMetricAttribute(final SentryMetricsEvent metricEvent, final String key) { - if (metricEvent == null || key == null) { - return null; - } - - Map attributes = metricEvent.getAttributes(); - if (attributes == null) { + private static Object getAttributeInternal(final String key, final Map attributes) { + if (key == null || attributes == null) { return null; } @@ -443,21 +416,17 @@ public static Object getMetricAttribute(final SentryMetricsEvent metricEvent, fi if (value instanceof Double) { // Unreal's variant doesn't support Double so manual conversion is required - return ((Double) attributeValue.getValue()).floatValue(); + return ((Double) value).floatValue(); } return value; } - public static void removeMetricAttribute(final SentryMetricsEvent metricEvent, final String key) { - if (metricEvent == null || key == null) { + private static void removeAttributeInternal(final String key, final Map attributes) { + if (key == null || attributes == null) { return; } - - Map attributes = metricEvent.getAttributes(); - if (attributes != null) { - attributes.remove(key); - } + attributes.remove(key); } private static class SentryUnrealBeforeSendCallback implements SentryOptions.BeforeSendCallback { From 4f6a68d093a081edc0ae38997a54ddd4a12934c1 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 6 Feb 2026 20:27:52 +0200 Subject: [PATCH 38/38] Fix tests --- .../Sentry/Private/Tests/SentryBeforeMetricHandler.spec.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryBeforeMetricHandler.spec.cpp b/plugin-dev/Source/Sentry/Private/Tests/SentryBeforeMetricHandler.spec.cpp index d6eee238d..3b51ae8be 100644 --- a/plugin-dev/Source/Sentry/Private/Tests/SentryBeforeMetricHandler.spec.cpp +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryBeforeMetricHandler.spec.cpp @@ -33,6 +33,7 @@ void SentryBeforeMetricHandlerSpec::Define() SentrySubsystem->InitializeWithSettings(FConfigureSettingsNativeDelegate::CreateLambda([=](USentrySettings* Settings) { + Settings->EnableMetrics = true; Settings->BeforeMetricHandler = UTestBeforeMetricHandler::StaticClass(); }));