diff options
| -rw-r--r-- | cmd/soong_ui/main.go | 5 | ||||
| -rw-r--r-- | ui/build/config.go | 3 | ||||
| -rw-r--r-- | ui/build/upload.go | 4 | ||||
| -rw-r--r-- | ui/build/upload_test.go | 5 | ||||
| -rw-r--r-- | ui/metrics/metrics.go | 12 |
5 files changed, 11 insertions, 18 deletions
diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go index 446c46f3e..2d938a3b3 100644 --- a/cmd/soong_ui/main.go +++ b/cmd/soong_ui/main.go @@ -47,7 +47,7 @@ func inList(s string, list []string) bool { } func main() { - buildStartedMilli := time.Now().UnixNano() / int64(time.Millisecond) + buildStarted := time.Now() var stdio terminal.StdioInterface stdio = terminal.StdioImpl{} simpleOutput := false @@ -83,6 +83,7 @@ func main() { defer trace.Close() met := metrics.New() + met.SetBuildDateTime(buildStarted) stat := &status.Status{} defer stat.Finish() @@ -120,7 +121,7 @@ func main() { rbeMetricsFile := filepath.Join(logsDir, logsPrefix+"rbe_metrics.pb") soongMetricsFile := filepath.Join(logsDir, logsPrefix+"soong_metrics") - defer build.UploadMetrics(buildCtx, config, simpleOutput, buildStartedMilli, rbeMetricsFile, soongMetricsFile) + defer build.UploadMetrics(buildCtx, config, simpleOutput, buildStarted, rbeMetricsFile, soongMetricsFile) os.MkdirAll(logsDir, 0777) diff --git a/ui/build/config.go b/ui/build/config.go index fc8737445..8ba425be5 100644 --- a/ui/build/config.go +++ b/ui/build/config.go @@ -218,9 +218,6 @@ func NewConfig(ctx Context, args ...string) Config { } else { content = strconv.FormatInt(time.Now().Unix(), 10) } - if ctx.Metrics != nil { - ctx.Metrics.SetBuildDateTime(content) - } err := ioutil.WriteFile(buildDateTimeFile, []byte(content), 0777) if err != nil { ctx.Fatalln("Failed to write BUILD_DATETIME to file:", err) diff --git a/ui/build/upload.go b/ui/build/upload.go index c7fab6803..d7c57b8db 100644 --- a/ui/build/upload.go +++ b/ui/build/upload.go @@ -44,7 +44,7 @@ var ( // environment variable. The metrics files are copied to a temporary directory // and the uploader is then executed in the background to allow the user to continue // working. -func UploadMetrics(ctx Context, config Config, forceDumbOutput bool, buildStartedMilli int64, files ...string) { +func UploadMetrics(ctx Context, config Config, forceDumbOutput bool, buildStarted time.Time, files ...string) { ctx.BeginTrace(metrics.RunSetupTool, "upload_metrics") defer ctx.EndTrace() @@ -86,7 +86,7 @@ func UploadMetrics(ctx Context, config Config, forceDumbOutput bool, buildStarte // For platform builds, the branch and target name is hardcoded to specific // values for later extraction of the metrics in the data metrics pipeline. data, err := proto.Marshal(&upload_proto.Upload{ - CreationTimestampMs: proto.Uint64(uint64(buildStartedMilli)), + CreationTimestampMs: proto.Uint64(uint64(buildStarted.UnixNano() / int64(time.Millisecond))), CompletionTimestampMs: proto.Uint64(uint64(time.Now().UnixNano() / int64(time.Millisecond))), BranchName: proto.String("developer-metrics"), TargetName: proto.String("platform-build-systems-metrics"), diff --git a/ui/build/upload_test.go b/ui/build/upload_test.go index 2d42aa859..eb2dafa30 100644 --- a/ui/build/upload_test.go +++ b/ui/build/upload_test.go @@ -21,6 +21,7 @@ import ( "path/filepath" "strings" "testing" + "time" "android/soong/ui/logger" ) @@ -94,7 +95,7 @@ func TestUploadMetrics(t *testing.T) { }, }} - UploadMetrics(ctx, config, false, 1591031903, metricsFiles...) + UploadMetrics(ctx, config, false, time.Now(), metricsFiles...) }) } } @@ -148,7 +149,7 @@ func TestUploadMetricsErrors(t *testing.T) { "OUT_DIR=/bad", }}} - UploadMetrics(ctx, config, true, 1591031903, metricsFile) + UploadMetrics(ctx, config, true, time.Now(), metricsFile) t.Errorf("got nil, expecting %q as a failure", tt.expectedErr) }) } diff --git a/ui/metrics/metrics.go b/ui/metrics/metrics.go index 790b67ad5..39b55cb91 100644 --- a/ui/metrics/metrics.go +++ b/ui/metrics/metrics.go @@ -17,7 +17,7 @@ package metrics import ( "io/ioutil" "os" - "strconv" + "time" "android/soong/ui/metrics/metrics_proto" @@ -127,14 +127,8 @@ func (m *Metrics) getArch(arch string) *metrics_proto.MetricsBase_ARCH { } } -func (m *Metrics) SetBuildDateTime(date_time string) { - if date_time != "" { - date_time_timestamp, err := strconv.ParseInt(date_time, 10, 64) - if err != nil { - panic(err) - } - m.metrics.BuildDateTimestamp = &date_time_timestamp - } +func (m *Metrics) SetBuildDateTime(buildTimestamp time.Time) { + m.metrics.BuildDateTimestamp = proto.Int64(buildTimestamp.UnixNano() / int64(time.Second)) } func (m *Metrics) Serialize() (data []byte, err error) { |