Loading cmds/statsd/Android.mk +2 −1 Original line number Diff line number Diff line Loading @@ -210,7 +210,8 @@ LOCAL_SRC_FILES := \ tests/e2e/DimensionInCondition_e2e_simple_cond_test.cpp \ tests/e2e/Anomaly_count_e2e_test.cpp \ tests/e2e/Anomaly_duration_sum_e2e_test.cpp \ tests/e2e/ConfigTtl_e2e_test.cpp tests/e2e/ConfigTtl_e2e_test.cpp \ tests/e2e/PartialBucket_e2e_test.cpp LOCAL_STATIC_LIBRARIES := \ $(statsd_common_static_libraries) \ Loading cmds/statsd/src/StatsLogProcessor.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -319,7 +319,7 @@ void StatsLogProcessor::onConfigMetricsReportLocked(const ConfigKey& key, // Fill in UidMap. uint64_t uidMapToken = proto->start(FIELD_TYPE_MESSAGE | FIELD_ID_UID_MAP); mUidMap->appendUidMap(key, proto); mUidMap->appendUidMap(dumpTimeStampNs, key, proto); proto->end(uidMapToken); // Fill in the timestamps. Loading cmds/statsd/src/StatsService.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -640,7 +640,7 @@ Status StatsService::informAllUidData(const vector<int32_t>& uid, const vector<i "Only system uid can call informAllUidData"); } mUidMap->updateMap(uid, version, app); mUidMap->updateMap(getElapsedRealtimeNs(), uid, version, app); VLOG("StatsService::informAllUidData succeeded"); return Status::ok(); Loading @@ -653,7 +653,7 @@ Status StatsService::informOnePackage(const String16& app, int32_t uid, int64_t return Status::fromExceptionCode(Status::EX_SECURITY, "Only system uid can call informOnePackage"); } mUidMap->updateApp(app, uid, version); mUidMap->updateApp(getElapsedRealtimeNs(), app, uid, version); return Status::ok(); } Loading @@ -664,7 +664,7 @@ Status StatsService::informOnePackageRemoved(const String16& app, int32_t uid) { return Status::fromExceptionCode(Status::EX_SECURITY, "Only system uid can call informOnePackageRemoved"); } mUidMap->removeApp(app, uid); mUidMap->removeApp(getElapsedRealtimeNs(), app, uid); mConfigManager->RemoveConfigs(uid); return Status::ok(); } Loading cmds/statsd/src/StatsService.h +4 −0 Original line number Diff line number Diff line Loading @@ -262,6 +262,10 @@ private: FRIEND_TEST(StatsServiceTest, TestAddConfig_simple); FRIEND_TEST(StatsServiceTest, TestAddConfig_empty); FRIEND_TEST(StatsServiceTest, TestAddConfig_invalid); FRIEND_TEST(PartialBucketE2eTest, TestCountMetricNoSplitOnNewApp); FRIEND_TEST(PartialBucketE2eTest, TestCountMetricSplitOnUpgrade); FRIEND_TEST(PartialBucketE2eTest, TestCountMetricSplitOnRemoval); FRIEND_TEST(PartialBucketE2eTest, TestCountMetricWithoutSplit); }; } // namespace statsd Loading cmds/statsd/src/guardrail/StatsdStats.cpp +11 −17 Original line number Diff line number Diff line Loading @@ -95,11 +95,10 @@ const int FIELD_ID_METRIC_STATS_COUNT = 2; const int FIELD_ID_ALERT_STATS_ID = 1; const int FIELD_ID_ALERT_STATS_COUNT = 2; const int FIELD_ID_UID_MAP_SNAPSHOTS = 1; const int FIELD_ID_UID_MAP_CHANGES = 2; const int FIELD_ID_UID_MAP_BYTES_USED = 3; const int FIELD_ID_UID_MAP_DROPPED_SNAPSHOTS = 4; const int FIELD_ID_UID_MAP_DROPPED_CHANGES = 5; const int FIELD_ID_UID_MAP_CHANGES = 1; const int FIELD_ID_UID_MAP_BYTES_USED = 2; const int FIELD_ID_UID_MAP_DROPPED_CHANGES = 3; const int FIELD_ID_UID_MAP_DELETED_APPS = 4; const std::map<int, std::pair<size_t, size_t>> StatsdStats::kAtomDimensionKeySizeLimitMap = { {android::util::CPU_TIME_PER_UID_FREQ, {6000, 10000}}, Loading Loading @@ -233,15 +232,14 @@ void StatsdStats::noteMetricsReportSent(const ConfigKey& key, int32_t timeSec) { it->second->dump_report_time_sec.push_back(timeSec); } void StatsdStats::noteUidMapDropped(int snapshots, int deltas) { void StatsdStats::noteUidMapDropped(int deltas) { lock_guard<std::mutex> lock(mLock); mUidMapStats.dropped_snapshots += mUidMapStats.dropped_snapshots + snapshots; mUidMapStats.dropped_changes += mUidMapStats.dropped_changes + deltas; } void StatsdStats::setUidMapSnapshots(int snapshots) { void StatsdStats::noteUidMapAppDeletionDropped() { lock_guard<std::mutex> lock(mLock); mUidMapStats.snapshots = snapshots; mUidMapStats.deleted_apps++; } void StatsdStats::setUidMapChanges(int changes) { Loading Loading @@ -492,11 +490,9 @@ void StatsdStats::dumpStats(FILE* out) const { fprintf(out, "Subscriber alarm registrations: %d\n", mPeriodicAlarmRegisteredStats); } fprintf(out, "UID map stats: bytes=%d, snapshots=%d, changes=%d, snapshots lost=%d, changes " "lost=%d\n", mUidMapStats.bytes_used, mUidMapStats.snapshots, mUidMapStats.changes, mUidMapStats.dropped_snapshots, mUidMapStats.dropped_changes); fprintf(out, "UID map stats: bytes=%d, changes=%d, deleted=%d, changes lost=%d\n", mUidMapStats.bytes_used, mUidMapStats.changes, mUidMapStats.deleted_apps, mUidMapStats.dropped_changes); for (const auto& error : mLoggerErrors) { time_t error_time = error.first; Loading Loading @@ -641,12 +637,10 @@ void StatsdStats::dumpStats(std::vector<uint8_t>* output, bool reset) { } uint64_t uidMapToken = proto.start(FIELD_TYPE_MESSAGE | FIELD_ID_UIDMAP_STATS); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_SNAPSHOTS, mUidMapStats.snapshots); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_CHANGES, mUidMapStats.changes); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_BYTES_USED, mUidMapStats.bytes_used); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_DROPPED_SNAPSHOTS, mUidMapStats.dropped_snapshots); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_DROPPED_CHANGES, mUidMapStats.dropped_changes); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_DELETED_APPS, mUidMapStats.deleted_apps); proto.end(uidMapToken); for (const auto& error : mLoggerErrors) { Loading Loading
cmds/statsd/Android.mk +2 −1 Original line number Diff line number Diff line Loading @@ -210,7 +210,8 @@ LOCAL_SRC_FILES := \ tests/e2e/DimensionInCondition_e2e_simple_cond_test.cpp \ tests/e2e/Anomaly_count_e2e_test.cpp \ tests/e2e/Anomaly_duration_sum_e2e_test.cpp \ tests/e2e/ConfigTtl_e2e_test.cpp tests/e2e/ConfigTtl_e2e_test.cpp \ tests/e2e/PartialBucket_e2e_test.cpp LOCAL_STATIC_LIBRARIES := \ $(statsd_common_static_libraries) \ Loading
cmds/statsd/src/StatsLogProcessor.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -319,7 +319,7 @@ void StatsLogProcessor::onConfigMetricsReportLocked(const ConfigKey& key, // Fill in UidMap. uint64_t uidMapToken = proto->start(FIELD_TYPE_MESSAGE | FIELD_ID_UID_MAP); mUidMap->appendUidMap(key, proto); mUidMap->appendUidMap(dumpTimeStampNs, key, proto); proto->end(uidMapToken); // Fill in the timestamps. Loading
cmds/statsd/src/StatsService.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -640,7 +640,7 @@ Status StatsService::informAllUidData(const vector<int32_t>& uid, const vector<i "Only system uid can call informAllUidData"); } mUidMap->updateMap(uid, version, app); mUidMap->updateMap(getElapsedRealtimeNs(), uid, version, app); VLOG("StatsService::informAllUidData succeeded"); return Status::ok(); Loading @@ -653,7 +653,7 @@ Status StatsService::informOnePackage(const String16& app, int32_t uid, int64_t return Status::fromExceptionCode(Status::EX_SECURITY, "Only system uid can call informOnePackage"); } mUidMap->updateApp(app, uid, version); mUidMap->updateApp(getElapsedRealtimeNs(), app, uid, version); return Status::ok(); } Loading @@ -664,7 +664,7 @@ Status StatsService::informOnePackageRemoved(const String16& app, int32_t uid) { return Status::fromExceptionCode(Status::EX_SECURITY, "Only system uid can call informOnePackageRemoved"); } mUidMap->removeApp(app, uid); mUidMap->removeApp(getElapsedRealtimeNs(), app, uid); mConfigManager->RemoveConfigs(uid); return Status::ok(); } Loading
cmds/statsd/src/StatsService.h +4 −0 Original line number Diff line number Diff line Loading @@ -262,6 +262,10 @@ private: FRIEND_TEST(StatsServiceTest, TestAddConfig_simple); FRIEND_TEST(StatsServiceTest, TestAddConfig_empty); FRIEND_TEST(StatsServiceTest, TestAddConfig_invalid); FRIEND_TEST(PartialBucketE2eTest, TestCountMetricNoSplitOnNewApp); FRIEND_TEST(PartialBucketE2eTest, TestCountMetricSplitOnUpgrade); FRIEND_TEST(PartialBucketE2eTest, TestCountMetricSplitOnRemoval); FRIEND_TEST(PartialBucketE2eTest, TestCountMetricWithoutSplit); }; } // namespace statsd Loading
cmds/statsd/src/guardrail/StatsdStats.cpp +11 −17 Original line number Diff line number Diff line Loading @@ -95,11 +95,10 @@ const int FIELD_ID_METRIC_STATS_COUNT = 2; const int FIELD_ID_ALERT_STATS_ID = 1; const int FIELD_ID_ALERT_STATS_COUNT = 2; const int FIELD_ID_UID_MAP_SNAPSHOTS = 1; const int FIELD_ID_UID_MAP_CHANGES = 2; const int FIELD_ID_UID_MAP_BYTES_USED = 3; const int FIELD_ID_UID_MAP_DROPPED_SNAPSHOTS = 4; const int FIELD_ID_UID_MAP_DROPPED_CHANGES = 5; const int FIELD_ID_UID_MAP_CHANGES = 1; const int FIELD_ID_UID_MAP_BYTES_USED = 2; const int FIELD_ID_UID_MAP_DROPPED_CHANGES = 3; const int FIELD_ID_UID_MAP_DELETED_APPS = 4; const std::map<int, std::pair<size_t, size_t>> StatsdStats::kAtomDimensionKeySizeLimitMap = { {android::util::CPU_TIME_PER_UID_FREQ, {6000, 10000}}, Loading Loading @@ -233,15 +232,14 @@ void StatsdStats::noteMetricsReportSent(const ConfigKey& key, int32_t timeSec) { it->second->dump_report_time_sec.push_back(timeSec); } void StatsdStats::noteUidMapDropped(int snapshots, int deltas) { void StatsdStats::noteUidMapDropped(int deltas) { lock_guard<std::mutex> lock(mLock); mUidMapStats.dropped_snapshots += mUidMapStats.dropped_snapshots + snapshots; mUidMapStats.dropped_changes += mUidMapStats.dropped_changes + deltas; } void StatsdStats::setUidMapSnapshots(int snapshots) { void StatsdStats::noteUidMapAppDeletionDropped() { lock_guard<std::mutex> lock(mLock); mUidMapStats.snapshots = snapshots; mUidMapStats.deleted_apps++; } void StatsdStats::setUidMapChanges(int changes) { Loading Loading @@ -492,11 +490,9 @@ void StatsdStats::dumpStats(FILE* out) const { fprintf(out, "Subscriber alarm registrations: %d\n", mPeriodicAlarmRegisteredStats); } fprintf(out, "UID map stats: bytes=%d, snapshots=%d, changes=%d, snapshots lost=%d, changes " "lost=%d\n", mUidMapStats.bytes_used, mUidMapStats.snapshots, mUidMapStats.changes, mUidMapStats.dropped_snapshots, mUidMapStats.dropped_changes); fprintf(out, "UID map stats: bytes=%d, changes=%d, deleted=%d, changes lost=%d\n", mUidMapStats.bytes_used, mUidMapStats.changes, mUidMapStats.deleted_apps, mUidMapStats.dropped_changes); for (const auto& error : mLoggerErrors) { time_t error_time = error.first; Loading Loading @@ -641,12 +637,10 @@ void StatsdStats::dumpStats(std::vector<uint8_t>* output, bool reset) { } uint64_t uidMapToken = proto.start(FIELD_TYPE_MESSAGE | FIELD_ID_UIDMAP_STATS); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_SNAPSHOTS, mUidMapStats.snapshots); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_CHANGES, mUidMapStats.changes); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_BYTES_USED, mUidMapStats.bytes_used); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_DROPPED_SNAPSHOTS, mUidMapStats.dropped_snapshots); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_DROPPED_CHANGES, mUidMapStats.dropped_changes); proto.write(FIELD_TYPE_INT32 | FIELD_ID_UID_MAP_DELETED_APPS, mUidMapStats.deleted_apps); proto.end(uidMapToken); for (const auto& error : mLoggerErrors) { Loading