Add pullers for debugging.
These pullers return deterministic values so we'll be able to confirm
to validate the data easily server side locally.
For instance,
- the diff of the elapsed_clock_millis field should always be equal to the bucket size
- the diff of pull_count should always be one unless we hit the cache
Test: manual
Change-Id: I4fab30df287e90f8691740d90d87b67022b9c420
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index d6b4737f..1a0a983 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -212,7 +212,7 @@
}
// Pulled events will start at field 10000.
- // Next: 10043
+ // Next: 10048
oneof pulled {
WifiBytesTransfer wifi_bytes_transfer = 10000;
WifiBytesTransferByFgBg wifi_bytes_transfer_by_fg_bg = 10001;
@@ -260,6 +260,8 @@
BatteryLevel battery_level = 10043;
BuildInformation build_information = 10044;
BatteryCycleCount battery_cycle_count = 10045;
+ DebugElapsedClock debug_elapsed_clock = 10046;
+ DebugFailingElapsedClock debug_failing_elapsed_clock = 10047;
}
// DO NOT USE field numbers above 100,000 in AOSP.
@@ -4557,3 +4559,39 @@
optional string id = 1;
optional android.service.usb.ContaminantPresenceStatus status = 2;
}
+
+/**
+ * This atom is for debugging purpose.
+ */
+message DebugElapsedClock {
+ // Monotically increasing value for each pull.
+ optional int64 pull_count = 1;
+ // Time from System.elapsedRealtime.
+ optional int64 elapsed_clock_millis = 2;
+ // Time from System.elapsedRealtime.
+ optional int64 same_elapsed_clock_millis = 3;
+ // Diff between current elapsed time and elapsed time from previous pull.
+ optional int64 elapsed_clock_diff_millis = 4;
+
+ enum Type {
+ TYPE_UNKNOWN = 0;
+ ALWAYS_PRESENT = 1;
+ PRESENT_ON_ODD_PULLS = 2;
+ }
+ // Type of behavior for the pulled data.
+ optional Type type = 5;
+}
+
+/**
+ * This atom is for debugging purpose.
+ */
+message DebugFailingElapsedClock {
+ // Monotically increasing value for each pull.
+ optional int64 pull_count = 1;
+ // Time from System.elapsedRealtime.
+ optional int64 elapsed_clock_millis = 2;
+ // Time from System.elapsedRealtime.
+ optional int64 same_elapsed_clock_millis = 3;
+ // Diff between current elapsed time and elapsed time from previous pull.
+ optional int64 elapsed_clock_diff_millis = 4;
+}