OSDN Git Service

Sync the DurationMetric proto from google3.
authorYao Chen <yaochen@google.com>
Wed, 15 Nov 2017 22:15:46 +0000 (14:15 -0800)
committerYao Chen <yaochen@google.com>
Wed, 15 Nov 2017 22:22:37 +0000 (14:22 -0800)
There are other statsd_config changes for Anomaly detection, but requires
code change. So will sync later.

Test: statsd_test
Change-Id: I927e99bd0763cb949fe339993b232f53a4eefe7a

cmds/statsd/src/config/ConfigManager.cpp
cmds/statsd/src/metrics/metrics_manager_util.cpp
cmds/statsd/src/statsd_config.proto

index 6e8ed77..a9ce4a3 100644 (file)
@@ -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);
index c2044d8..4c63b20 100644 (file)
@@ -220,6 +220,11 @@ bool initMetrics(const StatsdConfig& config, const unordered_map<string, int>& 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<MetricProducer> countProducer =
@@ -276,10 +281,15 @@ bool initMetrics(const StatsdConfig& config, const unordered_map<string, int>& 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<MetricProducer> durationMetric = new DurationMetricProducer(
@@ -308,6 +318,11 @@ bool initMetrics(const StatsdConfig& config, const unordered_map<string, int>& 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<MetricProducer> eventMetric =
@@ -349,6 +364,11 @@ bool initMetrics(const StatsdConfig& config, const unordered_map<string, int>& 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<MetricProducer> valueProducer =
@@ -389,6 +409,11 @@ bool initMetrics(const StatsdConfig& config, const unordered_map<string, int>& 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<MetricProducer> gaugeProducer =
index 7648a91..9a760b1 100644 (file)
@@ -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 {