summaryrefslogtreecommitdiff
path: root/tools/stats_log_api_gen
AgeCommit message (Collapse)Author
2020-12-12Migrate to frameworks/proto_logging/statsBaligh Uddin
BUG: 175318992 Test: TH Merged-In: Ia6463c8f6a801cd9db54afa30df0aa3f16b09891 Change-Id: I81324b83802dc2b06081600282bb73491f29473b Exempt-From-Owner-Approval: cleanup CL
2020-12-08resolve merge conflicts of 358f0d4fc8c248498cf113c41e043877a14e89a1 to masterJeff Sharkey
Bug: 174932174 Test: I solemnly swear I tested this conflict resolution. Exempt-From-Owner-Approval: refactoring with team leads buy-in Change-Id: I9262a08ffc1ccede8e519d0eed90ed2bfcf0232c
2020-12-08Improve OWNERS coverage across frameworks/base/.Jeff Sharkey
As general background, OWNERS files expedite code reviews by helping code authors quickly find relevant reviewers, and they also ensure that stakeholders are involved in code changes in their areas. Some teams under frameworks/base/ have been using OWNERS files successfully for many years, and we're ready to expand them to cover more areas. Here's the historical coverage statistics for the last two years of changes before these new OWNERS changes land: -- 56% of changes are fully covered by OWNERS -- 17% of changes are partially covered by OWNERS -- 25% of changes have no OWNERS coverage Working closely with team leads, we've now identified clear OWNERS on a per-package basis, and we're using "include" directives whenever possible to to simplify future maintenance. With this extensive effort, we've now improved our coverage as follows: -- 98% of changes are fully covered by OWNERS -- 1% of changes are partially covered by OWNERS -- 1% of changes have no OWNERS coverage This specific change is automatically generated by a script from detailed ownership information confirmed by team leads. Bug: 174932174 Test: manual Exempt-From-Owner-Approval: refactoring with team leads buy-in Merged-In: I9789c97c1de8e5d962b48c29c57d82fe83729eba Change-Id: I9789c97c1de8e5d962b48c29c57d82fe83729eba
2020-11-24Revert^2 "Delete atoms.proto from statsd"Jeffrey Huang
e8552cd24a5ba2f894ba99ca5db1135ceb342b81 Change-Id: I202a31ab654ca31ba9e5b73b23c5aa3d22a3e8b2 Merged-In: I81a8287ed5b055e7b6547794d01e7ac897f0f022
2020-11-24Revert^2 "Delete atoms.proto from statsd"Jeffrey Huang
217301c36f7ffd500441cb879a4fa88b770092db Change-Id: I81a8287ed5b055e7b6547794d01e7ac897f0f022
2020-11-24Revert "Delete atoms.proto from statsd"Jeffrey Huang
Revert "Add android bp to proto_logging" Revert submission 1508746-delete_atoms Reason for revert: Build Failure Reverted Changes: I184cf8bf8:Add android bp to proto_logging I36ec354d2:Delete atoms.proto from statsd Change-Id: Ifec6a57d66cbd9c37503ca47847c3ae492f3d343
2020-11-24Revert "Delete atoms.proto from statsd"Alex Light
Revert "Add android bp to proto_logging" Revert submission 13070789-atomsproto Reason for revert: Breaks multiple git_master-without-vendor targets ``` out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja Android.bp error: frameworks/base/tools/stats_log_api_gen/Android.bp:49:1: "stats-log-api-gen-test" depends on undefined module "libstats_proto_host" ninja: build stopped: subcommand failed. ``` Reverted Changes: I184cf8bf8:Add android bp to proto_logging I36ec354d2:Delete atoms.proto from statsd Bug: 167962588 Change-Id: Idce97c5cf020473744eb7f96dcfbdc7677c094da
2020-11-24Delete atoms.proto from statsdJeffrey Huang
Use the atoms.proto in proto_logging as the source of truth. Also migrates statsd log api gen to use the new atoms.proto Bug: 167962588 Test: m -j && m CtsStatsdAtomHostTestCases Change-Id: I36ec354d273dceace5245d7634c68ac63dc5a8cd Merged-In: I36ec354d273dceace5245d7634c68ac63dc5a8cd
2020-11-23Delete atoms.proto from statsdJeffrey Huang
Use the atoms.proto in proto_logging as the source of truth. Also migrates statsd log api gen to use the new atoms.proto Bug: 167962588 Test: m -j && m CtsStatsdAtomHostTestCases Change-Id: I36ec354d273dceace5245d7634c68ac63dc5a8cd
2020-11-05Merge "libstatslog: disable on darwin" am: 2f76449ef7 am: 090ca078f3 am: ↵Steven Moreland
8140a06a28 am: f0041a9534 Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1488537 Change-Id: I8a49b94974f355321d483a76e4a9bb684344538f
2020-11-05libstatslog: disable on darwinSteven Moreland
libbinder doesn't support mac. Bug: 172023026 Test: N/A Change-Id: Idc484994e7cf5125736ddd7f5c98165ee9f01e67
2020-08-03Update stats-log-api-gen based off of google3 presubmit-checksSalud Lemus
Bug: 161812407 Test: `m statslog-framework-java-gen` Test: `m statslog-telephony-java-gen` Test: `m stats-log-api-gen-test && out/host/linux-x86/nativetest/stats-log-api-gen-test/stats-log-api-gen-test` Change-Id: If4a130e4728c4ffd632c76b6999e9a3da9b21f0c Change-Id: Icddf5ef21155ede50319fc2bf7c8a361eeb09539
2020-07-31Update stats-log-api-gen source based off of google3 presubmit checksSalud Lemus
Bug: 161812407 Test: `m statslog-framework-java-gen` Test: `m statslog-telephony-java-gen` Test: `m stats-log-api-gen-test && out/host/linux-x86/nativetest/stats-log-api-gen-test/stats-log-api-gen-test` Change-Id: Id68982e306fbc379ed8e90b33a38b8a6604e66ad
2020-07-22Revert "Revert "Add pulled atoms support for native clients in s..."Salud Lemus
Revert submission 12182663-revert-12111163-native pulled atoms support-NYTWIBBAKX Reason for revert: Uploaded CL that guards the use of the symbol "AStatsEvent_getBuffer" Reverted Changes: Ib6cc99e9b:Revert "Make libstatspull host supported" I665448247:Revert "Add pulled atoms support for native client... Change-Id: I59d861fc9ffc6f03cc0dbd34e82a4df4f51f0cb9
2020-07-18Revert "Add pulled atoms support for native clients in stats-log..."Salud Lemus
Revert submission 12111163-native pulled atoms support Reason for revert: ld.lld: error: undefined symbol: AStatsEvent_getBuffer Bug link: https://b.corp.google.com/issues/151102177 Reverted Changes: I57911864c:Add pulled atoms support for native clients in sta... I069792c0e:Make libstatspull host supported Change-Id: I665448247d3bf7d05251d302a38b2a7f61a7c071
2020-07-15Add pulled atoms support for native clients in stats-log-api-genSalud Lemus
Similar to adding pulled atoms support for Java clients, now also add pulled atoms support for native clients. Bug: 160367907 Test: Ran `m` and completed successfully Test: Ran `atest statsd_test` and all CTS tests passed Test: Ran `atest HostAtomTests` and all CTS tests passed Test: Ran `atest stats-log-api-gen-test` and all CTS tests passed Change-Id: I57911864cc3fc5569322333a934dfc10aa78ddca
2020-07-07Added support for pulled atoms for stats-log-api-genSalud Lemus
Currently, stats-log-api-gen allows statsd clients to send events for pushed atoms to statsd using a simple auto-generated function call. Allow support for pulled atoms so that clients no longer have to hand-construct StatsEvent objects by calling StatsEvent write methods directly and also making sure that the appropriate annotations are added. This support is for Java clients only for now. Bug: 160368804 Test: Ran `m statslog-framework-java-gen` and completed successfully Test: Ran `m` and completed successfully Test: Ran `m stats-log-api-gen-test && out/host/linux-x86/nativetest/stats-log-api-gen-test/stats-log-api-gen-test` Test: Ran `atest CtsStatsdHostTestCases:android.cts.statsd.atom` and all passed except for CTS tests related to a SIM card because the testing device does not have a SIM card Change-Id: Ie2cbb298690ce71ff7fe7457b17b9d7bdbb24f6b
2020-06-18Remove libstatsmetadataMuhammad Qureshi
Remove kWhitelistedAtoms usage in MetricsManager and remove: - atoms_info references from statsd - libstatsmetadata usages from statsd - libstatsmetadata library - atoms_info_writer.h/.cpp - references to atoms_info in rest of stats-log-api-gen - allow_from_any_uid annotation Fixes: 147600720 Fixes: 154856835 Fixes: 148993016 Test: m stats-log-api-gen Test: m stats-log-api-gen-test && out/host/linux-x86/nativetest/stats-log-api-gen-test/stats-log-api-gen-test Test: m statsd Change-Id: I2e0579609ff257da934b95cdda397f3ca0ffa1f0
2020-05-07Use proper platform version checks (apigen)Ruchir Rastogi
Test: m statslog-docsui-java-gen Bug: 146235828 Change-Id: I5b1a2e0fa356368b91548bd050ec2c493b72f37c
2020-04-18Merge "Remove kMaxPushedAtomId from atoms_info." into rvc-devMuhammad Qureshi
2020-04-17Remove kMaxPushedAtomId from atoms_info.Muhammad Qureshi
Hardcode kMaxPushedAtomId in StatsdStats. Bug: 154164020 Test: bit statsd_test:* Change-Id: Ibca731d9783686a9e3caf0ad580e1d62038d68e2
2020-04-16Remove kAtomsWithAttributionChain from atoms_infoMuhammad Qureshi
Use LogEvent::getAttributionChainIndex() to check presence of attribution chains Bug: 150414252 Test: bit statsd_test:* Change-Id: Ic798d3b182c2b5aaf73444f2796d539cd3f7bf40
2020-04-16Merge "Remove kTruncatingTimestampAtomBlackList" into rvc-devTreeHugger Robot
2020-04-15Remove kTruncatingTimestampAtomBlackListMuhammad Qureshi
Use shouldTruncateTimestamp flag in LogEvent instead of the blacklist to determine whether timestamp should be truncated. Bug: 150414373 Test: bit statsd_test:* Change-Id: I4e21ae4909484dd898b9fcd3ce7a018f5e9d982f
2020-04-14Remove kStateAtomsInfo from atoms_info.Muhammad Qureshi
Use the annotation information in LogEvent/FieldValue instead. - Initialize nested to true in FieldValue.mAnnotations - Add filterPrimaryKey function to HashableDimensionKey for populating a HashableDimensionKey with all FieldValues that have the primary key annotation set. - Create StateTrackers without checking if atom is a state atom. (We can't do this check anymore) - Remove mAtomId, mStateField, mNested, mPrimaryFields, mDefaultState, mResetState members from StateTracker. Use the information passed in LogEvent in onLogEvent instead. - Update tests to log annotations when logging events. - Remote kStateAtomsFieldOptions from atoms_info. - Make MetricProducer::mStateGroupMap const - Rename handlePartialReset to clearStateForPrimaryKey - Store "default" states in mStateMap. An entry in mStateMap means the state is not kStateUnknown. Before, an entry in mStateMap meant the state is not the "default" state. - Consolidate all state change logic in updateStateForPrimaryKey() - remote StateTracker::updateState - handleReset and clearStateForPrimaryKey call updateStateForPrimaryKey for resetting and clearing of states respectively. - Create a helper method for notifying StateTracker listeners - Make StateManager::registerListener void Bug: 151110842 Test: bit statsd_test:* Change-Id: Ifb8371b213a178fcccaa484086fbdd283dbaec49
2020-04-08Remove kAtomsWithUidField from atoms_infoRuchir Rastogi
Instead of using the map from atoms_info, we now receive uid information in the form of StatsEvent annotations. The isUid annotation is exposed from both LogEvent and FieldValue. Test: bit statsd_test:* Test: atest GtsStatsdHostTestCases Bug: 150414601 Change-Id: Iebbe4ce5668de1ab91485daa1be9197cde6e8309
2020-04-07Initialize nested to trueMuhammad Qureshi
This fixes random nested values in atoms_info. Bug: 153119080 Test: m libstatsmetadata Change-Id: I1c1900dae1701b28a8db6ee257f5730e71e574eb
2020-04-03Make state_option top-level boolean annotationsMuhammad Qureshi
- Add AnnotationId enum stats-log-api-gen - Rename RESET_STATE annotation to TRIGGER_STATE_RESET. Also rename the proto annotation. Bug: 152412767 Test: stats-log-api-gen-test Test: m statslog-framework-java-gen Change-Id: I2c12ea0b9222ef28b8cc11ea36b272e518a96259
2020-03-31Use constant names instead of literalsMuhammad Qureshi
Use constant names instead of literals when writing annotations to increase readability. FrameworkStatsLog.java: https://paste.googleplex.com/4789132691767296 statslog.h: https://paste.googleplex.com/4986214782337024 statslog.cpp: https://paste.googleplex.com/4856851575341056 Bug: 151786433 Test: m statslog-framework-java-gen Test: m libstatslog Change-Id: I47111fe02319bebf41f429642fb675f7a856710b
2020-03-27Only send reset state annotation when neededMuhammad Qureshi
Only send reset state annotation when reset state occurs. Bug: 151776731 Test: m libstatslog Change-Id: I6f6b4d784d3741c0059085421565eba81db5527c
2020-03-26Group annotations for the same atom idMuhammad Qureshi
Group annotations for the same atom id inside one if-block in generated code. Use shared_ptr to store AtomDecls in multiple data structures. Store a mapping of field numbers to atoms that have annotations at corresponding field numbers in Collation.h Bug: 151744250 Test: stats-log-api-gen-test Test: m stats-log-api-gen Test: m libstatsmetadata Test: m statslog-framework-java-gen Test: m libstatslog Change-Id: I874696cfb5c27141017b4293bec809ab510ceb98
2020-03-24Run clang-format in stats_log_api_genMuhammad Qureshi
Bug: 152253223 Test: m stats-log-api-gen Test: stats-log-api-gen-test Change-Id: Iad76baea8cc9ae7b3978f1133ab94d8e96bbbafe
2020-03-24Add truncate_timestamp annotationMuhammad Qureshi
Mark privacy-sensitive atoms with truncate_timestamp annotation. Factor out annotation collation to a helper method. Add truncate_timestamp annotation support in stats-log-api-gen. Add writeAnnotation* calls in Java and native generated code for atom id annotations. TODO: remove kTruncatingTimestampAtoms from atoms_info. TODO: use truncate_timestamp annotation inside statsd. Bug: 151111680 Test: stats-log-api-gen-test Test: m statslog-framework-java-gen Test: m libstatsmetadata Change-Id: I3db5f4ffbf959bd36c62f890cc88606912798d40
2020-03-20Remove kBytesFieldAtoms from atoms_infoMuhammad Qureshi
Bug: 150415347 Test: m Test: bit statsd_test:* Change-Id: I2e55b445121a39e3bf12164cd9123561e8b5bd4c
2020-03-19Merge "StatsEvent annotations java autogen" into rvc-devMuhammad Qureshi
2020-03-19Merge "Write annotations in native generated code." into rvc-devMuhammad Qureshi
2020-03-19Merge "Store annotation during collation" into rvc-devMuhammad Qureshi
2020-03-17StatsEvent annotations java autogenJeffrey Huang
Autogenerate annotations for atoms logged in java. generated FrameworkStatsLog.java: https://paste.googleplex.com/4789132691767296 Bug: 151102209 Test: m stats-log-api-gen Test: m statslog-framework-java-gen Change-Id: I50b01feaacfcb8ad5d0236432ceb0e97c8c907ab
2020-03-17Write annotations in native generated code.Muhammad Qureshi
Generated statslog.cpp: https://paste.googleplex.com/6345695252447232 Bug: 151101995 Test: m stats-log-api-gen Test: m libstatslog Change-Id: I745a9beb7be07a1890f811256c51627e6c5976dc
2020-03-17Store annotation during collationMuhammad Qureshi
- Only collate atoms in the specified module. - Replace signature_to_modules with signatureInfoMap. This maps each signature to another map keyed by field number and whose values are vector of annotations. Bug: 151102006 Test: stats-log-api-gen-test Change-Id: I25bbe4883c8f7f86a06d04d27cd425367b6d65a0
2020-03-10Remove apex_available from libstatslogJeffrey Huang
Test: m -j Bug: 149781190 Change-Id: I765852b1719a3056c06a0965ea6a05a8e8410693
2020-03-06Merge "Remove libstatslog from libstatsmetadata" into rvc-devMuhammad Qureshi
2020-03-06Merge "Support multiple module annotations per atom" into rvc-devMuhammad Qureshi
2020-03-05Remove libstatslog from libstatsmetadataMuhammad Qureshi
Instead of relying on the constants in libstatslog, hardcode them in atoms_info to get rid of the dependency on libstatslog New generated atoms_info.cpp: https://paste.googleplex.com/5779947622760448 Bug: 150417465 Test: m libstatsmetadata Change-Id: I954c963f1883f889053b63d308c648548de71e56
2020-03-05Support multiple module annotations per atomMuhammad Qureshi
Bug: 150864291 Test: m stats-log-api-gen-test && out/host/linux-x86/nativetest/stats-log-api-gen-test/stats-log-api-gen-test Change-Id: Ibf8869078c6f1eae13e687f0196d6ed91ec35c64
2020-03-05Merge "Delete unused code in stats-log-api-gen" into rvc-devMuhammad Qureshi
2020-03-05Delete unused code in stats-log-api-genMuhammad Qureshi
Bug: 145100015 Test: m Change-Id: Idbbe35fbce0d751a5973128406596678e1ead5d3
2020-03-05Fail if there are repeated fields in atoms.protoTej Singh
Repeated fields arent allowed outside of attribution node and key value pairs, so we should fail to build if someone attempts to add one. Bug: 149956370 Test: atest stats-log-api-gen-test Change-Id: I0caa6fcf74dabe8e962360ecccfd3a87fcaa4909 Merged-In: I0caa6fcf74dabe8e962360ecccfd3a87fcaa4909
2020-02-27Make libstatssocket sharedTej Singh
Also make private versions of the libraries available to link statically for tests. We should try to figure out a better long term solution. Test: m Test: bit statsd_test:* Test: atest LibStatsPullTests Test: bit libstatssocket_test:* Test: atest GtsStatsdHostTestCases Bug: 149340100 Change-Id: I05b91efab2a657aec75d436575aff4373f86ed3f
2020-02-18Turn off cpp aidlgen, link libstatssocket as shareTej Singh
Test: make Change-Id: I052fa53544e47eff6d1d8f409b62569e3d59fd04