Closed Bug 559885 Opened 14 years ago Closed 14 years ago

Report on end-to-end time

Categories

(Release Engineering :: General, defect, P4)

x86
Linux
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: catlee, Assigned: astoica)

References

Details

(Whiteboard: [automation][reporting][q3goal])

Attachments

(1 file, 1 obsolete file)

Similar to how we have wait-time reports, we need end-to-end time reports for our various platforms and branches.
Whiteboard: [automation][reporting]
Whiteboard: [automation][reporting] → [automation][reporting][q2goal?]
Whiteboard: [automation][reporting][q2goal?] → [automation][reporting][q3goal]
Assignee: nobody → astoica
e2e UI:
- All reports main menu
- Sort tables: e2e Times Report by Least when_timestamp, Build Run table by start_time
- JSON for: e2e Times, Build run

e2e Other:
- changed all queries to return build requests with endtime <, and not <=
- replace from sqlalchemy import * with actual imports
- removed whitespaces
- grouped general code in model.util.py

Average Time per Builder Report:
- Main report for all builders. Display: buildername, build type, job type, avg duration, no build request, % of successful/warnings/failed, min duration, max duration
- Individual report for each builder: summary with everything above, plus all build requests that contributed to the result
- running and pending jobs were excluded
- the report is made for a timeframe, selectable through the date picker
- JSON for: Agv time/builder, Builder details
Attachment #474739 - Flags: review?(catlee)
Depends on: 594496
No longer depends on: 539588
Comment on attachment 474739 [details] [diff] [review]
e2e json + other and Average Time per Builder Report

>+class BuilderTypeReport(object):
>+
>+    def __init__(self, buildername, starttime=None, endtime=None):
>+        self.starttime = starttime
>+        self.endtime = endtime
>+        self.buildername = buildername
>+
>+        self.platform = get_platform(buildername)
>+        self.build_type = get_build_type(buildername) # opt / debug
>+        self.job_type = get_job_type(buildername)     # build / unittest / talos
>+
>+        self.build_requests = []
>+
>+        self._d_min = NaN
>+        self._d_max = 0
>+        self._d_sum = 0
>+        self._total_br_results = {
>+            BuildRequest.no_result: 0,
>+            BuildRequest.success: 0,
>+            BuildRequest.warnings: 0,
>+            BuildRequest.failure: 0,
>+            BuildRequest.skipped: 0,
>+            BuildRequest.exception: 0,
>+            BuildRequest.retry: 0,
>+        }

This stuff is a bit weird.  Maybe we can move these up into buildapi/model/util.py as top-level variables?
(NO_RESULT, SUCCESS, ...) = range(-1, 6)

> class BuildRequest(object):
>-    st_pending = 0
>-    st_running = 1
>-    st_complete = 2
>-    st_cancelled = 3
>-    st_interrupted = 4
>-    st_misc = 5
>-    
>+    st_pending, st_running, st_complete, st_cancelled, st_interrupted, st_misc = range(6)

Same here.

>--- a/buildapi/model/util.py
>+++ b/buildapi/model/util.py
>@@ -1,9 +1,161 @@
>-import time
>+import time, re
>+
>+NaN = -1

NaN should be really not a number.  None is handy to use.
Attachment #474739 - Flags: review?(catlee) → review-
previous patch updated to reflect Comment 2
Attachment #474739 - Attachment is obsolete: true
Attachment #475148 - Flags: review?(catlee)
Attachment #475148 - Flags: review?(catlee)
Attachment #475148 - Flags: review+
Attachment #475148 - Flags: checked-in+
See Also: → 600252
Anamaria finished this a while ago.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: