From: Yao Chen Date: Wed, 15 Nov 2017 22:15:46 +0000 (-0800) Subject: Sync the DurationMetric proto from google3. X-Git-Tag: android-x86-9.0-r1~323^2~9^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=5c925ad04ffe959e8fb00253b20daf1f7128b8d6;p=android-x86%2Fframeworks-base.git Sync the DurationMetric proto from google3. There are other statsd_config changes for Anomaly detection, but requires code change. So will sync later. Test: statsd_test Change-Id: I927e99bd0763cb949fe339993b232f53a4eefe7a --- diff --git a/cmds/statsd/src/config/ConfigManager.cpp b/cmds/statsd/src/config/ConfigManager.cpp index 6e8ed7736ee7..a9ce4a337590 100644 --- a/cmds/statsd/src/config/ConfigManager.cpp +++ b/cmds/statsd/src/config/ConfigManager.cpp @@ -212,7 +212,7 @@ static StatsdConfig build_fake_config() { keyMatcher = durationMetric->add_dimension(); keyMatcher->set_key(WAKE_LOCK_UID_KEY_ID); durationMetric->set_what("WL_HELD_PER_APP_PER_NAME"); - durationMetric->set_predicate("APP_IS_BACKGROUND_AND_SCREEN_ON"); + durationMetric->set_condition("APP_IS_BACKGROUND_AND_SCREEN_ON"); link = durationMetric->add_links(); link->set_condition("APP_IS_BACKGROUND"); link->add_key_in_main()->set_key(WAKE_LOCK_UID_KEY_ID); @@ -226,7 +226,7 @@ static StatsdConfig build_fake_config() { keyMatcher = durationMetric->add_dimension(); keyMatcher->set_key(WAKE_LOCK_UID_KEY_ID); durationMetric->set_what("WL_HELD_PER_APP_PER_NAME"); - durationMetric->set_predicate("APP_IS_BACKGROUND_AND_SCREEN_ON"); + durationMetric->set_condition("APP_IS_BACKGROUND_AND_SCREEN_ON"); link = durationMetric->add_links(); link->set_condition("APP_IS_BACKGROUND"); link->add_key_in_main()->set_key(WAKE_LOCK_UID_KEY_ID); @@ -238,7 +238,7 @@ static StatsdConfig build_fake_config() { durationMetric->mutable_bucket()->set_bucket_size_millis(30 * 1000L); durationMetric->set_type(DurationMetric_AggregationType_DURATION_MAX_SPARSE); durationMetric->set_what("WL_HELD_PER_APP_PER_NAME"); - durationMetric->set_predicate("APP_IS_BACKGROUND_AND_SCREEN_ON"); + durationMetric->set_condition("APP_IS_BACKGROUND_AND_SCREEN_ON"); link = durationMetric->add_links(); link->set_condition("APP_IS_BACKGROUND"); link->add_key_in_main()->set_key(WAKE_LOCK_UID_KEY_ID); diff --git a/cmds/statsd/src/metrics/metrics_manager_util.cpp b/cmds/statsd/src/metrics/metrics_manager_util.cpp index c2044d85ec9f..4c63b20f5fb6 100644 --- a/cmds/statsd/src/metrics/metrics_manager_util.cpp +++ b/cmds/statsd/src/metrics/metrics_manager_util.cpp @@ -220,6 +220,11 @@ bool initMetrics(const StatsdConfig& config, const unordered_map& l handleMetricWithConditions(metric.condition(), metricIndex, conditionTrackerMap, metric.links(), allConditionTrackers, conditionIndex, conditionToMetricMap); + } else { + if (metric.links_size() > 0) { + ALOGW("metrics has a EventConditionLink but doesn't have a condition"); + return false; + } } sp countProducer = @@ -276,10 +281,15 @@ bool initMetrics(const StatsdConfig& config, const unordered_map& l int conditionIndex = -1; - if (metric.has_predicate()) { - handleMetricWithConditions(metric.predicate(), metricIndex, conditionTrackerMap, + if (metric.has_condition()) { + handleMetricWithConditions(metric.condition(), metricIndex, conditionTrackerMap, metric.links(), allConditionTrackers, conditionIndex, conditionToMetricMap); + } else { + if (metric.links_size() > 0) { + ALOGW("metrics has a EventConditionLink but doesn't have a condition"); + return false; + } } sp durationMetric = new DurationMetricProducer( @@ -308,6 +318,11 @@ bool initMetrics(const StatsdConfig& config, const unordered_map& l handleMetricWithConditions(metric.condition(), metricIndex, conditionTrackerMap, metric.links(), allConditionTrackers, conditionIndex, conditionToMetricMap); + } else { + if (metric.links_size() > 0) { + ALOGW("metrics has a EventConditionLink but doesn't have a condition"); + return false; + } } sp eventMetric = @@ -349,6 +364,11 @@ bool initMetrics(const StatsdConfig& config, const unordered_map& l handleMetricWithConditions(metric.condition(), metricIndex, conditionTrackerMap, metric.links(), allConditionTrackers, conditionIndex, conditionToMetricMap); + } else { + if (metric.links_size() > 0) { + ALOGW("metrics has a EventConditionLink but doesn't have a condition"); + return false; + } } sp valueProducer = @@ -389,6 +409,11 @@ bool initMetrics(const StatsdConfig& config, const unordered_map& l handleMetricWithConditions(metric.condition(), metricIndex, conditionTrackerMap, metric.links(), allConditionTrackers, conditionIndex, conditionToMetricMap); + } else { + if (metric.links_size() > 0) { + ALOGW("metrics has a EventConditionLink but doesn't have a condition"); + return false; + } } sp gaugeProducer = diff --git a/cmds/statsd/src/statsd_config.proto b/cmds/statsd/src/statsd_config.proto index 7648a9178a7c..9a760b1b8ca5 100644 --- a/cmds/statsd/src/statsd_config.proto +++ b/cmds/statsd/src/statsd_config.proto @@ -161,20 +161,20 @@ message DurationMetric { optional string what = 2; + optional string condition = 3; + + repeated EventConditionLink links = 4; + enum AggregationType { DURATION_SUM = 1; DURATION_MAX_SPARSE = 2; - } - optional AggregationType type = 3; - - optional string predicate = 4; - - repeated KeyMatcher dimension = 5; + } + optional AggregationType type = 5; - optional Bucket bucket = 6; + repeated KeyMatcher dimension = 6; - repeated EventConditionLink links = 7; + optional Bucket bucket = 7; } message GaugeMetric {