summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmds/statsd/src/metrics/ValueMetricProducer.cpp5
-rw-r--r--cmds/statsd/src/metrics/duration_helper/OringDurationTracker.cpp5
2 files changed, 7 insertions, 3 deletions
diff --git a/cmds/statsd/src/metrics/ValueMetricProducer.cpp b/cmds/statsd/src/metrics/ValueMetricProducer.cpp
index f03ce4550bc4..58a9a38b83d4 100644
--- a/cmds/statsd/src/metrics/ValueMetricProducer.cpp
+++ b/cmds/statsd/src/metrics/ValueMetricProducer.cpp
@@ -187,8 +187,9 @@ void ValueMetricProducer::onStateChanged(int64_t eventTimeNs, int32_t atomId,
VLOG("ValueMetric %lld onStateChanged time %lld, State %d, key %s, %d -> %d",
(long long)mMetricId, (long long)eventTimeNs, atomId, primaryKey.toString().c_str(),
oldState.mValue.int_value, newState.mValue.int_value);
- // If condition is not true, we do not need to pull for this state change.
- if (mCondition != ConditionState::kTrue) {
+ // If condition is not true or metric is not active, we do not need to pull
+ // for this state change.
+ if (mCondition != ConditionState::kTrue || !mIsActive) {
return;
}
diff --git a/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.cpp b/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.cpp
index 19b2fe89989d..0d49bbc269a3 100644
--- a/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.cpp
+++ b/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.cpp
@@ -329,7 +329,10 @@ void OringDurationTracker::onConditionChanged(bool condition, const int64_t time
void OringDurationTracker::onStateChanged(const int64_t timestamp, const int32_t atomId,
const FieldValue& newState) {
- // If no keys are being tracked, update the current state key and return.
+ // Nothing needs to be done on a state change if we have not seen a start
+ // event, the metric is currently not active, or condition is false.
+ // For these cases, no keys are being tracked in mStarted, so update
+ // the current state key and return.
if (mStarted.empty()) {
updateCurrentStateKey(atomId, newState);
return;