diff options
Diffstat (limited to 'cmds/statsd/src/StatsLogProcessor.cpp')
-rw-r--r-- | cmds/statsd/src/StatsLogProcessor.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/cmds/statsd/src/StatsLogProcessor.cpp b/cmds/statsd/src/StatsLogProcessor.cpp index 60e259be9558..e7b32c56551a 100644 --- a/cmds/statsd/src/StatsLogProcessor.cpp +++ b/cmds/statsd/src/StatsLogProcessor.cpp @@ -101,6 +101,7 @@ StatsLogProcessor::StatsLogProcessor(const sp<UidMap>& uidMap, mLargestTimestampSeen(0), mLastTimestampSeen(0) { mPullerManager->ForceClearPullerCache(); + StateManager::getInstance().updateLogSources(uidMap); } StatsLogProcessor::~StatsLogProcessor() { @@ -419,6 +420,9 @@ void StatsLogProcessor::OnLogEvent(LogEvent* event, int64_t elapsedRealtimeNs) { // The field numbers need to be currently updated by hand with atoms.proto if (atomId == android::os::statsd::util::ISOLATED_UID_CHANGED) { onIsolatedUidChangedEventLocked(*event); + } else { + // Map the isolated uid to host uid if necessary. + mapIsolatedUidToHostUidIfNecessaryLocked(event); } StateManager::getInstance().onLogEvent(*event); @@ -433,12 +437,6 @@ void StatsLogProcessor::OnLogEvent(LogEvent* event, int64_t elapsedRealtimeNs) { mLastPullerCacheClearTimeSec = curTimeSec; } - - if (atomId != android::os::statsd::util::ISOLATED_UID_CHANGED) { - // Map the isolated uid to host uid if necessary. - mapIsolatedUidToHostUidIfNecessaryLocked(event); - } - std::unordered_set<int> uidsWithActiveConfigsChanged; std::unordered_map<int, std::vector<int64_t>> activeConfigsPerUid; // pass the event to metrics managers. @@ -531,7 +529,9 @@ void StatsLogProcessor::OnConfigUpdatedLocked( VLOG("StatsdConfig valid"); } else { // If there is any error in the config, don't use it. + // Remove any existing config with the same key. ALOGE("StatsdConfig NOT valid"); + mMetricsManagers.erase(key); } } @@ -1054,6 +1054,7 @@ void StatsLogProcessor::notifyAppUpgrade(const int64_t& eventTimeNs, const strin const int uid, const int64_t version) { std::lock_guard<std::mutex> lock(mMetricsMutex); VLOG("Received app upgrade"); + StateManager::getInstance().notifyAppChanged(apk, mUidMap); for (const auto& it : mMetricsManagers) { it.second->notifyAppUpgrade(eventTimeNs, apk, uid, version); } @@ -1063,6 +1064,7 @@ void StatsLogProcessor::notifyAppRemoved(const int64_t& eventTimeNs, const strin const int uid) { std::lock_guard<std::mutex> lock(mMetricsMutex); VLOG("Received app removed"); + StateManager::getInstance().notifyAppChanged(apk, mUidMap); for (const auto& it : mMetricsManagers) { it.second->notifyAppRemoved(eventTimeNs, apk, uid); } @@ -1071,6 +1073,7 @@ void StatsLogProcessor::notifyAppRemoved(const int64_t& eventTimeNs, const strin void StatsLogProcessor::onUidMapReceived(const int64_t& eventTimeNs) { std::lock_guard<std::mutex> lock(mMetricsMutex); VLOG("Received uid map"); + StateManager::getInstance().updateLogSources(mUidMap); for (const auto& it : mMetricsManagers) { it.second->onUidMapReceived(eventTimeNs); } |