Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8ba1fb0e authored by Luca Farsi's avatar Luca Farsi
Browse files

Add optimized build metrics to soong metrics

These metrics will track the metrics related to optimized metrics:
analysis time, packaging time, and info on specific targets including
whether or not they were optimized and why and what modules end up in
each suite.

Test: N/A
Bug: 372973116
Change-Id: Ia3783b2eb50a731726ec34cd74033cd33367cee0
parent adab4787
Loading
Loading
Loading
Loading
+573 −252

File changed.

Preview size limit exceeded, changes collapsed.

+35 −0
Original line number Diff line number Diff line
@@ -137,6 +137,9 @@ message MetricsBase {
  // Note that not all changed environment variables result in analysis retriggering.
  // If there was no previous build, this list will be empty.
  repeated string changed_environment_variable = 34;

  // Metrics related to optimized builds.
  optional OptimizedBuildMetrics optimized_build_metrics = 35;
}

message BuildConfig {
@@ -385,3 +388,35 @@ message JobInfo {
  // Description of a job
  optional string job_description = 2;
}

message OptimizedBuildMetrics {
  // The total time spent analyzing what/how to optimize everything.
  optional PerfInfo analysis_perf = 1;
  // The total time spent packaging artifacts.
  optional PerfInfo packaging_perf = 2;
  // Information for a single target (e.g. general-tests).
  repeated TargetOptimizationResult target_result = 3;

  message TargetOptimizationResult {
    // Target name (e.g. general-tests).
    optional string name = 1;
    // Whether or not this target was optimized.
    optional bool optimized = 2;
    // Reasoning for why the target wasn't optimized if it wasn't
    optional string optimization_rationale = 3;
    // Time spent packaging this specific target (if it was optimized).
    optional PerfInfo packaging_perf = 4;
    // Information for each different artifact produced by this target (if it
    // was optimized).
    repeated OutputArtifact output_artifact = 5;

    message OutputArtifact {
      // Artifact file name (e.g. general-tests.zip)
      optional string name = 1;
      // Size of the file.
      optional int64 size = 2;
      // Lists of modules packaged into this artifact.
      repeated string included_modules = 3;
    }
  }
}