Commit graph

35 commits

Author SHA1 Message Date
Jooyung Han
f2d4dc6b8f stats: Set min_sdk_version
Modules contributing mainline modules (APK/APEX) should set
min_sdk_version as well as apex_available.

For now setting min_sdk_version doesn't change build outputs.
But build-time checks will be added soon.

Bug: 152655956
Test: m
Merged-In: Icd184c6fe06a688bd79ef6514bb49dffb706a9a1
Change-Id: Icd184c6fe06a688bd79ef6514bb49dffb706a9a1
(cherry picked from commit cc3588afcb)
2020-05-02 02:29:19 +09:00
Jeffrey Huang
053ade4320 Merge "Add test for AStatsSocket_close()" into rvc-dev 2020-04-29 18:46:26 +00:00
Jeffrey Huang
6cc1d41527 Add test for AStatsSocket_close()
Bug: 154871176
Test: atest libstatssocket_test
Change-Id: If8aa26a9a9a75382b6f8779c23974a7008bd387a
2020-04-28 15:22:28 -07:00
Jeffrey Huang
18d239c5c5 Add require root to libstats tests
root is required for coverage tests

Bug: 154652564
Test: m -j
Change-Id: I3325565818a275a069aed35a34bf3a58ee4b5bfc
2020-04-24 10:44:25 -07:00
Jeffrey Huang
6d99e68e74 Merge "Tag libstatspull and libstatssocket tests as MTS" into rvc-dev 2020-04-23 23:55:31 +00:00
Jeffrey Huang
2f51ad7b86 Tag libstatspull and libstatssocket tests as MTS
create both 32 and 64 bit variants
fixes libstatssocket_test for 32 bit devices

Bug: 154652564
Test: make mts, adb push, adb shell all 4 tests
Change-Id: Ia6b51686c06e786b38cb3713315977533f1bb819
2020-04-22 17:13:24 -07:00
Jiyong Park
a6bcd4817c Set apex_available property
The marked library(ies) were available to the APEXes via the
hand-written whitelist in build/soong/apex/apex.go. Trying to remove the
whitelist by adding apex_available property to the Android.bp of the
libraries.

Exempt-From-Owner-Approval: cherry-pick from AOSP

Bug: 150999716
Test: m
Merged-In: I8fd2a3c9b69454c6018c72f5198898bc90dc4d0d
(cherry picked from commit 937b4bf173)
Change-Id: I8fd2a3c9b69454c6018c72f5198898bc90dc4d0d
2020-04-20 16:35:05 +09:00
Tej Singh
5d8f770b1c Link libc++ statically
Test: bit statsd_test:*
Test: bit libstatssocket_test:*
Test: bit libstatspull_test:*
Bug: 153349659
Change-Id: Ief3d0e062ed3e5cabf5b8b6198510caf3f64eefd
2020-04-06 19:52:03 -07:00
Ruchir Rastogi
8056dd129a Support ERROR_ATOM_ID_INVALID_POSITION
Originally, the native implementation would discard everything clients
wrote to the buffer before the setAtomId call. Thus, the atom id was
always placed in the "correct position." However, for consistency with
the Java implementation, we now allow write calls before setAtomId to
occur and log an error in that case.

Test: bit libstatssocket_test:*
Bug: 152119205
Change-Id: Ib109c7a939a5ae92c1d5fc70aa647ac7390fadad
2020-03-24 07:57:51 -07:00
Ruchir Rastogi
e712eed24c Support atom-level annotations within AStatsEvent
Refactors implementation details to allow for atom-level annotations.
This CL does not change the API surface. addBoolAnnotation and
addInt32Annotation work for both atom-level and proto field annotations.

Test: bit libstatssocket_test:*
Bug: 151158794
Change-Id: I2c340b201aeb3bcddd5cfde171b7c4df1d8d69a4
2020-03-12 15:21:26 -07:00
Tej Singh
d78f4dab02 Make libstatssocket a shared_lib
Make libstatssocket unable to be linked as a static lib on the platform.

Test: bit libstatssocket_test:*
Test: bit statsd_test:*
Test: atest LibStatsPullTests
Bug: 149340100

Change-Id: I5889dd718536f5f2c693b4c2e7331c9cc2eb2ac9
2020-02-27 11:37:33 -08:00
Muhammad Qureshi
3a40ee5402 //apex_available:platform should be first in list
Test: m
Change-Id: I6ede6f008bc149f587ae2fc024d5869463b2c64d
2020-02-18 17:05:19 -08:00
Ruchir Rastogi
d430c85c52 Merge "Delete stats_event_list from libstatssocket" 2020-02-15 01:34:34 +00:00
TreeHugger Robot
ea37af2c62 Merge "AStatsEvent_overwriteTimestamp" 2020-02-14 23:11:48 +00:00
Ruchir Rastogi
e1cff24259 Delete stats_event_list from libstatssocket
This change is done in internal master because the flag has not been
switched in AOSP, so stats_event_list is still being used there.

Test: m -j
Bug: 145573568
Change-Id: Ica525d0fd731b8d3e9d273ce2220a3d3179d93d9
2020-02-14 13:34:10 -08:00
Howard Ro
f8e70a5bf8 Merge "Expose AStatsSocket_close() from the statsd apex" 2020-02-14 19:43:21 +00:00
Ruchir Rastogi
e41a6c621c AStatsEvent_overwriteTimestamp
Create a function to overwrite timestamp for LogEvent tests. This
function is not exposed outside of the APEX.

Test: bit libstatssocket_test:*
Change-Id: Id0eac485af60e952cc700f7d1231b1b971400982
2020-02-14 10:56:49 -08:00
Muhammad Qureshi
2ebc2e3d8f Expose AStatsSocket_close() from the statsd apex
As part of statsd becoming a Mainline module in R, we need to formalize
the statsd APIs called from outside the statsd apex.

Bug: 145923416
Test: m
Change-Id: I296a018cc93d95bda77d95f8161acbbe983a5d51
2020-02-13 16:16:48 -08:00
Jeffrey Huang
b0a85dc46d Add apex_available to libs
Bug: 145922701
Test: m -j
Change-Id: If5cbe5651e47878520bdc5b943b17a4f72a2a2f3
2020-02-12 18:30:26 -08:00
Muhammad Qureshi
b173a95ae8 Fix native stats_event logging
pass the byte array pointer; not the reference to the pointer.

Also turn on new socket protocol.

Bug: 148909969
Bug: 143979391
Test: m
Test: fastboot flashall
Test: atest android.cts.statsd.atom.UidAtomTests#testLmkKillOccurred
Test: atest LibStatsPullTests
Test: atest GtsStatsdHostTestCases
Change-Id: If7abae5cadb036555540d1b9b5e7f2cabe99beb8
2020-02-05 17:10:46 -08:00
Howard Ro
f49c38beb5 Merge "Expose libstatspull as a stable C API" 2020-02-05 18:28:12 +00:00
Tej Singh
0fca736e6c Add libstatssocket_test to TEST_MAPPING
Test: treehugger
Change-Id: Iddff5df4c498bf7c93e57b1ae214f813920243e1
2020-02-04 16:08:21 -08:00
Tej Singh
a8fd39d83f Expose libstatspull as a stable C API
Libstatspull will ship as a part of the statsd apex in R.

Also update libstatssocket to have version 30 to align with api level,
as per native api council feedback.

Change both libraries to use NDK style naming conventions (AStatsEvent,
AStatsManager), and remove unneeded APIs in libstatssocket.

Remove KeyValuePairs from libstatssocket. KeyValuePairs will not be
supported in native code.

Bug: 147499386
Test: make libstatspull
Test: make libstatssocket
Test: atest libstatssocket_test
Change-Id: Ie79771461215a057529aaac91db95e4334c3960e
2020-02-04 14:07:35 -08:00
Ruchir Rastogi
21c1f9c314 stats_event.h/c tests
Add unit tests for the native API to log atoms to statsd.

Test: bit libstatssocket_test:*
Bug: 145231901
Change-Id: If427c17319787200260cbe3b71075ca556c9a82b
2020-01-08 14:30:01 -08:00
Treehugger Robot
3bf8858105 Merge "Fix bug in stats_event_benchmark" 2020-01-07 00:43:49 +00:00
Ruchir Rastogi
d177461a72 Fix bug in stats_event_benchmark
Now, the number of elements in each simulated stats_event is correctly
sampled from a uniform distribution.

Rerunning the benchmarking tests indicates that truncating the buffer
increases the number of cycles require to log an event by only 1.6%.

Test: m libstatssocket_benchmark
Test: bit libstatssocket_benchmark:*
Change-Id: I8d5c1734861038beec8eeb7ce1f84a24bde25a75
2020-01-06 23:10:51 +00:00
Ruchir Rastogi
2ff1eac71a Merge "Expose libstatssocket as a stable C API" 2020-01-06 20:57:55 +00:00
Ruchir Rastogi
5dbcae5020 Expose libstatssocket as a stable C API
We create a .map.txt file that lists all the stable entry points into
libstatssocket. This should allow other APEXes to link to libstatssocket
without having to copy the library within the APEX.

Test: m -j libstatssocket
Bug: 146377784
Change-Id: I9f77a0c380b6884d9ca60807a8974380420cfe0a
2019-12-27 15:04:54 -08:00
Treehugger Robot
e2e2b2d3d3 Merge "Fix error checking in append_string" 2019-12-20 00:38:25 +00:00
Ruchir Rastogi
3bbc240263 Fix error checking in append_string
Test: m -j
Change-Id: Ifa806d5037acb17f83cbf45712e9795d6f56152f
2019-12-19 14:57:10 -08:00
Ruchir Rastogi
79dd3eaa87 Improve stats_event memory usage
We now truncate the buffer to the appropriate length when clients call
stats_event_build().

Benchmarking tests indicate that truncating the buffer to the
appropriate length increases the cost clients pay to write to the socket
by 2%. This is negligible enough that I decided to truncate the buffer
for both pushed and pulled atoms in order to simplify the API.

Test: m libstatssocket
Test: bit libstatssocket_benchmark:*
Bug: 144126231
Change-Id: I35dec748ff87c0821d0d06779a406997e6e64966
Merged-In: Ife976bb383ecff8de5064730692a95e2a3a82c9d
2019-12-18 17:44:26 -08:00
Ruchir Rastogi
926fa88c35 StatsEventCompat
StatsEventCompat is a wrapper library that toggles between the old
logging scheme and the new logging scheme. It was designed particularly
for the DNS Resolver module and should not be used by others.

We will merge libstatspush_compat and libstatssocket_q in a future CL.

Test: m libstatspush_compat
Test: bit libstatspush_compat_test:* (passes on Q and R)
Bug: 145534143

Change-Id: Ib355031f3573101ea90bd8694861fbfc33b0c788
Merged-In: Idf35ccb6669798166475f08b2fbab40534b5db19
2019-12-18 17:21:27 -08:00
Muhammad Qureshi
6d5a2fc44d Make stats_event write function parameters const
Bug: 143968790
Test: bit statsd_test:*
Change-Id: I413accb10cf3de4c5c49eb06a472168b1171039b
Merged-In: I2660cad5400a0e819c60b9caa706bb66ca2eef4f
2019-12-18 15:20:59 -08:00
Muhammad Qureshi
962cc23b9f Create stats_buffer_writer
Move iovec* construction and noteLogLoss from stats_event_list to
stats_buffer_writer.h.
Expose write_buffer_to_statsd that takes in a byte array and writes
it to the statsd socket. Currently exposed for StatsLog.write JNI call.

This change also allows getting rid of stats_event_list once all clients
have migrated to stats_event

Bug: 145619049
Test: m -j libstatssocket
Change-Id: I73f914985421fc1a4f094982c826bf364604b788
Merged-In: I0048e392c2f5039eb70dacf4e91a43d3f32e8749
2019-12-18 15:15:43 -08:00
Muhammad Qureshi
a3dcefc079 Create libstatssocket_q
Break up libstatssocket into libstatssocket_q and libstatssocket.
libstatssocket_q is for Q Mainline modules.

Bug: 145569088
Test: m -j
Test: bit statsd_test:*
Test: adb shell cmd stats print-logs && adb logcat "*:S statsd:*"
Change-Id: I2978dd544f4cb17714f3d14d5977cf6b46277ef9
Merged-In: I9d113b37640345ebad6aa269ab710db0d2179671
2019-12-18 15:11:53 -08:00