Commit Graph

35 Commits

Author SHA1 Message Date
geoff evans
58022cbe85 Add StallDetector to Session Summary for Analytics
This adds some scalar statistics to the session summary:
* The total stall trigger count
* The total reported stalls
* The top stall name
* The top stall budget time in seconds
* The top stall cumulative overage time in seconds
* The top stall trigger count

#jira none
#rb patrick.laflamme, francis.hurteau
#preflight /job/6019a5ef797f69000126f9b6

[CL 15284567 by geoff evans in ue5-main branch]
2021-02-02 16:47:04 -04:00
Patrick Laflamme
1f5993dff0 Fixed CIS errors reported on Android.
#jira - UE-106832 //UE5/Main - Compile FortniteClient Android - EditorAnalyticsSession.cpp errors
#rb Trivial.

[CL 15146147 by Patrick Laflamme in ue5-main branch]
2021-01-20 13:41:51 -04:00
Patrick Laflamme
39beb94b81 #jira UETOOL-2873 - For MTBF, account for crashes happening before analytics is initialized.
- Count number of crashes before Analytics get initialized and report them as DelayedCrashCount field of the Editor summary session event.

#rb Jamie.Dale

[CL 15128718 by Patrick Laflamme in ue5-main branch]
2021-01-18 10:45:38 -04:00
Patrick Laflamme
d2a8e90a0d Fixed static analyis warning V634: The priority of the '*' operation is higher than that of the '<<' operation. It's possible that parentheses should be used in the expression in EditorAnalyticSession.cpp
#rnx
#rb Trivial

[CL 14913128 by Patrick Laflamme in ue5-main branch]
2020-12-14 09:35:27 -04:00
Patrick Laflamme
4ea7ec01f2 Fixed a race condition firing an ensure when saving the Editor analytic session in background.
#rb Jamie.Dale

[CL 14891480 by Patrick Laflamme in ue5-main branch]
2020-12-09 16:15:57 -04:00
Marc Audy
a7f9391231 Merge UE5/Release-Engine-Staging @ 14811410 to UE5/Main
This represents UE4/Main @ 14768117

For ReleaseObjectVersion.h
#lockdown Marcus.Wassmer

[CL 14811440 by Marc Audy in ue5-main branch]
2020-11-24 18:42:39 -04:00
Marc Audy
68150e0be7 Merge UE5/Release-Engine-Staging to UE5/Main @ 14611496
This represents UE4/Main @ 14594913

[CL 14612291 by Marc Audy in ue5-main branch]
2020-10-29 13:38:15 -04:00
Marc Audy
4c1bb11c29 Merge UE5/Release-Engine-Staging to UE5/Main @ 14548662
This represents UE4/Main @ 14525125 + cherrypicked fixes
#skipundocheck

[CL 14551026 by Marc Audy in ue5-main branch]
2020-10-22 19:19:16 -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
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
patrick laflamme
0364d01a96 #jira UE-92319 - Normal Editor shutdown can be reported as abnormal shutdown because of lock contention
- In case of contention on the system session lock, fallback on the lockless mechanism (the one use for crash/terminate) to report the shutdown (we may not save everything, but we will save the most important information)

#rb none
#lockdown cristina.riverun

#ROBOMERGE-SOURCE: CL 12974643 in //UE4/Release-4.25/... via CL 12974652 via CL 12974654
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)

[CL 12974660 by patrick laflamme in Main branch]
2020-04-22 10:39:52 -04:00
patrick laflamme
30017ee6f0 #jira UE-92231 - Editor session summary event doesn't have any link to CrashGUID
- Implemented a special logger inside CrashReportClientEditor to capture and save important events such as crash reporting (along with the CrashGUID)
  - When CrashReportClientEditor sends all the Editor summary events, if an error was detected in the session being sent, the mini-log for that session is attached to the analytic event.

#rb Chris.Gagnon, Jamie.Dale
#lockdown cristina.riverun

#ROBOMERGE-SOURCE: CL 12935952 in //UE4/Release-4.25/... via CL 12935970 via CL 12935996
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)

[CL 12936020 by patrick laflamme in Main branch]
2020-04-20 15:38:55 -04:00
patrick laflamme
847fb54e89 Detected and reported if CrashReportClientEditor crashed itself and improved how Editor analytics summarize few stats:
- Computed a more accurate 'idle' base on user inputs.
  - Experimenting a measurement of Editor 'idle' time based on Editor process CPU usage.
  - Recorded entering/exiting PIE right away rather than waiting the next 'heartbeat' up to 60 seconds.
  - In case the the session creation is delayed (because contention on the session lock), don't wait up to 60 seconds to retry. Retry immediatedly at the next tick.
  - Increased update rate of the session in the first minute to each second rather than each minute because lot of crashes occurs before the first minute.

#jira UE-91890 - Detect and report if CrashReportClientEditor is crashing
#rb Jamie.Dale
#lockdown cristina.riverun

#ROBOMERGE-SOURCE: CL 12751397 in //UE4/Release-4.25/... via CL 12751399 via CL 12783803
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)

[CL 12786319 by patrick laflamme in Main branch]
2020-04-14 16:52:27 -04:00
patrick laflamme
21f4994064 Fixed a variable in analytic session that could be use before initialization.
#jira none
#rb trivial
#lockdown cristina.riverun

#ROBOMERGE-SOURCE: CL 12695208 in //UE4/Release-4.25/... via CL 12695223 via CL 12695256
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v676-12543919)

[CL 12695269 by patrick laflamme in Main branch]
2020-04-09 15:53:20 -04:00
patrick laflamme
675cc37038 Prevented one CrashReportClientEditor from sending the report owned by another concurrent instance and losing the exit code.
#jira UE-91493 - CrashReportClientEditor may send a report owned by another concurrent instance losing the exit code in the process
#rb Jamie.Dale

#ROBOMERGE-SOURCE: CL 12598059 in //UE4/Release-4.25/... via CL 12598060 via CL 12598062
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)

[CL 12598063 by patrick laflamme in Main branch]
2020-04-03 16:23:51 -04:00
Patrick Laflamme
e3298bf3f1 Fixed crash in EditorSessionSummaryWriter if the current session is not created.
- Added null check in case the session creation is delayed because the system wide lock could not be taken at init time.

Fixed the likely cause of unknown exit code reported by CrashReportClientEditor
  - Fixed EditorSessionSummarySenderto loop/wait until system wide lock could be acquired before returning if bForceSendCurrentSession is true.

#jira UE-91160 - Editor Analytics can crash if the session is created late
#rb Jamie.Dale

[CL 12446564 by Patrick Laflamme in 4.25 branch]
2020-03-26 08:27:29 -04:00
Patrick Laflamme
3ef33a16e1 Fixed missing header files reported by CIS in EditorAnalyticSession.cpp
#jira none
#rb none

[CL 12351517 by Patrick Laflamme in 4.25 branch]
2020-03-20 17:24:22 -04:00
Patrick Laflamme
825c626cf9 Improved reliability of the Editor analytics.
- Modified the Editor session to support lockless logging and corresponding analysis for concurrent events.
  - Added null check EditorSessionSummaryWriter::LowDriveSpaceDetected() to prevent accessing a null session.
  - Fixed CrashReportClient that could use the analytic provider outside of init/shutdow
  - Fixed IdleTime reported that could be buggy if Slate did not register any interaction before a crash occurs.

#jira UE-90719 - FPlatformMisc::RequestExit() can corrupt the EditorSessionSummaryWriter
#rb Jamie.Dale

[CL 12350899 by Patrick Laflamme in 4.25 branch]
2020-03-20 17:09:21 -04:00
Patrick Laflamme
5282b80845 #jira UE-90544 Editor analytics reads the wrong key to report the user total RAM
- Used the correct analytic key to read the stored value before sending.

#rb Wes.Hunt

[CL 12149938 by Patrick Laflamme in 4.25 branch]
2020-03-12 13:36:07 -04:00
Patrick Laflamme
4a8093b9ef #jira UE-90364 - CrashReportClientEditor reports the wrong platform (WindowsNoEditor) for the Editor sessions summary
- Fixed the EditorSessionSummarySender to use the FPlatformProperties::IniPlatformName() rather than FPlatformProperties::PlatformName(). Assuming CRC runs on the same platform as the Editor, the platform reported will be "Windows", "Mac" and "Linux".

#rb Wes.Hunt

[CL 12115143 by Patrick Laflamme in 4.25 branch]
2020-03-10 15:30:12 -04:00
Brandon Schaefer
1e4fd036c3 Batch writing ini files for Unix
#jira UE-84939
#rb Seabstian.Nordgren
#review-11937708 @Josh.Adams, @Seabstien.Nordgren

[CL 12000609 by Brandon Schaefer in 4.25 branch]
2020-03-06 12:10:43 -05:00
Patrick Laflamme
c05f507c5e #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.

[CL 11512055 by Patrick Laflamme in 4.25 branch]
2020-02-18 15:12:36 -05:00
Marc Audy
2080159f77 Fix missing includes
#rb
#rnx

[CL 11301105 by Marc Audy in Main branch]
2020-02-08 13:01:12 -05:00
JeanMichel Dignard
70d074639f Merging //UE4/Dev-Main @ 10886849 to Dev-Tools-Staging (//UE4/Dev-Tools-Staging)
#rb none
#rnx

[CL 10906274 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-08 13:26:18 -05:00