Increase StatsEvent max byte size to 50 KB when not using pooled buffer.
- Set the default max size to 50 KB
- The starting buffer size is still ~4 KB for pushed and pulled events.
- If a write would exceed the buffer bounds, double buffer size until
write fits or 50 KB limit is exceeded in which case the overflow bit is set to true.
- If usePooledBuffer() is called, max size is set to ~4 KB but buffer
isn't resized. And if the current payload exceeds this limit, set
overflow bit to true.
- Only "recycle" Buffer object if its size is <= ~4 KB.
Bug: 158214941
Test: atest FrameworkStatsdTest
Change-Id: I9b6f73688b0bccb5a70f4ef51750464ec9c87fb9
Change package of StatsdStatsLog from com.android.internal.util to
com.android.internal.statsd
Test: atest GtsStatsdHostTestCases
Bug: 157649935
Change-Id: Iee2af03c950b7cc054f7d77e721694a7f429ae9d
This can result in more pull failures, but can prohibit slow pullers
from slowing down statsd.
Test: atest GtsStatsdHostTestCases
Test: atest statsd_test
Test: atest FrameworkStatsdTest
Bug: 154056912
Change-Id: Ie30bd3584d808bb11aaaf0fe2057c9adfb198644
If the first call for pullFinished fails, it is likely because the
transaction is too large. Currently, if this happens statsd will just
sleep until the timeout. With this change, the client will retry calling
pullFinish if the first attempt fails, but with an empty payload (and
with success = false) to cause the puller to fail fast, and so statsd
does not wait for the timeout.
Test: atest GtsStatsdHostTestCases
Bug: 157768117
Change-Id: I1af29b6c83039ab56ef847832a600d4afea34000
Suspected root cause: if a process crashes right after calling
setPullAtomCallback, it's possible that oneway binder calls can queue
but do not execute before the process crashes. Then, when the process
crashes, nothing has a strong reference to the IPullAtomCallback, so
it gets deallocated. Then, when the oneway call actually executes, the
callback is null. This is being followed up in b/155793159
Regardless, statsd should handle null input properly.
Test: GTS test in ag/11348719 now passes
Test: atest GtsStatsdHostTestCases
Bug: 153822941
Change-Id: Ic6d415e10eca8d133290de80cb61e1634590ca6a
Also remove sendAppBreadcrumb binder api because it's no longer used.
Bug: 154264326
Test: atest com.google.android.statsd.gts.StatsdHostTestCases
Change-Id: Ic51a057bb01a89a24337521a49c54a52e2073cd1
This check was not useful since service can only be null if system
server is not running or the app does not have permissions to access
statsd. This check is not done anywhere else, so removing it for
consistency.
Bug: 150645647
Test: atest StatsdHostTestCases
Change-Id: I6465697f0157c5a9583025979c55cb2e3dc1ef84
Enforce a 1 second minimum cooldown and a 10 second maximum timeout on
pullers.
Test: bit statsd_test:*
Test: atest LibStatsPullTests
Test: atest GtsStatsdHostTestCases
Bug: 152543610
Change-Id: Ida0047235a7e56d7b700f1a7ab5cfbc2a147caeb
Add atom-level annotations support in StatsEvent.java
setAtomId must be called right after StatsEvent.newBuilder().
Calling setAtomId out of order results in
ERROR_ATOM_ID_INVALID_POSITION.
Bug: 151158793
Test: atest FrameworkStatsdTest
Change-Id: Ib574f079227660193e12b3aa37136d36e154479a
Reduces code complexity by leveraging the readFromParcel and
createFromParcel functions created in the autogenerated
StatsDimensionsValueParcel class.
Wrote a unit test that checks the conversion from a
StatsDimensionsValueParcel to a StatsDimensionsValue.
Test: atest FrameworkStatsdTests
Test: atest GtsStatsdHostTestCases
Bug: 149103391
Change-Id: I64850c6b962a68799d51a26138e95cb1e0c99aee
1. Rename registerPullAtomCallback to setPullAtomCallback
2. Rename unregisterPullAtomCallback to clearPullAtomCallback
3. Add getters to PullAtomMetadata
4. Change Ns to Millis (when I tried to make it Nanos, I received a
built time error saying to prefer millis unless we need the precision.
We do not need the precision, so I changed it).
5. Fix out of order params.
I did not change usePooledBuffer to setPooledBuffer because I think use
is more appropriate for our use case.
Test: make
Test: atest PullAtomMetadataTest
Test: atest GtsStatsdHostTestCases
Bug: 149475498
Change-Id: Ib07aa57a6e02c77917fe0e65a3d4a77c00ce8565
StatsManagerService throws IllegalStateException
when statsd is not available. This causes GMSCore to crash.
Bug: 149914783
Test: Manual, verify play store no longer crashes
Change-Id: I45cd679600ccfdb7977ecfd4437b62f56034fed2
As part of statsd becoming a mainline module in R,
libstats_jni needs to live in the apex.
Bug: 148620413
Test: m
Test: fastboot flashall
Change-Id: I22c2816c863e7a4462a79ac99238b06aca40a2d6
Because statsd now uses StatsDimensionsValueParcel instead of
StatsDimensionsValue.h/c, statsd no longer has to depend on libservices.
Test: m -j
Test: atest StatsdHostTestCases#testBroadcastSubscriber
Bug: 148604617
Change-Id: I6d65383ccec99f4672d6575232981c0f6cc40fcf
Create a permission to allow clients to register pull atom callbacks to
statsd. This permission should allow mainline modules and other platform
clients register puller callbacks, but is not intended for 3p apps.
Bug: 146462168
Test: atest CtsPermission2TestCases
Change-Id: Iea50d137e2cc9f34644c8aa9548a7445f5ec16b8
Move all variable declarations to top of file
Delete unused puller registrations
Migrate to new API
Test: m -j
Bug: 145565211
Change-Id: I03890e333dd179be3b8d075657cf84a2247a473c
Create a wrapper class to access binder objects
published by statsd mainline module
Bug: 147923515
Test: atest com.google.android.statsd.gts.StatsdHostTestCases
Change-Id: I9ea3677d88c790c856e4e89318ae2ce67ac7df1e
Link frameworks-statsd.jar against framework-all
since it is currently infeasible to to link against stubs
Linking against stubs in frameworks/base cannot be done because
we still have StatsLog that calls StatsEvent.getBytes which
is a hidden API.
We can't move StatsLog to the apex because of hidden APIs in the
autogenerated code which is currently being migrated.
Test: m -j
Bug: 147923515
Change-Id: I0a59dce83a8075bdde3e72d1d8eceef2ed572791
Create framework-statsd jar in statsd apex.
Move StatsEvent to framework-statsd.jar.
Right now, frameworks jar links against framework-statsd directly. This
should be changed to link against framework-statsd-stubs.
Bug: 145923096
Bug: 145923116
Bug: 142810493
Test: m
Test: flashes successfully
Test: adb shell cmd stats print-logs && adb logcat "*:S statsd:*"
Change-Id: Ife224abd5c9b9b0eeab681dc4b7f71c0bdb856b1