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;
}