1/ Support nested message and repeated fields in statsd.
2/ Filter gauge fields by FieldMatcher.
3/ Wire up wakelock attribution chain.
4/ e2e test: wakelock duration metric with aggregated predicate dimensions.
5/ e2e test: count metric with multiple metric condition links for 2 predicates and 1 non-sliced predicate.
Test: statsd unit test passed.
Change-Id: I89db31cb068184a54e0a892fad710966d3127bc9
diff --git a/cmds/statsd/src/stats_log.proto b/cmds/statsd/src/stats_log.proto
index 3c85c57..f5282ea 100644
--- a/cmds/statsd/src/stats_log.proto
+++ b/cmds/statsd/src/stats_log.proto
@@ -24,8 +24,14 @@
import "frameworks/base/cmds/statsd/src/atoms.proto";
-message KeyValuePair {
- optional int32 key = 1;
+message Field {
+ optional int32 field = 1;
+ optional int32 position_index = 2 [default = -1];
+ repeated Field child = 3;
+}
+
+message DimensionsValue {
+ optional int32 field = 1;
oneof value {
string value_str = 2;
@@ -33,9 +39,14 @@
int64 value_long = 4;
bool value_bool = 5;
float value_float = 6;
+ DimensionsValueTuple value_tuple = 7;
}
}
+message DimensionsValueTuple {
+ repeated DimensionsValue dimensions_value = 1;
+}
+
message EventMetricData {
optional int64 timestamp_nanos = 1;
@@ -51,7 +62,7 @@
}
message CountMetricData {
- repeated KeyValuePair dimension = 1;
+ optional DimensionsValue dimension = 1;
repeated CountBucketInfo bucket_info = 2;
}
@@ -65,7 +76,7 @@
}
message DurationMetricData {
- repeated KeyValuePair dimension = 1;
+ optional DimensionsValue dimension = 1;
repeated DurationBucketInfo bucket_info = 2;
}
@@ -79,7 +90,7 @@
}
message ValueMetricData {
- repeated KeyValuePair dimension = 1;
+ optional DimensionsValue dimension = 1;
repeated ValueBucketInfo bucket_info = 2;
}
@@ -93,7 +104,7 @@
}
message GaugeMetricData {
- repeated KeyValuePair dimension = 1;
+ optional DimensionsValue dimension = 1;
repeated GaugeBucketInfo bucket_info = 2;
}