chromium/tools/perf/core/tbmv3/metrics/power_rails_metric.proto

syntax = "proto2";

package perfetto.protos;

import "protos/perfetto/metrics/metrics.proto";
import "protos/perfetto/metrics/custom_options.proto";

// A metric that collects on-device power rails measurements.
// The power drain breakdown is device-specific since different devices have
// different sensors. See go/power-mobile-benchmark for the list of
// supported devices.
// Output values are in Joules (Watt-seconds).
//
// Next id: 26.
message PowerRailsMetric {
  // story_* values - power consumption over the duration of the story run.
  // This doesn't include Chrome starting and loading a page.
  optional float story_total_j = 1 [(unit) = "J_smallerIsBetter"];
  optional float story_cpu_big_core_cluster_j = 2
      [(unit) = "J_smallerIsBetter"];
  optional float story_cpu_mid_core_cluster_j = 24
      [(unit) = "J_smallerIsBetter"];
  optional float story_cpu_little_core_cluster_j = 3
      [(unit) = "J_smallerIsBetter"];
  optional float story_soc_j = 4 [(unit) = "J_smallerIsBetter"];
  optional float story_mem_j = 20 [(unit) = "J_smallerIsBetter"];
  optional float story_gpu_j = 21 [(unit) = "J_smallerIsBetter"];
  optional float story_cellular_j = 5 [(unit) = "J_smallerIsBetter"];
  optional float story_wifi_j = 6 [(unit) = "J_smallerIsBetter"];
  optional float story_display_j = 7 [(unit) = "J_smallerIsBetter"];
  optional float story_duration_ms = 8 [(unit) = "ms"];
  optional float story_cpu_and_system_j = 9 [(unit) = "J_smallerIsBetter"];

  // interaction_* values - power consumption over the combined duration
  // of Interaction.* events, e.g. Interaction.Gesture_ScrollAction.
  optional float interaction_total_j = 11 [(unit) = "J_smallerIsBetter"];
  optional float interaction_cpu_big_core_cluster_j = 12
      [(unit) = "J_smallerIsBetter"];
  optional float interaction_cpu_mid_core_cluster_j = 25
      [(unit) = "J_smallerIsBetter"];
  optional float interaction_cpu_little_core_cluster_j = 13
      [(unit) = "J_smallerIsBetter"];
  optional float interaction_soc_j = 14 [(unit) = "J_smallerIsBetter"];
  optional float interaction_mem_j = 22 [(unit) = "J_smallerIsBetter"];
  optional float interaction_gpu_j = 23 [(unit) = "J_smallerIsBetter"];
  optional float interaction_cellular_j = 15 [(unit) = "J_smallerIsBetter"];
  optional float interaction_wifi_j = 16 [(unit) = "J_smallerIsBetter"];
  optional float interaction_display_j = 17 [(unit) = "J_smallerIsBetter"];
  optional float interaction_duration_ms = 18 [(unit) = "ms"];
  optional float interaction_cpu_and_system_j = 19
      [(unit) = "J_smallerIsBetter"];
}

extend TraceMetrics {
  optional PowerRailsMetric power_rails_metric = 457;
}