Loading cmds/statsd/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -294,6 +294,7 @@ cc_test { "tests/e2e/Anomaly_duration_sum_e2e_test.cpp", "tests/e2e/Attribution_e2e_test.cpp", "tests/e2e/ConfigTtl_e2e_test.cpp", "tests/e2e/ConfigUpdate_e2e_test.cpp", "tests/e2e/CountMetric_e2e_test.cpp", "tests/e2e/DurationMetric_e2e_test.cpp", "tests/e2e/GaugeMetric_e2e_pull_test.cpp", Loading cmds/statsd/src/StatsLogProcessor.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -520,10 +520,10 @@ void StatsLogProcessor::GetActiveConfigsLocked(const int uid, vector<int64_t>& o } void StatsLogProcessor::OnConfigUpdated(const int64_t timestampNs, const ConfigKey& key, const StatsdConfig& config) { const StatsdConfig& config, bool modularUpdate) { std::lock_guard<std::mutex> lock(mMetricsMutex); WriteDataToDiskLocked(key, timestampNs, CONFIG_UPDATED, NO_TIME_CONSTRAINTS); OnConfigUpdatedLocked(timestampNs, key, config); OnConfigUpdatedLocked(timestampNs, key, config, modularUpdate); } void StatsLogProcessor::OnConfigUpdatedLocked(const int64_t timestampNs, const ConfigKey& key, Loading Loading @@ -720,7 +720,8 @@ void StatsLogProcessor::resetConfigsLocked(const int64_t timestampNs, for (const auto& key : configs) { StatsdConfig config; if (StorageManager::readConfigFromDisk(key, &config)) { OnConfigUpdatedLocked(timestampNs, key, config); // Force a full update when resetting a config. OnConfigUpdatedLocked(timestampNs, key, config, /*modularUpdate=*/false); StatsdStats::getInstance().noteConfigReset(key); } else { ALOGE("Failed to read backup config from disk for : %s", key.ToString().c_str()); Loading cmds/statsd/src/StatsLogProcessor.h +6 −2 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ public: void OnLogEvent(LogEvent* event); void OnConfigUpdated(const int64_t timestampNs, const ConfigKey& key, const StatsdConfig& config); const StatsdConfig& config, bool modularUpdate = false); void OnConfigRemoved(const ConfigKey& key); size_t GetMetricsSize(const ConfigKey& key) const; Loading Loading @@ -188,7 +188,7 @@ private: void resetIfConfigTtlExpiredLocked(const int64_t timestampNs); void OnConfigUpdatedLocked(const int64_t currentTimestampNs, const ConfigKey& key, const StatsdConfig& config, bool modularUpdate = false); const StatsdConfig& config, bool modularUpdate); void GetActiveConfigsLocked(const int uid, vector<int64_t>& outActiveConfigs); Loading Loading @@ -338,6 +338,10 @@ private: FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations); FRIEND_TEST(ConfigUpdateE2eTest, TestHashStrings); FRIEND_TEST(ConfigUpdateE2eTest, TestUidMapVersionStringInstaller); FRIEND_TEST(ConfigUpdateE2eTest, TestConfigTtl); FRIEND_TEST(CountMetricE2eTest, TestInitialConditionChanges); FRIEND_TEST(CountMetricE2eTest, TestSlicedState); FRIEND_TEST(CountMetricE2eTest, TestSlicedStateWithMap); Loading cmds/statsd/src/config/ConfigListener.h +1 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ public: * A configuration was added or updated. */ virtual void OnConfigUpdated(const int64_t timestampNs, const ConfigKey& key, const StatsdConfig& config) = 0; const StatsdConfig& config, bool modularUpdate = false) = 0; /** * A configuration was removed. Loading cmds/statsd/src/metrics/MetricsManager.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -188,6 +188,23 @@ bool MetricsManager::updateConfig(const StatsdConfig& config, const int64_t time mAlertTrackerMap = newAlertTrackerMap; mAllPeriodicAlarmTrackers = newPeriodicAlarmTrackers; mTtlNs = config.has_ttl_in_seconds() ? config.ttl_in_seconds() * NS_PER_SEC : -1; refreshTtl(currentTimeNs); mHashStringsInReport = config.hash_strings_in_metric_report(); mVersionStringsInReport = config.version_strings_in_metric_report(); mInstallerInReport = config.installer_in_metric_report(); mWhitelistedAtomIds.clear(); mWhitelistedAtomIds.insert(config.whitelisted_atom_ids().begin(), config.whitelisted_atom_ids().end()); mShouldPersistHistory = config.persist_locally(); // Store the sub-configs used. mAnnotations.clear(); for (const auto& annotation : config.annotation()) { mAnnotations.emplace_back(annotation.field_int64(), annotation.field_int32()); } mAllowedUid.clear(); mAllowedPkg.clear(); mDefaultPullUids.clear(); Loading Loading
cmds/statsd/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -294,6 +294,7 @@ cc_test { "tests/e2e/Anomaly_duration_sum_e2e_test.cpp", "tests/e2e/Attribution_e2e_test.cpp", "tests/e2e/ConfigTtl_e2e_test.cpp", "tests/e2e/ConfigUpdate_e2e_test.cpp", "tests/e2e/CountMetric_e2e_test.cpp", "tests/e2e/DurationMetric_e2e_test.cpp", "tests/e2e/GaugeMetric_e2e_pull_test.cpp", Loading
cmds/statsd/src/StatsLogProcessor.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -520,10 +520,10 @@ void StatsLogProcessor::GetActiveConfigsLocked(const int uid, vector<int64_t>& o } void StatsLogProcessor::OnConfigUpdated(const int64_t timestampNs, const ConfigKey& key, const StatsdConfig& config) { const StatsdConfig& config, bool modularUpdate) { std::lock_guard<std::mutex> lock(mMetricsMutex); WriteDataToDiskLocked(key, timestampNs, CONFIG_UPDATED, NO_TIME_CONSTRAINTS); OnConfigUpdatedLocked(timestampNs, key, config); OnConfigUpdatedLocked(timestampNs, key, config, modularUpdate); } void StatsLogProcessor::OnConfigUpdatedLocked(const int64_t timestampNs, const ConfigKey& key, Loading Loading @@ -720,7 +720,8 @@ void StatsLogProcessor::resetConfigsLocked(const int64_t timestampNs, for (const auto& key : configs) { StatsdConfig config; if (StorageManager::readConfigFromDisk(key, &config)) { OnConfigUpdatedLocked(timestampNs, key, config); // Force a full update when resetting a config. OnConfigUpdatedLocked(timestampNs, key, config, /*modularUpdate=*/false); StatsdStats::getInstance().noteConfigReset(key); } else { ALOGE("Failed to read backup config from disk for : %s", key.ToString().c_str()); Loading
cmds/statsd/src/StatsLogProcessor.h +6 −2 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ public: void OnLogEvent(LogEvent* event); void OnConfigUpdated(const int64_t timestampNs, const ConfigKey& key, const StatsdConfig& config); const StatsdConfig& config, bool modularUpdate = false); void OnConfigRemoved(const ConfigKey& key); size_t GetMetricsSize(const ConfigKey& key) const; Loading Loading @@ -188,7 +188,7 @@ private: void resetIfConfigTtlExpiredLocked(const int64_t timestampNs); void OnConfigUpdatedLocked(const int64_t currentTimestampNs, const ConfigKey& key, const StatsdConfig& config, bool modularUpdate = false); const StatsdConfig& config, bool modularUpdate); void GetActiveConfigsLocked(const int uid, vector<int64_t>& outActiveConfigs); Loading Loading @@ -338,6 +338,10 @@ private: FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation); FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations); FRIEND_TEST(ConfigUpdateE2eTest, TestHashStrings); FRIEND_TEST(ConfigUpdateE2eTest, TestUidMapVersionStringInstaller); FRIEND_TEST(ConfigUpdateE2eTest, TestConfigTtl); FRIEND_TEST(CountMetricE2eTest, TestInitialConditionChanges); FRIEND_TEST(CountMetricE2eTest, TestSlicedState); FRIEND_TEST(CountMetricE2eTest, TestSlicedStateWithMap); Loading
cmds/statsd/src/config/ConfigListener.h +1 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ public: * A configuration was added or updated. */ virtual void OnConfigUpdated(const int64_t timestampNs, const ConfigKey& key, const StatsdConfig& config) = 0; const StatsdConfig& config, bool modularUpdate = false) = 0; /** * A configuration was removed. Loading
cmds/statsd/src/metrics/MetricsManager.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -188,6 +188,23 @@ bool MetricsManager::updateConfig(const StatsdConfig& config, const int64_t time mAlertTrackerMap = newAlertTrackerMap; mAllPeriodicAlarmTrackers = newPeriodicAlarmTrackers; mTtlNs = config.has_ttl_in_seconds() ? config.ttl_in_seconds() * NS_PER_SEC : -1; refreshTtl(currentTimeNs); mHashStringsInReport = config.hash_strings_in_metric_report(); mVersionStringsInReport = config.version_strings_in_metric_report(); mInstallerInReport = config.installer_in_metric_report(); mWhitelistedAtomIds.clear(); mWhitelistedAtomIds.insert(config.whitelisted_atom_ids().begin(), config.whitelisted_atom_ids().end()); mShouldPersistHistory = config.persist_locally(); // Store the sub-configs used. mAnnotations.clear(); for (const auto& annotation : config.annotation()) { mAnnotations.emplace_back(annotation.field_int64(), annotation.field_int32()); } mAllowedUid.clear(); mAllowedPkg.clear(); mDefaultPullUids.clear(); Loading