UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnalyticsTracer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
8
13{
14public:
15
18
19 // Public IAnalyticsSpan implementation
20 virtual void SetProvider(TSharedPtr<IAnalyticsProvider> AnalyticsProvider) override;
22 virtual void End(const TArray<FAnalyticsEventAttribute>& AdditionalAttributes = {}) override;
24 virtual void RecordEvent(const FString& EventName, const TArray<FAnalyticsEventAttribute>& AdditionalAttributes = {}) override;
25 virtual const FName& GetName() const override;
26 virtual const TArray<FAnalyticsEventAttribute>& GetAttributes() const override;
27 virtual void SetStackDepth(uint32 Depth) override;
28 virtual uint32 GetStackDepth() const override;
29 virtual double GetElapsedTime() override;
30 virtual double GetDuration() const override;
31 virtual bool GetIsActive() const override;
32 virtual FGuid GetId() const override;
33
34private:
35
36 FName Name = TEXT("None");
37 FGuid Guid = FGuid();
38 FDateTime StartTime = 0;
39 FDateTime EndTime = 0;
40 FThreadId ThreadId = 0;
41 uint32 StackDepth = 0;
42 double Duration = 0;
43 bool IsActive = false;
44 TSharedPtr<IAnalyticsProvider> AnalyticsProvider;
46};
47
52{
53public:
54
57
58 // Public IAnalyticsTracer implementation
59 virtual void StartSession() override;
60 virtual void EndSession() override;
61 virtual void SetProvider(TSharedPtr<IAnalyticsProvider> AnalyticsProvider) override;
64 virtual TSharedPtr<IAnalyticsSpan> GetCurrentSpan() const override;
65 virtual TSharedPtr<IAnalyticsSpan> GetSessionSpan() const override;
66 virtual TSharedPtr<IAnalyticsSpan> GetSpan(const FName Name) override;
67
68private:
69
72 TSharedPtr<IAnalyticsSpan> GetSpanInternal(const FName Name);
73 void BeginRegion(TSharedPtr<IAnalyticsSpan> Span);
74 void EndRegion(TSharedPtr<IAnalyticsSpan> Span);
75
76 TSharedPtr<IAnalyticsProvider> AnalyticsProvider; // The Analytics provider we will send our span events to
77 TSharedPtr<IAnalyticsSpan> SessionSpan; // The root span, this will always be present in an active session
78 TArray<TSharedPtr<IAnalyticsSpan>> ActiveSpanStack; // Stack of active spans as WeakPtrs
79 TMap<FGuid, TArray<TWeakPtr<IAnalyticsSpan>>> SpanHeirarchy; // List of child spans per parent span
80 TMap<FName, FGuid> RegionNames; // Temprorary fix for duplicate span names in regions
81 FCriticalSection CriticalSection;
82};
83
84
uint32 FThreadId
Definition AnalyticsTracer.h:7
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AnalyticsTracer.h:13
virtual const TArray< FAnalyticsEventAttribute > & GetAttributes() const override
Definition AnalyticsTracer.cpp:134
virtual void RecordEvent(const FString &EventName, const TArray< FAnalyticsEventAttribute > &AdditionalAttributes={}) override
Definition AnalyticsTracer.cpp:114
FAnalyticsSpan(FName SpanName)
Definition AnalyticsTracer.h:16
virtual uint32 GetStackDepth() const override
Definition AnalyticsTracer.cpp:139
virtual FGuid GetId() const override
Definition AnalyticsTracer.cpp:129
virtual double GetDuration() const override
Definition AnalyticsTracer.cpp:50
virtual bool GetIsActive() const override
Definition AnalyticsTracer.cpp:67
virtual const FName & GetName() const override
Definition AnalyticsTracer.cpp:124
~FAnalyticsSpan()
Definition AnalyticsTracer.h:17
virtual void SetStackDepth(uint32 Depth) override
Definition AnalyticsTracer.cpp:40
virtual void AddAttributes(const TArray< FAnalyticsEventAttribute > &AdditionalAttributes) override
Definition AnalyticsTracer.cpp:109
virtual void Start(const TArray< FAnalyticsEventAttribute > &AdditionalAttributes={})
Definition AnalyticsTracer.cpp:55
virtual void SetProvider(TSharedPtr< IAnalyticsProvider > AnalyticsProvider) override
Definition AnalyticsTracer.cpp:35
virtual double GetElapsedTime() override
Definition AnalyticsTracer.cpp:45
Definition AnalyticsTracer.h:52
FAnalyticsTracer()
Definition AnalyticsTracer.h:55
virtual TSharedPtr< IAnalyticsSpan > GetSessionSpan() const override
Definition AnalyticsTracer.cpp:287
virtual void EndSession() override
Definition AnalyticsTracer.cpp:159
virtual void SetProvider(TSharedPtr< IAnalyticsProvider > AnalyticsProvider) override
Definition AnalyticsTracer.cpp:144
virtual TSharedPtr< IAnalyticsSpan > StartSpan(const FName Name, TSharedPtr< IAnalyticsSpan > ParentSpan, const TArray< FAnalyticsEventAttribute > &AdditionalAttributes={}) override
Definition AnalyticsTracer.cpp:177
~FAnalyticsTracer()
Definition AnalyticsTracer.h:56
virtual void StartSession() override
Definition AnalyticsTracer.cpp:154
virtual TSharedPtr< IAnalyticsSpan > GetSpan(const FName Name) override
Definition AnalyticsTracer.cpp:307
virtual bool EndSpan(TSharedPtr< IAnalyticsSpan > Span, const TArray< FAnalyticsEventAttribute > &AdditionalAttributes={}) override
Definition AnalyticsTracer.cpp:252
virtual TSharedPtr< IAnalyticsSpan > GetCurrentSpan() const override
Definition AnalyticsTracer.cpp:149
Definition NameTypes.h:617
Definition IAnalyticsTracer.h:21
Definition IAnalyticsTracer.h:77
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition DateTime.h:76
Definition Guid.h:109