Add a sampling method to pull gauge when condition changes to true.
Test: statsd test BUG: b/79490890 Change-Id: I82ed6681151f8a217e74bd0d855f817b4fa0619c
This commit is contained in:
@@ -324,6 +324,10 @@ void GaugeMetricProducer::pullLocked(const int64_t timestampNs) {
|
||||
triggerPuller = true;
|
||||
break;
|
||||
}
|
||||
case GaugeMetric::CONDITION_CHANGE_TO_TRUE: {
|
||||
triggerPuller = mCondition;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -348,7 +352,7 @@ void GaugeMetricProducer::onConditionChangedLocked(const bool conditionMet,
|
||||
flushIfNeededLocked(eventTimeNs);
|
||||
mCondition = conditionMet;
|
||||
|
||||
if (mPullTagId != -1 && mCondition) {
|
||||
if (mPullTagId != -1) {
|
||||
pullLocked(eventTimeNs);
|
||||
} // else: Push mode. No need to proactively pull the gauge data.
|
||||
}
|
||||
|
||||
@@ -234,6 +234,7 @@ message GaugeMetric {
|
||||
enum SamplingType {
|
||||
RANDOM_ONE_SAMPLE = 1;
|
||||
ALL_CONDITION_CHANGES = 2;
|
||||
CONDITION_CHANGE_TO_TRUE = 3;
|
||||
}
|
||||
optional SamplingType sampling_type = 9 [default = RANDOM_ONE_SAMPLE] ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user