Loading cmds/statsd/Android.mk +2 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,8 @@ LOCAL_SRC_FILES := \ tests/e2e/Alarm_e2e_test.cpp \ tests/e2e/Attribution_e2e_test.cpp \ tests/e2e/GaugeMetric_e2e_push_test.cpp \ tests/e2e/GaugeMetric_e2e_pull_test.cpp \ tests/e2e/ValueMetric_pull_e2e_test.cpp \ tests/e2e/DimensionInCondition_e2e_combination_AND_cond_test.cpp \ tests/e2e/DimensionInCondition_e2e_combination_OR_cond_test.cpp \ tests/e2e/DimensionInCondition_e2e_simple_cond_test.cpp \ Loading cmds/statsd/benchmark/metric_util.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -365,7 +365,8 @@ sp<StatsLogProcessor> CreateStatsLogProcessor(const long timeBaseSec, const Stat sp<AlarmMonitor> anomalyAlarmMonitor; sp<AlarmMonitor> periodicAlarmMonitor; sp<StatsLogProcessor> processor = new StatsLogProcessor( uidMap, anomalyAlarmMonitor, periodicAlarmMonitor, timeBaseSec, [](const ConfigKey&){}); uidMap, anomalyAlarmMonitor, periodicAlarmMonitor, timeBaseSec * NS_PER_SEC, [](const ConfigKey&){}); processor->OnConfigUpdated(timeBaseSec * NS_PER_SEC, key, config); return processor; } Loading cmds/statsd/src/StatsLogProcessor.cpp +7 −3 Original line number Diff line number Diff line Loading @@ -72,13 +72,13 @@ const int FIELD_ID_CURRENT_REPORT_WALL_CLOCK_NANOS = 6; StatsLogProcessor::StatsLogProcessor(const sp<UidMap>& uidMap, const sp<AlarmMonitor>& anomalyAlarmMonitor, const sp<AlarmMonitor>& periodicAlarmMonitor, const long timeBaseSec, const int64_t timeBaseNs, const std::function<void(const ConfigKey&)>& sendBroadcast) : mUidMap(uidMap), mAnomalyAlarmMonitor(anomalyAlarmMonitor), mPeriodicAlarmMonitor(periodicAlarmMonitor), mSendBroadcast(sendBroadcast), mTimeBaseSec(timeBaseSec), mTimeBaseNs(timeBaseNs), mLastLogTimestamp(0) { } Loading Loading @@ -210,7 +210,7 @@ void StatsLogProcessor::OnConfigUpdatedLocked( const int64_t timestampNs, const ConfigKey& key, const StatsdConfig& config) { VLOG("Updated configuration for key %s", key.ToString().c_str()); sp<MetricsManager> newMetricsManager = new MetricsManager(key, config, mTimeBaseSec, (timestampNs - 1) / NS_PER_SEC + 1, mUidMap, new MetricsManager(key, config, mTimeBaseNs, timestampNs, mUidMap, mAnomalyAlarmMonitor, mPeriodicAlarmMonitor); auto it = mMetricsManagers.find(key); if (it != mMetricsManagers.end()) { Loading Loading @@ -438,6 +438,10 @@ void StatsLogProcessor::WriteDataToDisk() { WriteDataToDiskLocked(); } void StatsLogProcessor::informPullAlarmFired(const int64_t timestampNs) { mStatsPullerManager.OnAlarmFired(timestampNs); } } // namespace statsd } // namespace os } // namespace android cmds/statsd/src/StatsLogProcessor.h +9 −2 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ class StatsLogProcessor : public ConfigListener { public: StatsLogProcessor(const sp<UidMap>& uidMap, const sp<AlarmMonitor>& anomalyAlarmMonitor, const sp<AlarmMonitor>& subscriberTriggerAlarmMonitor, const long timeBaseSec, const int64_t timeBaseNs, const std::function<void(const ConfigKey&)>& sendBroadcast); virtual ~StatsLogProcessor(); Loading Loading @@ -70,6 +70,7 @@ public: void dumpStates(FILE* out, bool verbose); void informPullAlarmFired(const int64_t timestampNs); private: // For testing only. Loading Loading @@ -125,7 +126,7 @@ private: // to retrieve the stored data. std::function<void(const ConfigKey& key)> mSendBroadcast; const long mTimeBaseSec; const int64_t mTimeBaseNs; int64_t mLastLogTimestamp; Loading @@ -145,6 +146,12 @@ private: FRIEND_TEST(AttributionE2eTest, TestAttributionMatchAndSliceByFirstUid); FRIEND_TEST(AttributionE2eTest, TestAttributionMatchAndSliceByChain); FRIEND_TEST(GaugeMetricE2eTest, TestMultipleFieldsForPushedEvent); FRIEND_TEST(GaugeMetricE2eTest, TestRandomSamplePulledEvents); FRIEND_TEST(GaugeMetricE2eTest, TestRandomSamplePulledEvent_LateAlarm); FRIEND_TEST(GaugeMetricE2eTest, TestAllConditionChangesSamplePulledEvents); FRIEND_TEST(ValueMetricE2eTest, TestPulledEvents); FRIEND_TEST(ValueMetricE2eTest, TestPulledEvents_LateAlarm); FRIEND_TEST(DimensionInConditionE2eTest, TestCreateCountMetric_NoLink_OR_CombinationCondition); FRIEND_TEST(DimensionInConditionE2eTest, TestCreateCountMetric_Link_OR_CombinationCondition); FRIEND_TEST(DimensionInConditionE2eTest, TestDurationMetric_NoLink_OR_CombinationCondition); Loading cmds/statsd/src/StatsService.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ StatsService::StatsService(const sp<Looper>& handlerLooper) StatsPuller::SetUidMap(mUidMap); mConfigManager = new ConfigManager(); mProcessor = new StatsLogProcessor(mUidMap, mAnomalyAlarmMonitor, mPeriodicAlarmMonitor, getElapsedRealtimeSec(), [this](const ConfigKey& key) { getElapsedRealtimeNs(), [this](const ConfigKey& key) { sp<IStatsCompanionService> sc = getStatsCompanionService(); auto receiver = mConfigManager->GetConfigReceiver(key); if (sc == nullptr) { Loading Loading @@ -745,7 +745,7 @@ Status StatsService::informPollAlarmFired() { "Only system uid can call informPollAlarmFired"); } mStatsPullerManager.OnAlarmFired(); mProcessor->informPullAlarmFired(getElapsedRealtimeNs()); VLOG("StatsService::informPollAlarmFired succeeded"); Loading Loading
cmds/statsd/Android.mk +2 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,8 @@ LOCAL_SRC_FILES := \ tests/e2e/Alarm_e2e_test.cpp \ tests/e2e/Attribution_e2e_test.cpp \ tests/e2e/GaugeMetric_e2e_push_test.cpp \ tests/e2e/GaugeMetric_e2e_pull_test.cpp \ tests/e2e/ValueMetric_pull_e2e_test.cpp \ tests/e2e/DimensionInCondition_e2e_combination_AND_cond_test.cpp \ tests/e2e/DimensionInCondition_e2e_combination_OR_cond_test.cpp \ tests/e2e/DimensionInCondition_e2e_simple_cond_test.cpp \ Loading
cmds/statsd/benchmark/metric_util.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -365,7 +365,8 @@ sp<StatsLogProcessor> CreateStatsLogProcessor(const long timeBaseSec, const Stat sp<AlarmMonitor> anomalyAlarmMonitor; sp<AlarmMonitor> periodicAlarmMonitor; sp<StatsLogProcessor> processor = new StatsLogProcessor( uidMap, anomalyAlarmMonitor, periodicAlarmMonitor, timeBaseSec, [](const ConfigKey&){}); uidMap, anomalyAlarmMonitor, periodicAlarmMonitor, timeBaseSec * NS_PER_SEC, [](const ConfigKey&){}); processor->OnConfigUpdated(timeBaseSec * NS_PER_SEC, key, config); return processor; } Loading
cmds/statsd/src/StatsLogProcessor.cpp +7 −3 Original line number Diff line number Diff line Loading @@ -72,13 +72,13 @@ const int FIELD_ID_CURRENT_REPORT_WALL_CLOCK_NANOS = 6; StatsLogProcessor::StatsLogProcessor(const sp<UidMap>& uidMap, const sp<AlarmMonitor>& anomalyAlarmMonitor, const sp<AlarmMonitor>& periodicAlarmMonitor, const long timeBaseSec, const int64_t timeBaseNs, const std::function<void(const ConfigKey&)>& sendBroadcast) : mUidMap(uidMap), mAnomalyAlarmMonitor(anomalyAlarmMonitor), mPeriodicAlarmMonitor(periodicAlarmMonitor), mSendBroadcast(sendBroadcast), mTimeBaseSec(timeBaseSec), mTimeBaseNs(timeBaseNs), mLastLogTimestamp(0) { } Loading Loading @@ -210,7 +210,7 @@ void StatsLogProcessor::OnConfigUpdatedLocked( const int64_t timestampNs, const ConfigKey& key, const StatsdConfig& config) { VLOG("Updated configuration for key %s", key.ToString().c_str()); sp<MetricsManager> newMetricsManager = new MetricsManager(key, config, mTimeBaseSec, (timestampNs - 1) / NS_PER_SEC + 1, mUidMap, new MetricsManager(key, config, mTimeBaseNs, timestampNs, mUidMap, mAnomalyAlarmMonitor, mPeriodicAlarmMonitor); auto it = mMetricsManagers.find(key); if (it != mMetricsManagers.end()) { Loading Loading @@ -438,6 +438,10 @@ void StatsLogProcessor::WriteDataToDisk() { WriteDataToDiskLocked(); } void StatsLogProcessor::informPullAlarmFired(const int64_t timestampNs) { mStatsPullerManager.OnAlarmFired(timestampNs); } } // namespace statsd } // namespace os } // namespace android
cmds/statsd/src/StatsLogProcessor.h +9 −2 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ class StatsLogProcessor : public ConfigListener { public: StatsLogProcessor(const sp<UidMap>& uidMap, const sp<AlarmMonitor>& anomalyAlarmMonitor, const sp<AlarmMonitor>& subscriberTriggerAlarmMonitor, const long timeBaseSec, const int64_t timeBaseNs, const std::function<void(const ConfigKey&)>& sendBroadcast); virtual ~StatsLogProcessor(); Loading Loading @@ -70,6 +70,7 @@ public: void dumpStates(FILE* out, bool verbose); void informPullAlarmFired(const int64_t timestampNs); private: // For testing only. Loading Loading @@ -125,7 +126,7 @@ private: // to retrieve the stored data. std::function<void(const ConfigKey& key)> mSendBroadcast; const long mTimeBaseSec; const int64_t mTimeBaseNs; int64_t mLastLogTimestamp; Loading @@ -145,6 +146,12 @@ private: FRIEND_TEST(AttributionE2eTest, TestAttributionMatchAndSliceByFirstUid); FRIEND_TEST(AttributionE2eTest, TestAttributionMatchAndSliceByChain); FRIEND_TEST(GaugeMetricE2eTest, TestMultipleFieldsForPushedEvent); FRIEND_TEST(GaugeMetricE2eTest, TestRandomSamplePulledEvents); FRIEND_TEST(GaugeMetricE2eTest, TestRandomSamplePulledEvent_LateAlarm); FRIEND_TEST(GaugeMetricE2eTest, TestAllConditionChangesSamplePulledEvents); FRIEND_TEST(ValueMetricE2eTest, TestPulledEvents); FRIEND_TEST(ValueMetricE2eTest, TestPulledEvents_LateAlarm); FRIEND_TEST(DimensionInConditionE2eTest, TestCreateCountMetric_NoLink_OR_CombinationCondition); FRIEND_TEST(DimensionInConditionE2eTest, TestCreateCountMetric_Link_OR_CombinationCondition); FRIEND_TEST(DimensionInConditionE2eTest, TestDurationMetric_NoLink_OR_CombinationCondition); Loading
cmds/statsd/src/StatsService.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ StatsService::StatsService(const sp<Looper>& handlerLooper) StatsPuller::SetUidMap(mUidMap); mConfigManager = new ConfigManager(); mProcessor = new StatsLogProcessor(mUidMap, mAnomalyAlarmMonitor, mPeriodicAlarmMonitor, getElapsedRealtimeSec(), [this](const ConfigKey& key) { getElapsedRealtimeNs(), [this](const ConfigKey& key) { sp<IStatsCompanionService> sc = getStatsCompanionService(); auto receiver = mConfigManager->GetConfigReceiver(key); if (sc == nullptr) { Loading Loading @@ -745,7 +745,7 @@ Status StatsService::informPollAlarmFired() { "Only system uid can call informPollAlarmFired"); } mStatsPullerManager.OnAlarmFired(); mProcessor->informPullAlarmFired(getElapsedRealtimeNs()); VLOG("StatsService::informPollAlarmFired succeeded"); Loading