Commit Graph

101 Commits

Author SHA1 Message Date
steve robb
9d96ffe49d Fixed CopyTemp returning a reference instead of a copy when passed an rvalue reference (can cause dangling references).
#rb devin.doucette
#preflight 63644c5a581dc906bca5ddab

[CL 23039113 by steve robb in ue5-main branch]
2022-11-08 16:01:58 -05:00
mark lintott
490070be3c Decoupled Zen, DerivedDataCache and Virtualization dependency from Studio Analytics. Systems can now register callbacks to append or modify Event payloads to analytics events by name via the FAnalytics interface.
#rb Nick.Darnell
#fyi Paul.Chipchase,Zousar.Shaker
#preflight 636248d054471d10bedc3749

[CL 22909100 by mark lintott in ue5-main branch]
2022-11-02 06:56:10 -04:00
jason stasik
e32fb9b036 Allow additional Epic-created session summaries to be generated by editor plugins
#rb rex.hill,patrick.laflamme
#preflight 62f585c9f3107c023ccc1b3c

#ROBOMERGE-AUTHOR: jason.stasik
#ROBOMERGE-SOURCE: CL 21349289 via CL 21350318 via CL 21350435 via CL 21350461
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21350674 by jason stasik in ue5-main branch]
2022-08-11 23:43:02 -04:00
Bryan sefcik
b4a6e947d8 Ran IWYU on Public headers under Engine/Source/Runtime/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21065896 by bryan.sefcik
#preflight 62d4b1a5a6141b6adfb0c892
#jira

#ROBOMERGE-OWNER: Bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf

[CL 21181076 by Bryan sefcik in ue5-main branch]
2022-07-20 11:31:36 -04:00
steve robb
0c9851e04b Rremaining Direct FTCHARToUTF8_Convert usage replaced with StringCast or FPlatformString.
#rb devin.doucette
#jira UE-132142
#preflight 62c32f24b024a2608c13d8c9

#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 20936859 via CL 20936868 via CL 20936874
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20937358 by steve robb in ue5-main branch]
2022-07-04 16:57:29 -04:00
steve robb
1b2a6972d9 Undo //Fortnite/Main/... changelist 20912148
#rb none

#ROBOMERGE-OWNER: steve.robb
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 20912525 via CL 20912560 via CL 20912561
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20913042 by steve robb in ue5-main branch]
2022-07-01 07:49:36 -04:00
steve robb
39ffa82638 Direct FTCHARToUTF8_Convert usage deprecated and replaced with StringCast or FPlatformString.
#rb devin.doucette
#jira UE-132142
#preflight 62bd92d71c0b758797185071

#ROBOMERGE-OWNER: steve.robb
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 20912148 via CL 20912242 via CL 20912250
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20913038 by steve robb in ue5-main branch]
2022-07-01 07:49:22 -04:00
Andriy Tylychko
2a295eb685 deprecated FTicker and family and replaced by thread-safe FTSTicker
#jira UE-120090
#rb francis.hurteau

[CL 17176325 by Andriy Tylychko in ue5-main branch]
2021-08-16 11:05:18 -04:00
Patrick Laflamme
9648c49913 Removed private FEditorSessionSummaryWriter and deprecated public class FEditorSessionSummarySender and FEditorAnalyticsSession.
- The functionality was generalized in FAnalyticsSessionSummaryManager, FEngineAnalyticsSessionSummary, FEditorAnalyticsSessionSummary and FAnalyticsSessionSummarySender.

Added code to clean up left-over expired files/data using the old analytics system implementation.

#rb Jamie.Dale

[CL 16523043 by Patrick Laflamme in ue5-main branch]
2021-06-01 17:01:37 -04:00
aurel cordonnier
43fa62fcd8 Merge from Release-Engine-Test @ 16487383 to UE5/Main
This represents UE4/Main @ 16445039 and Dev-PerfTest @ 16444526

[CL 16488106 by aurel cordonnier in ue5-main branch]
2021-05-27 13:40:37 -04:00
Steve Robb
1f3fe8c9ac Some ANSICHAR/UTF8CHAR cast fixes for upcoming changes to StringConv.h.
#rb none
#jira none

[CL 16469364 by Steve Robb in ue5-main branch]
2021-05-26 10:45:12 -04:00
Steve Robb
05a79f7329 Fix FTCHARToUTF8_Convert::Convert() to take a pointer as the first parameter.
#rb devin.doucette
#jira none

[CL 16402727 by Steve Robb in ue5-main branch]
2021-05-20 10:29:21 -04:00
aurel cordonnier
e31ae6ee1f Fix CIS no unity errors
#rb trivial

[CL 16390334 by aurel cordonnier in ue5-main branch]
2021-05-19 14:53:17 -04:00
Patrick Laflamme
be8772ecfd Fix non-unity CIS error on Android in AnalyticsSessionSummaryManager.cpp
#rb trivial

[CL 16389316 by Patrick Laflamme in ue5-main branch]
2021-05-19 13:37:46 -04:00
Patrick Laflamme
cb3aaf9000 Fixed analytics summary system losing type information.
- Instead of converting summary properties to string duing session aggregation, put properties in FAnalyticsEventAttribute instances to preserve the type information.
Added MonitorEngineVersion, MonitorReportCount, MonitorEnsureCount, MonitorAssertCount to CRC analytics summary.
Added MissingDataFrom to the analytics summary when the property file from a collaboration process failed to load.
Fixed the analytics summary manager to aggreage and produce a report even if the helper process data couldn't be loaded.

#rb Jamie.Dale

[CL 16382795 by Patrick Laflamme in ue5-main branch]
2021-05-19 06:22:37 -04:00
Patrick Laflamme
164050af5c Renamed ToString(EAnalyticsSessionShutdownType) as LexToString(EAnalyticsSessionShutdownType) and made it public.
#rb Wes.Hunt

[CL 16362504 by Patrick Laflamme in ue5-main branch]
2021-05-17 20:37:17 -04:00
Patrick Laflamme
2e5316e1ca Generalized the Editor analytics summary session system to be usable/extendable by other apps.
Engine/Editor changes:

- Split the Editor summary session in two, one summary for the Engine properties and one for the Editor specific properties. Made it easy to extend the Engine summary to create other summaries.
- Made the summary sender as agnostics as possible of the keys it sends.
- Fixed the system wide lock contention between the process when persisting a session. (On problem caused by the lock is UE-114315).
- Fixed concurrent issue when saving the summary sessions on Linux/Mac
- Fixed performance issue when saving the summary session on Linux/Mac. This enable saving at higher frequency.
- Fixed cases where the same session summary is sent more than once.
- Fixed Windows registry key overflow that could happens if we accumulated too many sessions (in theory, this can happen)
- Made adding new properties to the summary easy and private to the implementation.
- Brought the Linux/Mac implementation closer to Windows implementation.
- Reduced memory allocation, especially when the session records a crash.
- Improved chances to send the summary non-delayed by allowing the Editor to send the reports if CRC died unexpectedly.
- Generalized the support to collect and aggregate analytics from helper processes. For example, CRC already collects analytics that is merged with the Editor summary as information supplement
- Reserved the disk space required to store the summary ahead of time to prevent failing later.
- Increased frequency at which the summary is persisted because saving the summary is more efficient. (About every 10 seconds rather than every minutes).
- Added unit tests

CrashReportClient changes:

- Created a 'session summary' from the CRC point of view to merge with the Editor summary.
- Moved analytics collection in a separated class to make the crash reporting code leaner and less noisy with all the analytics
- Merged the CRC diagnostic logger in the class collecting CRC analytics summary and make the diagnostic log a property in the summary.
- Collected analytics (on behalf of Editor) in a background thread because CRC main thread can be blocked collecting a crash, so it doesn't pay attention to other things
- Added MonitorBatteryLevel and MonitorOnACPower summary properties on Windows. Collected on CRC background thread (never blocked, so we reduce changes to miss the battery running out)
- Added MonitorSessionDuration summary property to track now long CRC ran.
- Added MonitorQuitSignalRecv summary property to detect when CRC is soft killed like: taskkill /PID 1234
- Added MonitorIsReportingCrash summary property to track when CRC dies reporting a crash.
- Added MonitorIsCollectingCrash summary property to track when CRC dies collecting a crash artifacts.
- Added IsProcessingCrash summary property to track when CRC dies processing a crash.
- Added MonitorCrashed summary property to track when CRC exception handler was triggered.
- Added MonitorWasShutdown summary property to track when CRC summary was shutdown
- Added MonitorLoggingOut summary property to track when CRC died because the user was logging out (or as result of shutting down or restarting the computer).
- More accurate value for DeathTimestamp summary property because this is now captured in CRC background thread (which cannot be busy handling a crash)
- Added crash processing timing to CRC diagnostic logs (how long it takes to collect/process a crash).

#rb Jamie.Dale, Wes.Hunt, Johan.Berg
#jira UETOOL-3500
#jira UE-114315

[CL 16324612 by Patrick Laflamme in ue5-main branch]
2021-05-13 21:58:20 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
Marc Audy
7379fa99c5 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14229157
[CL 14233282 by Marc Audy in ue5-main branch]
2020-09-01 14:07:48 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
wes hunt
76f71ec604 Added a ability for an IAnalyticsProviderET to check a user-supplied callback function before sending an event.
[at]john.nielson [at]todd.eckert
#tests PIE, client, server

#ROBOMERGE-SOURCE: CL 13062778 via CL 13062781 via CL 13062785
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)

[CL 13062792 by wes hunt in Main branch]
2020-04-28 23:28:11 -04:00
federico oro
431995c895 prevent crash in TJsonWriter by checking if WriteObjectStart can be executed
#rb Cory.Kolek

#ROBOMERGE-SOURCE: CL 12508127 via CL 12508133 via CL 12508137 via CL 12508141
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12508147 by federico oro in Main branch]
2020-04-01 12:51:29 -04:00
marc audy
6e1f018ea3 Add StartSession Overload with SessionID Parameter / Expose Analytics SessionID in KairosAnalytics Embedded Communication
To help us measure the spyjinx launch, we were requested to send the sessionID to the registration/login portal in PartyHub

This wasn't as easy as it sounds, PartyHub shows the portal before UObjects have been initialized, which is when the sessionID is created.

This change initializes a sessionID in the KairosAnalyticsModule and passes that to the AnalyticsProvider

Because the interface changed, we updated a lot of implementations

Preflight:
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/10142111?
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/10142481?
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/10142792?
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/10142855?

Tested along with this change: https://phabricator.ol.epicgames.net/D33275
Ran iOS app without being logged in, observed logs, saw sid=XXXXXXX in the url passed to the account portal


#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: austin.ellis
#ROBOMERGE-SOURCE: CL 12435532 via CL 12435540 via CL 12435543 via CL 12442086
#ROBOMERGE-BOT: (v671-12333473)

[CL 12444853 by marc audy in Release-Engine-Staging branch]
2020-03-26 07:59:05 -04:00
patrick laflamme
151e913fa6 #jira UE-88250 - Crash Report Client doesn't emits EditorSummaryEvent with proper AppId/AppVersion/SessionId/UserId
- Added AppId, AppVersion and UserId as FEditorAnalyticSession members and updated FEditorSessionSummaryWriter to write them.
  - Changed FEngineAnalytics::GetProvider() to return IAnalyticsProviderET rather than IAnalyticsProvider.
  - Updated FEditorSessionSummarySender to embed the AppId/AppVersion/UserId as attribute when sending the summary event and also configured the AnalyticsProvider to use the SessionID/AppID/AppVersion/UserID of the event rather than the current one.
  - Added a function to return the current IAnalyticProviderET configuration.

#rb Wes.Hunt

Edigrated 11445334 and 11459406.

#ROBOMERGE-SOURCE: CL 11512055 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11512070 by patrick laflamme in 4.25-Plus branch]
2020-02-18 15:12:51 -05:00