summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/soong_ui/main.go5
-rw-r--r--ui/build/config.go3
-rw-r--r--ui/build/upload.go4
-rw-r--r--ui/build/upload_test.go5
-rw-r--r--ui/metrics/metrics.go12
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) {