Loading cmds/statsd/src/StatsLogProcessor.h +1 −0 Original line number Diff line number Diff line Loading @@ -272,6 +272,7 @@ private: FRIEND_TEST(MetricActivationE2eTest, TestCountMetric); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations); FRIEND_TEST(DurationMetricE2eTest, TestOneBucket); Loading cmds/statsd/src/metrics/MetricProducer.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -124,7 +124,8 @@ void MetricProducer::addActivation(int activationTrackerIndex, const ActivationT std::make_shared<Activation>(activationType, ttl_seconds * NS_PER_SEC); mEventActivationMap.emplace(activationTrackerIndex, activation); if (-1 != deactivationTrackerIndex) { mEventDeactivationMap.emplace(deactivationTrackerIndex, activation); auto& deactivationList = mEventDeactivationMap[deactivationTrackerIndex]; deactivationList.push_back(activation); } } Loading Loading @@ -155,7 +156,9 @@ void MetricProducer::cancelEventActivationLocked(int deactivationTrackerIndex) { if (it == mEventDeactivationMap.end()) { return; } it->second->state = ActivationState::kNotActive; for (auto activationToCancelIt : it->second) { activationToCancelIt->state = ActivationState::kNotActive; } } void MetricProducer::loadActiveMetricLocked(const ActiveMetric& activeMetric, Loading cmds/statsd/src/metrics/MetricProducer.h +3 −2 Original line number Diff line number Diff line Loading @@ -407,8 +407,8 @@ protected: // whether the metric producer is ready to generate metrics. std::unordered_map<int, std::shared_ptr<Activation>> mEventActivationMap; // Maps index of atom matcher for deactivation to Activation struct. std::unordered_map<int, std::shared_ptr<Activation>> mEventDeactivationMap; // Maps index of atom matcher for deactivation to a list of Activation structs. std::unordered_map<int, std::vector<std::shared_ptr<Activation>>> mEventDeactivationMap; bool mIsActive; Loading @@ -422,6 +422,7 @@ protected: FRIEND_TEST(MetricActivationE2eTest, TestCountMetric); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations); FRIEND_TEST(StatsLogProcessorTest, TestActiveConfigMetricDiskWriteRead); Loading cmds/statsd/src/metrics/MetricsManager.h +1 −0 Original line number Diff line number Diff line Loading @@ -283,6 +283,7 @@ private: FRIEND_TEST(MetricActivationE2eTest, TestCountMetric); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations); FRIEND_TEST(StatsLogProcessorTest, TestActiveConfigMetricDiskWriteRead); Loading cmds/statsd/src/metrics/ValueMetricProducer.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -109,7 +109,8 @@ ValueMetricProducer::ValueMetricProducer( mMaxPullDelayNs(metric.max_pull_delay_sec() > 0 ? metric.max_pull_delay_sec() * NS_PER_SEC : StatsdStats::kPullMaxDelayNs), mSplitBucketForAppUpgrade(metric.split_bucket_for_app_upgrade()), mConditionTimer(mIsActive && mCondition == ConditionState::kTrue, timeBaseNs) { // Condition timer will be set in prepareFirstBucketLocked. mConditionTimer(false, timeBaseNs) { int64_t bucketSizeMills = 0; if (metric.has_bucket()) { bucketSizeMills = TimeUnitToBucketSizeInMillisGuardrailed(key.GetUid(), metric.bucket()); Loading Loading @@ -175,6 +176,9 @@ void ValueMetricProducer::prepareFirstBucketLocked() { if (mIsActive && mIsPulled && mCondition == ConditionState::kTrue && mUseDiff) { pullAndMatchEventsLocked(mCurrentBucketStartTimeNs, mCondition); } // Now that activations are processed, start the condition timer if needed. mConditionTimer.onConditionChanged(mIsActive && mCondition == ConditionState::kTrue, mCurrentBucketStartTimeNs); } void ValueMetricProducer::onSlicedConditionMayChangeLocked(bool overallCondition, Loading Loading
cmds/statsd/src/StatsLogProcessor.h +1 −0 Original line number Diff line number Diff line Loading @@ -272,6 +272,7 @@ private: FRIEND_TEST(MetricActivationE2eTest, TestCountMetric); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations); FRIEND_TEST(DurationMetricE2eTest, TestOneBucket); Loading
cmds/statsd/src/metrics/MetricProducer.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -124,7 +124,8 @@ void MetricProducer::addActivation(int activationTrackerIndex, const ActivationT std::make_shared<Activation>(activationType, ttl_seconds * NS_PER_SEC); mEventActivationMap.emplace(activationTrackerIndex, activation); if (-1 != deactivationTrackerIndex) { mEventDeactivationMap.emplace(deactivationTrackerIndex, activation); auto& deactivationList = mEventDeactivationMap[deactivationTrackerIndex]; deactivationList.push_back(activation); } } Loading Loading @@ -155,7 +156,9 @@ void MetricProducer::cancelEventActivationLocked(int deactivationTrackerIndex) { if (it == mEventDeactivationMap.end()) { return; } it->second->state = ActivationState::kNotActive; for (auto activationToCancelIt : it->second) { activationToCancelIt->state = ActivationState::kNotActive; } } void MetricProducer::loadActiveMetricLocked(const ActiveMetric& activeMetric, Loading
cmds/statsd/src/metrics/MetricProducer.h +3 −2 Original line number Diff line number Diff line Loading @@ -407,8 +407,8 @@ protected: // whether the metric producer is ready to generate metrics. std::unordered_map<int, std::shared_ptr<Activation>> mEventActivationMap; // Maps index of atom matcher for deactivation to Activation struct. std::unordered_map<int, std::shared_ptr<Activation>> mEventDeactivationMap; // Maps index of atom matcher for deactivation to a list of Activation structs. std::unordered_map<int, std::vector<std::shared_ptr<Activation>>> mEventDeactivationMap; bool mIsActive; Loading @@ -422,6 +422,7 @@ protected: FRIEND_TEST(MetricActivationE2eTest, TestCountMetric); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations); FRIEND_TEST(StatsLogProcessorTest, TestActiveConfigMetricDiskWriteRead); Loading
cmds/statsd/src/metrics/MetricsManager.h +1 −0 Original line number Diff line number Diff line Loading @@ -283,6 +283,7 @@ private: FRIEND_TEST(MetricActivationE2eTest, TestCountMetric); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations); FRIEND_TEST(StatsLogProcessorTest, TestActiveConfigMetricDiskWriteRead); Loading
cmds/statsd/src/metrics/ValueMetricProducer.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -109,7 +109,8 @@ ValueMetricProducer::ValueMetricProducer( mMaxPullDelayNs(metric.max_pull_delay_sec() > 0 ? metric.max_pull_delay_sec() * NS_PER_SEC : StatsdStats::kPullMaxDelayNs), mSplitBucketForAppUpgrade(metric.split_bucket_for_app_upgrade()), mConditionTimer(mIsActive && mCondition == ConditionState::kTrue, timeBaseNs) { // Condition timer will be set in prepareFirstBucketLocked. mConditionTimer(false, timeBaseNs) { int64_t bucketSizeMills = 0; if (metric.has_bucket()) { bucketSizeMills = TimeUnitToBucketSizeInMillisGuardrailed(key.GetUid(), metric.bucket()); Loading Loading @@ -175,6 +176,9 @@ void ValueMetricProducer::prepareFirstBucketLocked() { if (mIsActive && mIsPulled && mCondition == ConditionState::kTrue && mUseDiff) { pullAndMatchEventsLocked(mCurrentBucketStartTimeNs, mCondition); } // Now that activations are processed, start the condition timer if needed. mConditionTimer.onConditionChanged(mIsActive && mCondition == ConditionState::kTrue, mCurrentBucketStartTimeNs); } void ValueMetricProducer::onSlicedConditionMayChangeLocked(bool overallCondition, Loading