Commit Graph

211 Commits

Author SHA1 Message Date
brandon schaefer
f962acf403 Use a TransactionallySafeScopeLock for analytics
#rb ben.clayton

[CL 35427240 by brandon schaefer in ue5-main branch]
2024-08-09 12:40:54 -04:00
steve robb
113b9f7214 Replaced EAutomationTestFlags::ApplicationContextMask with EAutomationTestFlags_ApplicationContextMask.
[CL 34335267 by steve robb in ue5-main branch]
2024-06-13 06:50:46 -04:00
christian savoie
d308a7bcf1 [MP Locker] Re-add locker search analytics
* Move locker analytics into their own file
* Moved old loadout analytics code to new location so it's not in a huge shared header

[REVIEW] [at]spencer.melnick, [at]jared.joyral, [at]arturo.oppen, [at]sergei.gozalov
#tests Tested that a breakpoint in the code was being hit in the correct circumstances and with the expected info.

[CL 33867431 by christian savoie in ue5-main branch]
2024-05-23 13:33:55 -04:00
steve robb
92463911c8 Fixed mismatched printf format arguments.
#rb brandon.schaefer

[CL 33264801 by steve robb in ue5-main branch]
2024-04-26 11:02:47 -04:00
steve robb
f8d47335a4 Replaced RemoveAt(N, 1, EAllowShrinking::*) with RemoveAt(N, EAllowShrinking::*).
[CL 31626444 by steve robb in ue5-main branch]
2024-02-19 16:51:58 -05:00
mark lintott
360e0fbd4f Fix for buffer underrun in the Span and Region name generation
[CL 31573674 by mark lintott in ue5-main branch]
2024-02-16 14:04:41 -05:00
mark lintott
d27cd2e123 Added a work around for overlapping Unreal Regions with the same name
Send SlowTask as a the span name for slow tasks instead of the dynamically created string. This makes filitering to SpanName almost impossible in the telemetry
Reduced the high frequency generation of Span events as this made Tableau dashbaords unusable
Added a new hitch detector that samples AverageFPS over a high frequency ( every 0.5 sec ) but records hitch spans at a much lower rate ( every 5 seconds )
Increased the schema version for spans to 2 so we can filter out the old high frequency data
[FYI] Wes.Hunt, matt.breindel, ionut.matasaru

[CL 31394972 by mark lintott in ue5-main branch]
2024-02-12 15:12:51 -05:00
paul chipchase
c02789b466 [Backout] - CL31042395
Original CL Desc
-----------------------------------------------------------------
Move the initial declaration of ::BlockUntilFlushed from IAnalyticsProviderET to it's parent class IAnalyticsProvider and improve the documentation showing the difference between ::FlushEvents and ::BlockUntilFlushed.

#rb mark.lintott
#rnx

[CL 31207392 by paul chipchase in ue5-main branch]
2024-02-06 03:38:46 -05:00
paul chipchase
6bfbcbac5b Move the initial declaration of ::BlockUntilFlushed from IAnalyticsProviderET to it's parent class IAnalyticsProvider and improve the documentation showing the difference between ::FlushEvents and ::BlockUntilFlushed.
#rb mark.lintott
#rnx

[CL 31042425 by paul chipchase in ue5-main branch]
2024-01-31 07:08:42 -05:00
mark lintott
edd8db67a0 Various tweaks and improvements to Tracer API suggested by Wes
#rb Wes.Hunt

[CL 31039963 by mark lintott in ue5-main branch]
2024-01-31 03:37:01 -05:00
mark lintott
6ccd4bc65d Address various suggestions for improvement from previous code review.
Simplified the parent child relationship. Moved this code out of AnalyticsSpan and int AnalyticsTracer. Resulting in much cleaner code and faster search.
No longer supporting the Span_ParentName in the event telemetry as Spans no longer know anythign about their parent child relationship. This behavior is specfic to the IAnalyticsTracer implementation.
Added GetId() to AnalyticsSpan. Tracking of parent/child relationships by ID much more efficient now.
Removed StartSpan( Span, Attribuites ) from the public API as this is not used.
Fixed issue where parent span attrbiutes are added twice
Fixed typo in EndPIE callabck
#rb Wes.Hunt, kevin.macaulayvacher

[CL 30998611 by mark lintott in ue5-main branch]
2024-01-30 05:27:05 -05:00
mark lintott
4b6fadab0f Final 5.4 Polish for StudioTelemetry
Added PIE.PreBegin span to StudioTelemetry which was not previously captured in the PIE Phase
Added FStudioTelemetry::ScopedSpan class
Added ScopedSpan Fort.PIEStart
Refcactored how span stack depth works. Now use a stack for all active spans. Spans no longer inherit a parent if one is not specifed, this means unrelated stagerred spans can now run wothout being stopped by an unrelated parent span.
Removed the Child Lists in Spans This i smuch sumpler code now. The Span only has a parent and the code to explicitly shut down child spans on close of parent is now internal to the Tracer implementation
Added a OnPIEStarted editor event which is the first poiint at which PIE is requested to Start. Moved the PIE span to start on this event. This means that FN Start PIE span is correctly counted as part of the PIE span and Editor.Interact PIE.Startup are more representative of the actual workflow.
Added ShutDownPIE event to the Editor code.
Added the PIE.Shutdown span that listens to the OnPIECancelled event, now we can track how long PIE actually takes to shutdown and return to Editor.Interact.
Added easy to use STUDIO_TELEMETRY_SPAN_SCOPE, STUDIO_TELEMETRY_START_SPAN,STUDIO_TELEMETRY_END_SPAN macros to StudioTelemetry
[FYI] matt.breindel, Francis.Hurteau, kevin.macaulayvacher
#rb kevin.macaulayvacher, Wes.Hunt

[CL 30959276 by mark lintott in ue5-main branch]
2024-01-28 11:24:14 -05:00
steve robb
f43fc1d782 Fixed up more bool-taking calls to take EAllowShrinking instead.
[CL 30894388 by steve robb in ue5-main branch]
2024-01-25 14:09:12 -05:00
mark lintott
0b01b4d0dc Fix to hitch span logic so that spans closed by parent spans whilst hithcing creates a new hitch span. This means we now get hitch detection immediately after PIE has started if it was already hithcing before it ended.
Added IsActive to FAnalyticsSpan API
Reduced Hitch Detector frequency from 5sec to 1sec
Added Asset Registry Activity span
[FYI] matt.breindel

[CL 30847807 by mark lintott in ue5-main branch]
2024-01-24 11:43:07 -05:00
mark lintott
5ccfb9e4f3 Added Heartbeat callback running every 5 seconds to track hitches
Added basic hitch detection telemetry to StudioTelemetryEditor
Changed const FName& to const FName across API calls so they are consistent
Added RecordEvent( Category, Name, Attributes ) to API for future feature support
Renamed RecordEvent( Provider,  Name, Attributes ) to RecordEventToProvider( ) so it is more explicit and does not confuse with  RecordEvent( Category.. )
Added new attribute Config_IsDebuggerPresent to track whether a debugger is attached to the session or not.
#rb matt.breindel

[CL 30836596 by mark lintott in ue5-main branch]
2024-01-24 03:18:01 -05:00
steve robb
104c0f2416 Fixed up more bool-taking calls to take EAllowShrinking instead.
[CL 30806200 by steve robb in ue5-main branch]
2024-01-23 11:07:28 -05:00
steve robb
fde2961f55 Fixed up a lot of bool-taking container resize functions to take EAllowShrinking instead.
[CL 30803608 by steve robb in ue5-main branch]
2024-01-23 09:51:10 -05:00
steve robb
f029468598 Fixed up a lot of bool-taking container resize functions to take EAllowShrinking instead.
[CL 30729174 by steve robb in ue5-main branch]
2024-01-19 16:41:35 -05:00
steve robb
f3624fbcbc Replaced UE_NORETURN with [[noreturn]].
Replaced PLATFORM_COMPILER_HAS_DECLTYPE_AUTO blocks.
Replaced PLATFORM_COMPILER_HAS_FOLD_EXPRESSIONS blocks.

[CL 30600164 by steve robb in ue5-main branch]
2024-01-12 14:20:07 -05:00
mark lintott
997b39095e Fix for AnalyticsTracer shutdown to properly end the open spans
[CL 30394832 by mark lintott in ue5-main branch]
2023-12-19 10:36:39 -05:00
mark lintott
6e838f66c0 Studio Telemetry Update:
Added IAnalyticsTracer and IAnalyticsSpan interface that superseeds the FFlowTracker
StudioTelemetry no longer uses FFLowTracker and uses the simpler IAnalyticsTracer API instead inspired by OpenTelemetry Tracer/Span model.
Deprecated FFLowTracker as of 5.4
Added lots of documentation to the StudioTelemetry plugin code.
Moved creation of the AnalyticsProviderLog to the public BaseEngine.ini so it can be used as a public facing example. This will simply write out a JSON file to the Saved/Telemetry folder and overwrite it per session
Added new callbacks for PIE so that we can decopule when a PIE work has been created and is ready from when ALL PIE worlds have been created and are ready which makes TimeToPIE accurate for all projects.
Rolled in some shutdown recommendations from Paul.Chipchase.
Various fixes and improvements to the JSON file logigng example. Now works correctly with Tableau import.
#rb Eric.Knapik, Wes.Hunt, paul.chipchase

[CL 30391931 by mark lintott in ue5-main branch]
2023-12-19 06:42:52 -05:00
mark lintott
ae0e1db18a Pushed Set/GetDefaultAttributes into IAnalyticsProvider
Fixed up FileLogging, AnalyticsSwrve and AnalyticsMulticast to implement the IAnalyticsProvider changes to Set/GetDefaultAttributes
Replaced dependency on IAnalyticsProviderET with IAnalyticsProvider in Studio Telemetry
Added Dynamic Analytics Provider Module Loading support. Replaced hard coded provider creation with dynamic IAnalyticsModule interface through modules
Added AnalyticsLog module as an example for 3rd parties to add custom, data driven IAnalyticsProviders to Studio Telemetry
Updated the ini files to use ProviderModule as the factory type for Porivder creation
[FYI] wes.hunt

[CL 30212753 by mark lintott in ue5-main branch]
2023-12-08 11:57:27 -05:00
robert millar
3cc6c3af19 Re-implement re-entrancy check using thread-local bool.
#rb Matt.Peters

[CL 29962798 by robert millar in ue5-main branch]
2023-11-28 12:20:24 -05:00
mark lintott
b99d530ce0 Moved EpicStudioAnalytics plugin to StudioTelemetry which is now public facing.
The intention is to provide a set of "in the box" telemetry hooks to our most common developer workflows for use internal Epic use and licensees
Moved startup of StudioTelemetry plugin much earlier to PostConfigInit stage so that sessions can start much earlier in the workflow
Added WIP Client support to telemetry plugin
Added data driven provider support for FAnlayiticProvidersET interfaces via BaseEngine.ini for common games and sample projects. Settings and URLs for EPic are only avaliable in Resttricted/NotForLicensee config folders for Lyra and Shooter game.
Added support for Horde telemetry and fixed up various problems with duplicate attributes being sent.
Added Core.VirtualAssets telemetry event
Added Core.Zen telemetry event
Added Core.IAS telemetry event
Added check for IOStoreOnDemand IsEnabled to avoid sending empty IAS events
Added FAnalyticsMulticastProvider to forward telemetry events to multiple providers contained within
Removed deprecated Fire_LoadingEvent from StudioAnalytics
[FYI] paul.chipchase
#rb Wes.Hunt

[CL 29908039 by mark lintott in ue5-main branch]
2023-11-23 07:06:10 -05:00
marc audy
a88b71c8b7 Fix/silence C4702 warnings
#rnx

[CL 29883627 by marc audy in ue5-main branch]
2023-11-22 01:04:15 -05:00