diff --git a/cmds/statsd/Android.bp b/cmds/statsd/Android.bp index bd6ca47cb4b8a..33bfe512cc10a 100644 --- a/cmds/statsd/Android.bp +++ b/cmds/statsd/Android.bp @@ -113,8 +113,8 @@ cc_defaults { "libbase", "libcutils", "libprotoutil", - "libstatslog", "libstatsmetadata", + "libstatslog_statsd", "libsysutils", "libutils", ], @@ -171,6 +171,37 @@ cc_library_static { ], } +genrule { + name: "statslog_statsd.h", + tools: ["stats-log-api-gen"], + cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_statsd.h --module statsd --namespace android,os,statsd,util", + out: [ + "statslog_statsd.h", + ], +} + +genrule { + name: "statslog_statsd.cpp", + tools: ["stats-log-api-gen"], + cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_statsd.cpp --module statsd --namespace android,os,statsd,util --importHeader statslog_statsd.h", + out: [ + "statslog_statsd.cpp", + ], +} + +cc_library_static { + name: "libstatslog_statsd", + generated_sources: ["statslog_statsd.cpp"], + generated_headers: ["statslog_statsd.h"], + export_generated_headers: ["statslog_statsd.h"], + apex_available: [ + "com.android.os.statsd", + "test_com.android.os.statsd", + ], + shared_libs: [ + "libstatssocket", + ] +} // ========= // statsd @@ -300,6 +331,7 @@ cc_test { static_libs: [ "libgmock", "libplatformprotos", + "libstatslog", //TODO(b/150976524): remove this when the tests no longer hardcode atoms. "libstatssocket_private", ], diff --git a/cmds/statsd/src/StatsLogProcessor.cpp b/cmds/statsd/src/StatsLogProcessor.cpp index 649c004280288..69b9fc7ad9a09 100644 --- a/cmds/statsd/src/StatsLogProcessor.cpp +++ b/cmds/statsd/src/StatsLogProcessor.cpp @@ -34,7 +34,7 @@ #include "state/StateManager.h" #include "stats_log_util.h" #include "stats_util.h" -#include "statslog.h" +#include "statslog_statsd.h" #include "storage/StorageManager.h" using namespace android; @@ -287,17 +287,17 @@ void StatsLogProcessor::getAndUpdateTrainInfoOnDisk(bool is_rollback, int64_t firstId = trainInfo->experimentIds.at(0); auto& ids = trainInfo->experimentIds; switch (trainInfo->status) { - case android::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALL_SUCCESS: + case android::os::statsd::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALL_SUCCESS: if (find(ids.begin(), ids.end(), firstId + 1) == ids.end()) { ids.push_back(firstId + 1); } break; - case android::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALLER_ROLLBACK_INITIATED: + case android::os::statsd::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALLER_ROLLBACK_INITIATED: if (find(ids.begin(), ids.end(), firstId + 2) == ids.end()) { ids.push_back(firstId + 2); } break; - case android::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALLER_ROLLBACK_SUCCESS: + case android::os::statsd::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALLER_ROLLBACK_SUCCESS: if (find(ids.begin(), ids.end(), firstId + 3) == ids.end()) { ids.push_back(firstId + 3); } @@ -366,13 +366,13 @@ vector StatsLogProcessor::processWatchdogRollbackOccurred(const int32_t int64_t firstId = trainInfoOnDisk.experimentIds[0]; auto& ids = trainInfoOnDisk.experimentIds; switch (rollbackTypeIn) { - case android::util::WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_INITIATE: + case android::os::statsd::util::WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_INITIATE: if (find(ids.begin(), ids.end(), firstId + 4) == ids.end()) { ids.push_back(firstId + 4); } StorageManager::writeTrainInfo(trainInfoOnDisk); break; - case android::util::WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS: + case android::os::statsd::util::WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS: if (find(ids.begin(), ids.end(), firstId + 5) == ids.end()) { ids.push_back(firstId + 5); } @@ -405,13 +405,13 @@ void StatsLogProcessor::OnLogEvent(LogEvent* event, int64_t elapsedRealtimeNs) { // Hard-coded logic to update train info on disk and fill in any information // this log event may be missing. - if (event->GetTagId() == android::util::BINARY_PUSH_STATE_CHANGED) { + if (event->GetTagId() == android::os::statsd::util::BINARY_PUSH_STATE_CHANGED) { onBinaryPushStateChangedEventLocked(event); } // Hard-coded logic to update experiment ids on disk for certain rollback // types and fill the rollback atom with experiment ids - if (event->GetTagId() == android::util::WATCHDOG_ROLLBACK_OCCURRED) { + if (event->GetTagId() == android::os::statsd::util::WATCHDOG_ROLLBACK_OCCURRED) { onWatchdogRollbackOccurredLocked(event); } @@ -429,7 +429,7 @@ void StatsLogProcessor::OnLogEvent(LogEvent* event, int64_t elapsedRealtimeNs) { // Hard-coded logic to update the isolated uid's in the uid-map. // The field numbers need to be currently updated by hand with atoms.proto - if (event->GetTagId() == android::util::ISOLATED_UID_CHANGED) { + if (event->GetTagId() == android::os::statsd::util::ISOLATED_UID_CHANGED) { onIsolatedUidChangedEventLocked(*event); } @@ -446,7 +446,7 @@ void StatsLogProcessor::OnLogEvent(LogEvent* event, int64_t elapsedRealtimeNs) { } - if (event->GetTagId() != android::util::ISOLATED_UID_CHANGED) { + if (event->GetTagId() != android::os::statsd::util::ISOLATED_UID_CHANGED) { // Map the isolated uid to host uid if necessary. mapIsolatedUidToHostUidIfNecessaryLocked(event); } diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp index f18aaa5a9ea0c..a4f276de314c8 100644 --- a/cmds/statsd/src/StatsService.cpp +++ b/cmds/statsd/src/StatsService.cpp @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include #include @@ -767,7 +767,8 @@ status_t StatsService::cmd_log_app_breadcrumb(int out, const Vector& ar } if (good) { dprintf(out, "Logging AppBreadcrumbReported(%d, %d, %d) to statslog.\n", uid, label, state); - android::util::stats_write(android::util::APP_BREADCRUMB_REPORTED, uid, label, state); + android::os::statsd::util::stats_write( + android::os::statsd::util::APP_BREADCRUMB_REPORTED, uid, label, state); } else { print_cmd_help(out); return UNKNOWN_ERROR; @@ -1190,7 +1191,7 @@ Status StatsService::unsetBroadcastSubscriber(int64_t configId, Status StatsService::sendAppBreadcrumbAtom(int32_t label, int32_t state) { // Permission check not necessary as it's meant for applications to write to // statsd. - android::util::stats_write(util::APP_BREADCRUMB_REPORTED, + android::os::statsd::util::stats_write(android::os::statsd::util::APP_BREADCRUMB_REPORTED, (int32_t) AIBinder_getCallingUid(), label, state); return Status::ok(); diff --git a/cmds/statsd/src/anomaly/AlarmTracker.cpp b/cmds/statsd/src/anomaly/AlarmTracker.cpp index 019a9f7e5f9a4..5722f923d11ec 100644 --- a/cmds/statsd/src/anomaly/AlarmTracker.cpp +++ b/cmds/statsd/src/anomaly/AlarmTracker.cpp @@ -23,7 +23,6 @@ #include "stats_util.h" #include "storage/StorageManager.h" -#include #include namespace android { diff --git a/cmds/statsd/src/anomaly/AnomalyTracker.cpp b/cmds/statsd/src/anomaly/AnomalyTracker.cpp index 7ace44eef564b..a21abbf042cba 100644 --- a/cmds/statsd/src/anomaly/AnomalyTracker.cpp +++ b/cmds/statsd/src/anomaly/AnomalyTracker.cpp @@ -25,7 +25,7 @@ #include "subscriber/SubscriberReporter.h" #include -#include +#include #include namespace android { @@ -235,8 +235,8 @@ void AnomalyTracker::declareAnomaly(const int64_t& timestampNs, int64_t metricId StatsdStats::getInstance().noteAnomalyDeclared(mConfigKey, mAlert.id()); // TODO(b/110564268): This should also take in the const MetricDimensionKey& key? - android::util::stats_write(android::util::ANOMALY_DETECTED, mConfigKey.GetUid(), - mConfigKey.GetId(), mAlert.id()); + util::stats_write(util::ANOMALY_DETECTED, mConfigKey.GetUid(), + mConfigKey.GetId(), mAlert.id()); } void AnomalyTracker::detectAndDeclareAnomaly(const int64_t& timestampNs, diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 9645a466ec16c..4051354f8bd51 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -122,10 +122,10 @@ message Atom { SettingChanged setting_changed = 41 [(module) = "framework"]; ActivityForegroundStateChanged activity_foreground_state_changed = 42 [(module) = "framework"]; - IsolatedUidChanged isolated_uid_changed = 43 [(module) = "framework"]; + IsolatedUidChanged isolated_uid_changed = 43 [(module) = "framework", (module) = "statsd"]; PacketWakeupOccurred packet_wakeup_occurred = 44 [(module) = "framework"]; WallClockTimeShifted wall_clock_time_shifted = 45 [(module) = "framework"]; - AnomalyDetected anomaly_detected = 46; + AnomalyDetected anomaly_detected = 46 [(module) = "statsd"]; AppBreadcrumbReported app_breadcrumb_reported = 47 [(allow_from_any_uid) = true, (module) = "statsd"]; AppStartOccurred app_start_occurred = 48 [(module) = "framework"]; @@ -138,7 +138,7 @@ message Atom { AppStartMemoryStateCaptured app_start_memory_state_captured = 55 [(module) = "framework"]; ShutdownSequenceReported shutdown_sequence_reported = 56 [(module) = "framework"]; BootSequenceReported boot_sequence_reported = 57; - DaveyOccurred davey_occurred = 58 [(allow_from_any_uid) = true]; + DaveyOccurred davey_occurred = 58 [(allow_from_any_uid) = true, (module) = "statsd"]; OverlayStateChanged overlay_state_changed = 59 [(module) = "framework"]; ForegroundServiceStateChanged foreground_service_state_changed = 60 [(module) = "framework"]; @@ -166,7 +166,7 @@ message Atom { LowMemReported low_mem_reported = 81 [(module) = "framework"]; GenericAtom generic_atom = 82; KeyValuePairsAtom key_value_pairs_atom = - 83 [(allow_from_any_uid) = true, (module) = "framework"]; + 83 [(allow_from_any_uid) = true, (module) = "framework", (module) = "statsd"]; VibratorStateChanged vibrator_state_changed = 84 [(module) = "framework"]; DeferredJobStatsReported deferred_job_stats_reported = 85 [(module) = "framework"]; ThermalThrottlingStateChanged thermal_throttling = 86 [deprecated=true]; @@ -242,7 +242,8 @@ message Atom { AdbConnectionChanged adb_connection_changed = 144 [(module) = "framework"]; SpeechDspStatReported speech_dsp_stat_reported = 145; UsbContaminantReported usb_contaminant_reported = 146 [(module) = "framework"]; - WatchdogRollbackOccurred watchdog_rollback_occurred = 147 [(module) = "framework"]; + WatchdogRollbackOccurred watchdog_rollback_occurred = + 147 [(module) = "framework", (module) = "statsd"]; BiometricSystemHealthIssueDetected biometric_system_health_issue_detected = 148 [(module) = "framework"]; BubbleUIChanged bubble_ui_changed = 149 [(module) = "sysui"]; @@ -412,7 +413,8 @@ message Atom { SubsystemSleepState subsystem_sleep_state = 10005; CpuTimePerFreq cpu_time_per_freq = 10008 [(module) = "framework"]; CpuTimePerUid cpu_time_per_uid = 10009 [(module) = "framework"]; - CpuTimePerUidFreq cpu_time_per_uid_freq = 10010 [(module) = "framework"]; + CpuTimePerUidFreq cpu_time_per_uid_freq = + 10010 [(module) = "framework", (module) = "statsd"]; WifiActivityInfo wifi_activity_info = 10011 [(module) = "framework"]; ModemActivityInfo modem_activity_info = 10012 [(module) = "framework"]; BluetoothActivityInfo bluetooth_activity_info = 10007 [(module) = "framework"]; @@ -425,9 +427,9 @@ message Atom { RemainingBatteryCapacity remaining_battery_capacity = 10019 [(module) = "framework"]; FullBatteryCapacity full_battery_capacity = 10020 [(module) = "framework"]; Temperature temperature = 10021 [(module) = "framework"]; - BinderCalls binder_calls = 10022 [(module) = "framework"]; + BinderCalls binder_calls = 10022 [(module) = "framework", (module) = "statsd"]; BinderCallsExceptions binder_calls_exceptions = 10023 [(module) = "framework"]; - LooperStats looper_stats = 10024 [(module) = "framework"]; + LooperStats looper_stats = 10024 [(module) = "framework", (module) = "statsd"]; DiskStats disk_stats = 10025 [(module) = "framework"]; DirectoryUsage directory_usage = 10026 [(module) = "framework"]; AppSize app_size = 10027 [(module) = "framework"]; @@ -455,7 +457,7 @@ message Atom { NumFacesEnrolled num_faces_enrolled = 10048 [(module) = "framework"]; RoleHolder role_holder = 10049 [(module) = "framework"]; DangerousPermissionState dangerous_permission_state = 10050 [(module) = "framework"]; - TrainInfo train_info = 10051; + TrainInfo train_info = 10051 [(module) = "statsd"]; TimeZoneDataInfo time_zone_data_info = 10052 [(module) = "framework"]; ExternalStorageInfo external_storage_info = 10053 [(module) = "framework"]; GpuStatsGlobalInfo gpu_stats_global_info = 10054; diff --git a/cmds/statsd/src/external/StatsPullerManager.cpp b/cmds/statsd/src/external/StatsPullerManager.cpp index 1c38542b90177..91cdfe0a9ba54 100644 --- a/cmds/statsd/src/external/StatsPullerManager.cpp +++ b/cmds/statsd/src/external/StatsPullerManager.cpp @@ -32,7 +32,7 @@ #include "../statscompanion_util.h" #include "StatsCallbackPuller.h" #include "TrainInfoPuller.h" -#include "statslog.h" +#include "statslog_statsd.h" using std::shared_ptr; using std::vector; @@ -47,7 +47,7 @@ const int64_t NO_ALARM_UPDATE = INT64_MAX; StatsPullerManager::StatsPullerManager() : kAllPullAtomInfo({ // TrainInfo. - {{.atomTag = android::util::TRAIN_INFO}, new TrainInfoPuller()}, + {{.atomTag = util::TRAIN_INFO}, new TrainInfoPuller()}, }), mNextPullTimeNs(NO_ALARM_UPDATE) { } diff --git a/cmds/statsd/src/external/TrainInfoPuller.cpp b/cmds/statsd/src/external/TrainInfoPuller.cpp index a7d8d4ebebae3..3837f4a1a517f 100644 --- a/cmds/statsd/src/external/TrainInfoPuller.cpp +++ b/cmds/statsd/src/external/TrainInfoPuller.cpp @@ -22,7 +22,7 @@ #include "TrainInfoPuller.h" #include "logd/LogEvent.h" #include "stats_log_util.h" -#include "statslog.h" +#include "statslog_statsd.h" #include "storage/StorageManager.h" using std::make_shared; @@ -33,7 +33,7 @@ namespace os { namespace statsd { TrainInfoPuller::TrainInfoPuller() : - StatsPuller(android::util::TRAIN_INFO) { + StatsPuller(util::TRAIN_INFO) { } bool TrainInfoPuller::PullInternal(vector>* data) { diff --git a/cmds/statsd/src/guardrail/StatsdStats.cpp b/cmds/statsd/src/guardrail/StatsdStats.cpp index 3054b6d2204bc..2bd13d7ad81b0 100644 --- a/cmds/statsd/src/guardrail/StatsdStats.cpp +++ b/cmds/statsd/src/guardrail/StatsdStats.cpp @@ -20,7 +20,7 @@ #include #include "../stats_log_util.h" -#include "statslog.h" +#include "statslog_statsd.h" #include "storage/StorageManager.h" namespace android { @@ -113,9 +113,9 @@ const int FIELD_ID_ACTIVATION_BROADCAST_GUARDRAIL_UID = 1; const int FIELD_ID_ACTIVATION_BROADCAST_GUARDRAIL_TIME = 2; const std::map> StatsdStats::kAtomDimensionKeySizeLimitMap = { - {android::util::BINDER_CALLS, {6000, 10000}}, - {android::util::LOOPER_STATS, {1500, 2500}}, - {android::util::CPU_TIME_PER_UID_FREQ, {6000, 10000}}, + {util::BINDER_CALLS, {6000, 10000}}, + {util::LOOPER_STATS, {1500, 2500}}, + {util::CPU_TIME_PER_UID_FREQ, {6000, 10000}}, }; StatsdStats::StatsdStats() { diff --git a/cmds/statsd/src/logd/LogEvent.cpp b/cmds/statsd/src/logd/LogEvent.cpp index 974e203cd6129..258f84d0fb79b 100644 --- a/cmds/statsd/src/logd/LogEvent.cpp +++ b/cmds/statsd/src/logd/LogEvent.cpp @@ -18,7 +18,7 @@ #include "logd/LogEvent.h" #include "stats_log_util.h" -#include "statslog.h" +#include "statslog_statsd.h" #include #include @@ -100,7 +100,7 @@ LogEvent::LogEvent(int32_t tagId, int64_t wallClockTimestampNs, int64_t elapsedT const std::map& float_map) { mLogdTimestampNs = wallClockTimestampNs; mElapsedTimestampNs = elapsedTimestampNs; - mTagId = android::util::KEY_VALUE_PAIRS_ATOM; + mTagId = util::KEY_VALUE_PAIRS_ATOM; mLogUid = uid; int pos[] = {1, 1, 1}; @@ -153,7 +153,7 @@ LogEvent::LogEvent(const string& trainName, int64_t trainVersionCode, bool requi const std::vector& experimentIds, int32_t userId) { mLogdTimestampNs = getWallClockNs(); mElapsedTimestampNs = getElapsedRealtimeNs(); - mTagId = android::util::BINARY_PUSH_STATE_CHANGED; + mTagId = util::BINARY_PUSH_STATE_CHANGED; mLogUid = AIBinder_getCallingUid(); mLogPid = AIBinder_getCallingPid(); @@ -172,7 +172,7 @@ LogEvent::LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, const InstallTrainInfo& trainInfo) { mLogdTimestampNs = wallClockTimestampNs; mElapsedTimestampNs = elapsedTimestampNs; - mTagId = android::util::TRAIN_INFO; + mTagId = util::TRAIN_INFO; mValues.push_back( FieldValue(Field(mTagId, getSimpleField(1)), Value(trainInfo.trainVersionCode))); diff --git a/cmds/statsd/src/metrics/MetricsManager.cpp b/cmds/statsd/src/metrics/MetricsManager.cpp index 536700f3bfe7f..6f54ea7d86c29 100644 --- a/cmds/statsd/src/metrics/MetricsManager.cpp +++ b/cmds/statsd/src/metrics/MetricsManager.cpp @@ -31,7 +31,7 @@ #include "state/StateManager.h" #include "stats_log_util.h" #include "stats_util.h" -#include "statslog.h" +#include "statslog_statsd.h" using android::util::FIELD_COUNT_REPEATED; using android::util::FIELD_TYPE_INT32; @@ -291,7 +291,7 @@ bool MetricsManager::checkLogCredentials(const LogEvent& event) { } bool MetricsManager::eventSanityCheck(const LogEvent& event) { - if (event.GetTagId() == android::util::APP_BREADCRUMB_REPORTED) { + if (event.GetTagId() == util::APP_BREADCRUMB_REPORTED) { // Check that app breadcrumb reported fields are valid. status_t err = NO_ERROR; @@ -318,7 +318,7 @@ bool MetricsManager::eventSanityCheck(const LogEvent& event) { VLOG("APP_BREADCRUMB_REPORTED does not have valid state %ld", appHookState); return false; } - } else if (event.GetTagId() == android::util::DAVEY_OCCURRED) { + } else if (event.GetTagId() == util::DAVEY_OCCURRED) { // Daveys can be logged from any app since they are logged in libs/hwui/JankTracker.cpp. // Check that the davey duration is reasonable. Max length check is for privacy. status_t err = NO_ERROR; diff --git a/cmds/statsd/src/packages/UidMap.h b/cmds/statsd/src/packages/UidMap.h index 4e3c506e18120..02fe7b1f5003c 100644 --- a/cmds/statsd/src/packages/UidMap.h +++ b/cmds/statsd/src/packages/UidMap.h @@ -139,7 +139,7 @@ public: // record is deleted. void appendUidMap(const int64_t& timestamp, const ConfigKey& key, std::set* str_set, bool includeVersionStrings, bool includeInstaller, - util::ProtoOutputStream* proto); + ProtoOutputStream* proto); // Forces the output to be cleared. We still generate a snapshot based on the current state. // This results in extra data uploaded but helps us reconstruct the uid mapping on the server diff --git a/tools/stats_log_api_gen/Android.bp b/tools/stats_log_api_gen/Android.bp index cbf6fe88e565a..b1e2487c54fe5 100644 --- a/tools/stats_log_api_gen/Android.bp +++ b/tools/stats_log_api_gen/Android.bp @@ -120,12 +120,6 @@ cc_library { "liblog", "libcutils", ], - apex_available: [ - "//apex_available:platform", - //TODO(b/149781190): Remove this once statsd no longer depends on libstatslog - "com.android.os.statsd", - "test_com.android.os.statsd", - ], target: { android: { shared_libs: ["libstatssocket"],