aboutsummaryrefslogtreecommitdiff
path: root/ui/metrics/metrics.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/metrics/metrics.go')
-rw-r--r--ui/metrics/metrics.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/ui/metrics/metrics.go b/ui/metrics/metrics.go
index ce2d94667..717530c47 100644
--- a/ui/metrics/metrics.go
+++ b/ui/metrics/metrics.go
@@ -32,13 +32,13 @@ package metrics
// of what an event is and how the metrics system is a stack based system.
import (
+ "fmt"
"os"
"runtime"
"strings"
"time"
"android/soong/shared"
-
"google.golang.org/protobuf/proto"
soong_metrics_proto "android/soong/ui/metrics/metrics_proto"
@@ -223,6 +223,17 @@ func (m *Metrics) SetBuildDateTime(buildTimestamp time.Time) {
m.metrics.BuildDateTimestamp = proto.Int64(buildTimestamp.UnixNano() / int64(time.Second))
}
+func (m *Metrics) UpdateTotalRealTime(data []byte) error {
+ if err := proto.Unmarshal(data, &m.metrics); err != nil {
+ return fmt.Errorf("Failed to unmarshal proto", err)
+ }
+ startTime := *m.metrics.Total.StartTime
+ endTime := uint64(time.Now().UnixNano())
+
+ *m.metrics.Total.RealTime = *proto.Uint64(endTime - startTime)
+ return nil
+}
+
// SetBuildCommand adds the build command specified by the user to the
// list of collected metrics.
func (m *Metrics) SetBuildCommand(cmd []string) {