• Home
  • History
  • Annotate
  • only in /frameworks/base/cmds/statsd/tools/loadtest/src/com/android/
History log of /frameworks/base/cmds/statsd/tools/loadtest/src/com/android/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4f71629002ae1da22ca1c07ce11b9cca9b272d97 11-Apr-2018 Bookatz <bookatz@google.com> StatsManager throws exceptions

When StatsManager fails to connect to statsd, it now throws an exception
for the caller to catch. It also throws an exception of the config being
added is of an unreadable format.

Due to backwards compatibility issues, the old APIs could not be
changed, so new ones were made to replace the old ones. The old ones are
now temporary and will be removed when the compatibility issue is
resolved.

Bug: 77648233
Test: gts-tradefed run gts-dev --module GtsStatsdHostTestCases
Change-Id: Ibea05883a29b9b3ef9927d2f8fe295eb99832ab7
tatsd/loadtest/LoadtestActivity.java
20e9e6231a1aba79b4e5ae47f3ccfb066920e60f 28-Feb-2018 Yao Chen <yaochen@google.com> Reduce statsd binary size from 730KB-> 664KB

1. StatsdStats does not use the proto object in memory anymore.
2. lite_static -> lite
3. don't use sstream

Bug: 72129300
Test: statsd_test

Change-Id: I8a5adaf222d4d5034e8bf115215fb6dd5f042cac
tatsd/loadtest/LoadtestActivity.java
tatsd/loadtest/StatsdStatsRecorder.java
9c1debe330006b2b4d5c08a55905789c57369609 19-Feb-2018 Yao Chen <yaochen@google.com> Add annotation to atoms that represent a state change in atoms.proto

+ A state change atom can have one exclusive state field, and any
number of primary key fields.

When there is primary key in the atom, it means the state belongs to the primary key.
For example,
message UidProcessStateChanged {
optional int32 uid = 1 [(stateFieldOption).option = PRIMARY];
optional android.app.ProcessStateEnum state = 2 [(stateFieldOption).option = EXCLUSIVE];
}

When there is no primary key fields in the atom, the state is global.
For example,
message ScreenStateChanged {
optional android.view.DisplayStateEnum state = 1 [(stateFieldOption).option = EXCLUSIVE];
}

+ The annotation is consumed by stats_log_api_gen to generate a static map from the state
atoms to its primary fields, and exclusive fields

+ stats_log.proto is splitted into 2 proto files, because statsd needs proto lite, and c++
lite proto library cannot properly ignore the field options which requires full proto.

This CL doesn't change any logic in the statsd yet. A separate CL will use the field option
information to correctly track the state.

Test: added unit tests in stats_log_api_gen_test. and statsd_test pases.
Change-Id: I9e8a979fe81ba60efd4d854bb7087ce4b2b147ec
tatsd/loadtest/LoadtestActivity.java
tatsd/loadtest/StatsdStatsRecorder.java
330af58f2b8582b855085655fae553cdfaf44e6c 09-Feb-2018 Yangster-mac <yanglu@google.com> Use elapsed realtime instead of times based on wall clock, which can jump around and go backwards.

Test: statsd unit test passed

Change-Id: Ib541df99231e171b3be2a24f75632693e36da90e
tatsd/loadtest/DisplayProtoUtils.java
959b80f1917a4cb310b8089ac6cc10d702f04c8a 08-Feb-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Modifies statsd output for start and end times."
16049578001364e1fcb0f10d6f94868081e57316 02-Feb-2018 David Chen <dwchen@google.com> Modifies statsd output for start and end times.

We include the start of when the last dump occurred and the current
timestamp. These timestamps are shared across all metrics, so
there's no advantage in duplicating these numbers across all metrics.

Also, we should use elapsed realtime instead of times based on wall
clock, which can jump around and go backwards.

Test: Test that statsd can still build and
adb shell cmd stats dump-report doesn't crash.
Change-Id: I819e5643cee75dfa3e78a58f94c9d61ededa78d7
tatsd/loadtest/DisplayProtoUtils.java
661f791a2580515eee5882ab9498aef94a0d33a5 23-Jan-2018 David Chen <dwchen@google.com> Statsd notifies listener with pendingintent.

Previously, statsd would inform interested listeners that it's time
to collect data via a protected broadcast. However, the preferred
solution is to pass a PendingIntent via a separate setter. Whenever
statsd wants the listener to call getData, StatsCompanionService
will trigger the pending intent.

Test: Tested in marlin-eng that functionality works as expected with
dogfood app.
Bug: 72562867
Change-Id: Ibcfcd5072a1a78947f8a7cbcd0bc429b54351da3
tatsd/loadtest/LoadtestActivity.java
1a1b0464cb43903ed540f4c43fd423b16e398c04 12-Jan-2018 Bookatz <bookatz@google.com> Statsd and frameworks reference proto enums

For frameworks constants that don't have intrinsic meaning (i.e. their actual
value and order don't matter), so that it is unlikely that their values
will be changed:
This cl introduces proto enums representing some constants found in
the Android codebase, and connects the two.

By using the Proto enum as the source-of-truth, it means that Java and
proto can be kept in sync. Otherwise, when the Java frameworks code
changes, it silently breaks the protos from working properly, since the enums
are wrong. By having the Java code reference the proto enums, it ensures
that everything is in sync. The values of the constants are unchanged.
But future changes to these constants will need to be done in the proto
file, which the Java file merely references.

The protos are necessary for incidentd and statsd and, in the future,
possibly dumpsys. In this way, the logging mechanism is much less likely
to get broken when new constants are added, and we can be ensured that
the logging accurately reflects the underlying codebase.

Bug: 69478930
Test: cts-tradefed run cts-dev -m CtsStatsdHostTestCases
Test: cts-tradefed run cts-dev -m CtsIncidentHostTestCases
Change-Id: If79032c34b2799db1e3e70cb47b1312fd72092b9
tatsd/loadtest/SequencePusher.java
c697797d43b6932fc7cca1c8d7d850c3fb4d1452 17-Jan-2018 Bookatz <bookatz@google.com> Statsd broadcast subscriber

Allows a uid that uploads a statsd config to additionally
register a BroadcastSubscriber with statsd. If statsd
detects an anomaly (according to the config's Alert),
statsd can inform a BroadcastSubscriber provided in the config.
The config uses a subscriberId (just an int) to identify the
BroadcastSubscriber. It then uses StatsManager.setBroadcastSubscriber
to associate that subscriberId with a given PendingIntent.
Then, when the anomaly is detected, statsd sends a broadcast
using that PendingIntent, alerting whoever was specified by
the config/setBroadcastSubscriber.

Bug: 70356901
Test: cts-tradefed run cts-dev -m CtsStatsdHostTestCases -t android.cts.statsd.alert.BroadcastSubscriberTests
Change-Id: I4d9ea9a6c8a85e61fadfd99c1513c55abbadd5e9
tatsd/loadtest/LoadtestActivity.java
b84e8b1fcfb69c058c18b70bbfb76e37cd4e23cd 23-Jan-2018 Yangster <yanglu@google.com> Sync statsd google3 protos to aosp.

Test: statsd unit tests passed
Change-Id: I66b05478b7c5b0f9fdd6386b2e2ba7c38a3f9b88
tatsd/loadtest/ConfigFactory.java
468ff04fd4cb43a384a3d4948cccd4438be7202a 17-Jan-2018 Yangster-mac <yanglu@google.com> Proto change for dimension from condition.

Test: all statsd unit tests and cts tests passed.

Change-Id: I955143aca7c76e2e22a10d7ba42eb797bd32e147
tatsd/loadtest/DisplayProtoUtils.java
47c186ca325965825021dccba0b5f1ec3410da12 06-Jan-2018 Stefan Lafon <stlafon@google.com> More adjustments to the loadtest app.

- Add ability to set the replication factor by intent.
- Add shell script to automate the loadtesting.

Test: Loadtest app works.

Change-Id: I7263a3c23049f3ed20144e4e15b6a54ac5fddcc8
tatsd/loadtest/DisplayProtoUtils.java
tatsd/loadtest/LoadtestActivity.java
c6f2fa2700c12b44ef7b28d42c513125bc9476ae 05-Jan-2018 Stefan Lafon <stlafon@google.com> Fix a few things with the loadtest app.

Test: Loadtest app is running fine.

Change-Id: I834f6c618f5a6b0b17ecd5592e2ab2209ce7b94a
tatsd/loadtest/BatteryDataRecorder.java
tatsd/loadtest/ConfigFactory.java
tatsd/loadtest/LoadtestActivity.java
tatsd/loadtest/MemoryDataRecorder.java
tatsd/loadtest/PerfData.java
tatsd/loadtest/PerfDataRecorder.java
tatsd/loadtest/StatsdStatsRecorder.java
tatsd/loadtest/ValidationRecorder.java
b814481ad1f8d0e429d799b1571a6272e1a7f6c5 04-Jan-2018 Yangster-mac <yanglu@google.com> Use TimeUnit enum to specify the bucket size.

Test: all statsd unit test passed

Change-Id: I4f6b80ba2f8c984b06e46e6de6df3e546e99a968
tatsd/loadtest/BatteryDataRecorder.java
tatsd/loadtest/ConfigFactory.java
tatsd/loadtest/LoadtestActivity.java
tatsd/loadtest/MemoryDataRecorder.java
tatsd/loadtest/PerfData.java
tatsd/loadtest/PerfDataRecorder.java
tatsd/loadtest/StatsdStatsRecorder.java
tatsd/loadtest/ValidationRecorder.java
94e197cceb2ba7df13ff8de04f60bfeec64015d9 03-Jan-2018 Yangster-mac <yanglu@google.com> 1/ Change all "name" to id in statsD.
2/ Handle Subscription for alert.
3/ Support no_report_metric

Bug: 69522276
Test: all statsd unit tests passed.
Change-Id: I851b235f2d149b8602b0cad632d5bf541962f40a
tatsd/loadtest/ConfigFactory.java
tatsd/loadtest/DisplayProtoUtils.java
tatsd/loadtest/LoadtestActivity.java
tatsd/loadtest/ValidationRecorder.java
2087716f2bdca90c7c3034d556ac12911bd8018e 23-Dec-2017 Yangster-mac <yanglu@google.com> 1/ Support nested message and repeated fields in statsd.
2/ Filter gauge fields by FieldMatcher.
3/ Wire up wakelock attribution chain.
4/ e2e test: wakelock duration metric with aggregated predicate dimensions.
5/ e2e test: count metric with multiple metric condition links for 2 predicates and 1 non-sliced predicate.

Test: statsd unit test passed.

Change-Id: I89db31cb068184a54e0a892fad710966d3127bc9
tatsd/loadtest/ConfigFactory.java
tatsd/loadtest/DisplayProtoUtils.java
0d7d4d4f306c5102c73fa5ee88069a64ecd2b70d 21-Dec-2017 Yao Chen <yaochen@google.com> Modify Loadtest app to be able to exclude certain metric types.

Test: manual
Change-Id: Iba025e4d6cd7c15a231550d382768aa7661ccc86
tatsd/loadtest/ConfigFactory.java
tatsd/loadtest/LoadtestActivity.java
3c0b95ceb520c6b23871da90c23f89c55b76b560 16-Dec-2017 Yao Chen <yaochen@google.com> Turn off verbose logging, remove the fake config.

Test: statsd_test & manual
Change-Id: I43068c8db006cbbeccacaa9d8426ab4d0394313a
tatsd/loadtest/LoadtestActivity.java
14e076e6760427e73a7141ec009dc7b66667e053 10-Dec-2017 Stefan Lafon <stlafon@google.com> Improvements to loadtest app.

- Support for statsd stats in loadtest app.
- Skeleton for correctness validation.
- New config with pulled atoms in gauge metrics.

Test: Ran statsd.

Change-Id: I0f062d55b8827452cc0421093fc35242dc3afb23
tatsd/loadtest/LoadtestActivity.java
tatsd/loadtest/MemoryDataRecorder.java
tatsd/loadtest/NumericalWatcher.java
tatsd/loadtest/PerfData.java
tatsd/loadtest/PerfDataRecorder.java
tatsd/loadtest/StatsdStatsRecorder.java
tatsd/loadtest/ValidationRecorder.java
c542320b4fe7284cfa38db2039e4baade77b2082 07-Dec-2017 Tej Singh <singhtejinder@google.com> Copy atoms.proto changes to atoms_copy.proto

Also changed load test app to use enum.ToString instead of big switch
case.

Test: built & ran statsd & cts test. Also built & ran load test app.
Change-Id: I975c75e04100df3c380c2e3a46d3737b81f7e21a
tatsd/loadtest/DisplayProtoUtils.java
9d25218985ba8ea944b4a51d194744b5a85a1105 07-Dec-2017 Stefan Lafon <stlafon@google.com> Merge "Track PSS in loadtest."
9709fa26f1e3f713e0558c5cce71c28f208afbe9 07-Dec-2017 Stefan Lafon <stlafon@google.com> Track PSS in loadtest.

Test: Ran the loadtest. Not changing statsd.

Change-Id: Idc43cba59ec2c9d4213e20b395a083fdda58e8c4
tatsd/loadtest/BatteryDataRecorder.java
tatsd/loadtest/BatteryStatsParser.java
tatsd/loadtest/ConfigFactory.java
tatsd/loadtest/LoadtestActivity.java
tatsd/loadtest/MemInfoParser.java
tatsd/loadtest/MemoryDataRecorder.java
tatsd/loadtest/NumericalWatcher.java
tatsd/loadtest/PerfData.java
tatsd/loadtest/PerfDataRecorder.java
tatsd/loadtest/PerfParser.java
a5b5191351a85ea33641dc42ee4223189b3612f3 06-Dec-2017 Stefan Lafon <stlafon@google.com> Rename EventConditionLink as MetricConditionLink in statsd_config.proto.

Test: Ran statsd_test and cts tests.
Change-Id: Ia9a38892854443aa4f17d800a075860fcf874652
tatsd/loadtest/ConfigFactory.java
12d01fa7c165a1f79091d4d742a48bffd7552650 05-Dec-2017 Stefan Lafon <stlafon@google.com> Rename more things in statsd_config.proto.

SimpleCondition -> SimplePredicate
simple_condition -> simple_predicate
Condition -> Predicate
condition -> predicate

Test: Ran statsd and statsd_test.

Change-Id: I3115fb51a4dc3cbe5f23535dfc448d5755b9ed7f
tatsd/loadtest/ConfigFactory.java
b8c9aa8c9ccba4e64759c177381b742ca99a5487 03-Dec-2017 Stefan Lafon <stlafon@google.com> Rename a few things in statsd_config.proto.

This for frameworks/base/

SimpleLogEntryMatcher -> SimpleAtomMatcher.
simple_log_entry_matcher -> simple_atom_matcher
LogEntryMatcher -> AtomMatcher
log_entry_matcher -> atom_matcher

Test: Ran statsd_test.

Change-Id: I7398758e3fab86235897c162884f5ceab3002510
tatsd/loadtest/ConfigFactory.java
bc7a04b88db83b6bb91c2c50a4cd8b6bafabac06 25-Nov-2017 Stefan Lafon <stlafon@google.com> Create statsd loadtest app.

That app automatically sends a bunch of events to logd.
The frequency is adjustable.

Test: Ran statsd.

Change-Id: I7a88c140e39d22549cc76ef68059d292e85a8a24
tatsd/loadtest/BatteryStatsParser.java
tatsd/loadtest/ConfigFactory.java
tatsd/loadtest/DisplayProtoUtils.java
tatsd/loadtest/LoadtestActivity.java
tatsd/loadtest/NumericalWatcher.java
tatsd/loadtest/PerfData.java
tatsd/loadtest/SequencePusher.java