Merge "Rename the dimension_in_what/condition as fields_in_what/condition in MetricConditionLink proto."
This commit is contained in:
committed by
Android (Google) Code Review
commit
5e1f854620
@@ -158,15 +158,15 @@ void flattenValueLeaves(const DimensionsValue& value,
|
||||
std::vector<HashableDimensionKey> getDimensionKeysForCondition(
|
||||
const LogEvent& event, const MetricConditionLink& link) {
|
||||
std::vector<Field> whatFields;
|
||||
getFieldsFromFieldMatcher(link.dimensions_in_what(), &whatFields);
|
||||
getFieldsFromFieldMatcher(link.fields_in_what(), &whatFields);
|
||||
std::vector<Field> conditionFields;
|
||||
getFieldsFromFieldMatcher(link.dimensions_in_condition(), &conditionFields);
|
||||
getFieldsFromFieldMatcher(link.fields_in_condition(), &conditionFields);
|
||||
|
||||
std::vector<HashableDimensionKey> hashableDimensionKeys;
|
||||
|
||||
// TODO(yanglu): here we could simplify the logic to get the leaf value node in what and
|
||||
// directly construct the full condition value tree.
|
||||
std::vector<DimensionsValue> whatValues = getDimensionKeys(event, link.dimensions_in_what());
|
||||
std::vector<DimensionsValue> whatValues = getDimensionKeys(event, link.fields_in_what());
|
||||
|
||||
for (size_t i = 0; i < whatValues.size(); ++i) {
|
||||
std::vector<DimensionsValue> whatLeaves;
|
||||
@@ -185,7 +185,7 @@ std::vector<HashableDimensionKey> getDimensionKeysForCondition(
|
||||
conditionValueMap.insert(std::make_pair(conditionFields[j], whatLeaves[j]));
|
||||
}
|
||||
std::vector<DimensionsValue> conditionValues;
|
||||
findDimensionsValues(conditionValueMap, link.dimensions_in_condition(), &conditionValues);
|
||||
findDimensionsValues(conditionValueMap, link.fields_in_condition(), &conditionValues);
|
||||
if (conditionValues.size() != 1) {
|
||||
ALOGE("Not able to find unambiguous field value in condition atom.");
|
||||
continue;
|
||||
|
||||
@@ -296,10 +296,10 @@ StatsdConfig build_fake_config() {
|
||||
metric->set_condition(204);
|
||||
MetricConditionLink* link = metric->add_links();
|
||||
link->set_condition(203);
|
||||
link->mutable_dimensions_in_what()->set_field(WAKE_LOCK_TAG_ID);
|
||||
link->mutable_dimensions_in_what()->add_child()->set_field(WAKE_LOCK_UID_KEY_ID);
|
||||
link->mutable_dimensions_in_condition()->set_field(APP_USAGE_TAG_ID);
|
||||
link->mutable_dimensions_in_condition()->add_child()->set_field(APP_USAGE_UID_KEY_ID);
|
||||
link->mutable_fields_in_what()->set_field(WAKE_LOCK_TAG_ID);
|
||||
link->mutable_fields_in_what()->add_child()->set_field(WAKE_LOCK_UID_KEY_ID);
|
||||
link->mutable_fields_in_condition()->set_field(APP_USAGE_TAG_ID);
|
||||
link->mutable_fields_in_condition()->add_child()->set_field(APP_USAGE_UID_KEY_ID);
|
||||
|
||||
// Duration of an app holding any wl, while screen on and app in background, slice by uid
|
||||
DurationMetric* durationMetric = config.add_duration_metric();
|
||||
@@ -313,10 +313,10 @@ StatsdConfig build_fake_config() {
|
||||
durationMetric->set_condition(204);
|
||||
link = durationMetric->add_links();
|
||||
link->set_condition(203);
|
||||
link->mutable_dimensions_in_what()->set_field(WAKE_LOCK_TAG_ID);
|
||||
link->mutable_dimensions_in_what()->add_child()->set_field(WAKE_LOCK_UID_KEY_ID);
|
||||
link->mutable_dimensions_in_condition()->set_field(APP_USAGE_TAG_ID);
|
||||
link->mutable_dimensions_in_condition()->add_child()->set_field(APP_USAGE_UID_KEY_ID);
|
||||
link->mutable_fields_in_what()->set_field(WAKE_LOCK_TAG_ID);
|
||||
link->mutable_fields_in_what()->add_child()->set_field(WAKE_LOCK_UID_KEY_ID);
|
||||
link->mutable_fields_in_condition()->set_field(APP_USAGE_TAG_ID);
|
||||
link->mutable_fields_in_condition()->add_child()->set_field(APP_USAGE_UID_KEY_ID);
|
||||
|
||||
// max Duration of an app holding any wl, while screen on and app in background, slice by uid
|
||||
durationMetric = config.add_duration_metric();
|
||||
@@ -330,10 +330,10 @@ StatsdConfig build_fake_config() {
|
||||
durationMetric->set_condition(204);
|
||||
link = durationMetric->add_links();
|
||||
link->set_condition(203);
|
||||
link->mutable_dimensions_in_what()->set_field(WAKE_LOCK_TAG_ID);
|
||||
link->mutable_dimensions_in_what()->add_child()->set_field(WAKE_LOCK_UID_KEY_ID);
|
||||
link->mutable_dimensions_in_condition()->set_field(APP_USAGE_TAG_ID);
|
||||
link->mutable_dimensions_in_condition()->add_child()->set_field(APP_USAGE_UID_KEY_ID);
|
||||
link->mutable_fields_in_what()->set_field(WAKE_LOCK_TAG_ID);
|
||||
link->mutable_fields_in_what()->add_child()->set_field(WAKE_LOCK_UID_KEY_ID);
|
||||
link->mutable_fields_in_condition()->set_field(APP_USAGE_TAG_ID);
|
||||
link->mutable_fields_in_condition()->add_child()->set_field(APP_USAGE_UID_KEY_ID);
|
||||
|
||||
// Duration of an app holding any wl, while screen on and app in background
|
||||
durationMetric = config.add_duration_metric();
|
||||
@@ -344,10 +344,10 @@ StatsdConfig build_fake_config() {
|
||||
durationMetric->set_condition(204);
|
||||
link = durationMetric->add_links();
|
||||
link->set_condition(203);
|
||||
link->mutable_dimensions_in_what()->set_field(WAKE_LOCK_TAG_ID);
|
||||
link->mutable_dimensions_in_what()->add_child()->set_field(WAKE_LOCK_UID_KEY_ID);
|
||||
link->mutable_dimensions_in_condition()->set_field(APP_USAGE_TAG_ID);
|
||||
link->mutable_dimensions_in_condition()->add_child()->set_field(APP_USAGE_UID_KEY_ID);
|
||||
link->mutable_fields_in_what()->set_field(WAKE_LOCK_TAG_ID);
|
||||
link->mutable_fields_in_what()->add_child()->set_field(WAKE_LOCK_UID_KEY_ID);
|
||||
link->mutable_fields_in_condition()->set_field(APP_USAGE_TAG_ID);
|
||||
link->mutable_fields_in_condition()->add_child()->set_field(APP_USAGE_UID_KEY_ID);
|
||||
|
||||
|
||||
// Duration of screen on time.
|
||||
|
||||
@@ -151,9 +151,9 @@ message Bucket {
|
||||
message MetricConditionLink {
|
||||
optional int64 condition = 1;
|
||||
|
||||
optional FieldMatcher dimensions_in_what = 2;
|
||||
optional FieldMatcher fields_in_what = 2;
|
||||
|
||||
optional FieldMatcher dimensions_in_condition = 3;
|
||||
optional FieldMatcher fields_in_condition = 3;
|
||||
}
|
||||
|
||||
message FieldFilter {
|
||||
|
||||
@@ -57,10 +57,10 @@ StatsdConfig CreateStatsdConfigForPushedEvent() {
|
||||
|
||||
auto links = gaugeMetric->add_links();
|
||||
links->set_condition(isInBackgroundPredicate.id());
|
||||
auto dimensionWhat = links->mutable_dimensions_in_what();
|
||||
auto dimensionWhat = links->mutable_fields_in_what();
|
||||
dimensionWhat->set_field(android::util::APP_START_CHANGED);
|
||||
dimensionWhat->add_child()->set_field(1); // uid field.
|
||||
auto dimensionCondition = links->mutable_dimensions_in_condition();
|
||||
auto dimensionCondition = links->mutable_fields_in_condition();
|
||||
dimensionCondition->set_field(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
||||
dimensionCondition->add_child()->set_field(1); // uid field.
|
||||
return config;
|
||||
|
||||
@@ -75,20 +75,20 @@ StatsdConfig CreateStatsdConfig() {
|
||||
// Links between crash atom and condition of app is in syncing.
|
||||
auto links = countMetric->add_links();
|
||||
links->set_condition(isSyncingPredicate.id());
|
||||
auto dimensionWhat = links->mutable_dimensions_in_what();
|
||||
auto dimensionWhat = links->mutable_fields_in_what();
|
||||
dimensionWhat->set_field(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||
dimensionWhat->add_child()->set_field(1); // uid field.
|
||||
auto dimensionCondition = links->mutable_dimensions_in_condition();
|
||||
auto dimensionCondition = links->mutable_fields_in_condition();
|
||||
dimensionCondition->set_field(android::util::SYNC_STATE_CHANGED);
|
||||
dimensionCondition->add_child()->set_field(1); // uid field.
|
||||
|
||||
// Links between crash atom and condition of app is in background.
|
||||
links = countMetric->add_links();
|
||||
links->set_condition(isInBackgroundPredicate.id());
|
||||
dimensionWhat = links->mutable_dimensions_in_what();
|
||||
dimensionWhat = links->mutable_fields_in_what();
|
||||
dimensionWhat->set_field(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||
dimensionWhat->add_child()->set_field(1); // uid field.
|
||||
dimensionCondition = links->mutable_dimensions_in_condition();
|
||||
dimensionCondition = links->mutable_fields_in_condition();
|
||||
dimensionCondition->set_field(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
||||
dimensionCondition->add_child()->set_field(1); // uid field.
|
||||
return config;
|
||||
|
||||
@@ -149,8 +149,8 @@ TEST(CountMetricProducerTest, TestEventsWithSlicedCondition) {
|
||||
metric.set_condition(StringToId("APP_IN_BACKGROUND_PER_UID_AND_SCREEN_ON"));
|
||||
MetricConditionLink* link = metric.add_links();
|
||||
link->set_condition(StringToId("APP_IN_BACKGROUND_PER_UID"));
|
||||
*link->mutable_dimensions_in_what() = buildSimpleAtomFieldMatcher(tagId, 1);
|
||||
*link->mutable_dimensions_in_condition() = buildSimpleAtomFieldMatcher(conditionTagId, 2);
|
||||
*link->mutable_fields_in_what() = buildSimpleAtomFieldMatcher(tagId, 1);
|
||||
*link->mutable_fields_in_condition() = buildSimpleAtomFieldMatcher(conditionTagId, 2);
|
||||
|
||||
LogEvent event1(tagId, bucketStartTimeNs + 1);
|
||||
event1.write("111"); // uid
|
||||
|
||||
@@ -98,8 +98,8 @@ TEST(EventMetricProducerTest, TestEventsWithSlicedCondition) {
|
||||
metric.set_condition(StringToId("APP_IN_BACKGROUND_PER_UID_AND_SCREEN_ON"));
|
||||
MetricConditionLink* link = metric.add_links();
|
||||
link->set_condition(StringToId("APP_IN_BACKGROUND_PER_UID"));
|
||||
*link->mutable_dimensions_in_what() = buildSimpleAtomFieldMatcher(tagId, 1);
|
||||
*link->mutable_dimensions_in_condition() = buildSimpleAtomFieldMatcher(conditionTagId, 2);
|
||||
*link->mutable_fields_in_what() = buildSimpleAtomFieldMatcher(tagId, 1);
|
||||
*link->mutable_fields_in_condition() = buildSimpleAtomFieldMatcher(conditionTagId, 2);
|
||||
|
||||
LogEvent event1(tagId, bucketStartTimeNs + 1);
|
||||
EXPECT_TRUE(event1.write("111"));
|
||||
|
||||
Reference in New Issue
Block a user