History log of /frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
50b0c9a6082417034514d68a079248ce09957027 11-May-2018 Yangster-mac <yanglu@google.com> Guardrail the max gauge atoms per dimension in one bucket.

Test: statsd
BUG: b/78603347
Change-Id: Ide77cc8ff0cde6cf6cc9e56034727ed27dd7be88
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
3b592910c50856a3b28a07a735c31e19f44bc460 10-May-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix the gauge metric data size estimation." into pi-dev
b2532daf4d9922b706054705b8dbf94a9df6a191 11-Apr-2018 Yangster-mac <yanglu@google.com> Fix the gauge metric data size estimation.

Test: statsd test
BUG: b/77906846
Change-Id: Ie5ab54771acadde1e825289fe5ec491cc2225458
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
ec3c7a3e58757a23afbb494b5fd9f1a1081fa495 10-May-2018 Yangster <yanglu@google.com> Add a sampling method to pull gauge when condition changes to true.

Test: statsd test

BUG: b/79490890
Change-Id: I82ed6681151f8a217e74bd0d855f817b4fa0619c
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
b85e5616dfa153eea1e61e99427164c5102dbbd3 02-May-2018 android-build-team Robot <android-build-team-robot@google.com> Merge "Reduce statsd log data size." into pi-dev
9def8e3995b1034d943a0fd22b6e512bfacdab77 17-Apr-2018 Yangster-mac <yanglu@google.com> Reduce statsd log data size.

1. Hash the strings in metric dimensions.
2. Optimize the timestamp encoding in bucket.
Use bucket num for full bucket and millis for
partial bucket.
3. Encode the dimension path per metric and avoid
deduping it across dimensons.

Test: statsd test
Change-Id: I18f69654de85edb21a9c835c73edead756295e05
BUG: b/77813755
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
a802d73da625ac72f6a0211aab017f365139112d 24-Apr-2018 Yangster-mac <yanglu@google.com> Clear the past buckets for no-report metrics

Test: statsd tests.
BUG: b/78503732
Change-Id: I3de855929ad05677769cffaae4fea2db0d2f32da
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
81245fd53a0bd627fa87e3a69dd667c7d6696ede 12-Apr-2018 David Chen <dwchen@google.com> Adds option to drop small buckets for statsd.

We notice that some of the pulled metrics have a ton of data, and
during app upgrades, we're forming partial buckets that represent
small periods of time but require many bytes of data. We now have an
option to drop these buckets that are too short. Note that we still
have to pull the data to keep the metrics for the next bucket
correct. We include a new field in the value and gauge metric outputs
so that it's easy to tell when a bucket was dropped.

We drop the partial buckets also from anomaly detection since we
should be computing anomalies from the same data that is reported.

Test: Added unit-tests for value and gauge metrics.
Bug: 77925710
Change-Id: Ic370496377c6afd380e02278a6c1ed8b521a2731
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
15f6bbc24f4d7a3d4481d90a18df33d402ddacba 08-Apr-2018 Yangster-mac <yanglu@google.com> Flush the bucket when creating the metric producer.
Use int64 for value field.
E2e test for gauge/value metric.

BUG: b/74445671

Test: statsd test.
Change-Id: I823a0bade8f89834bdfb9cf48864852a47d7b63b
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
e68f3a5811209eeab71976bc583c6075d9a5979a 04-Apr-2018 Yangster-mac <yanglu@google.com> Flush the partial bucket when startd shuts down or config updated.

Test: statsd test

BUG: b/77556036
Change-Id: Ie4a04ace55e07c4529cdff5906ba874f8815f620
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
b142cc8add29c8c97f6134d35873d23db666027c 31-Mar-2018 Yangster-mac <yanglu@google.com> Statsd config TTL

Roughly check the config every hour to see whether the ttl expired.
If so, read the config from disk and recreate the metric manager.

Test: statsd test

BUG: b/77274363

Change-Id: I16838afe5bbe966c3a0f638869751f9b59a5a259
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
1a0a941c20eb746868d0de52e3806f69c74d335f 28-Mar-2018 Chenjie Yu <cjyu@google.com> Fix StatsCompanionService pull on bucket ends

+ change StatsPullerManager internal time units to be consistent
+ use series of alarms for pullers, instead of use setRepeating

Bug: 76223345
Bug: 75970648
Test: cts test
Change-Id: I9e6ac0ce06541f5ceabd2a8fa444e13d40e36983
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
d9afdee26f01d1e0277749959094d9f396799a69 27-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Support sliced condition change in GaugeMetric" into pi-dev
427d372552490a2c5ac4041fe345b15f69451f57 22-Mar-2018 Yao Chen <yaochen@google.com> Support sliced condition change in GaugeMetric

TODO: We need CTS to verify the behavior.

Bug: 73958484
Test: statsd_test
Change-Id: I56406983ddede12bc6a2e12188693a0c51ccae5c
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
c58750578fdf6e54500e9deabe7d5062afbd6e09 09-Mar-2018 Chenjie Yu <cjyu@google.com> Up the dimension key limit for CpuTimePerUidFreq

This atom logs time spent on cpu per frequency per uid.
On marlin, there are 27 frequency steps per uid (should be 50+ if
flatten to both cores)
On walleye, there are 52 frequency steps per uid.
So it easily goes to 6k data.

Soft limit set to 6k now.
Hard limit set to 10k to accommodate future processors

Memory impact: on marlin, start memory no config is 2,346K
after using this atom in one guage metric, it is 3,067K

Bug: 72505991
Test: cts test
Change-Id: I067a32e54e4a457fdf9a25911aa16030e893ef4d
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
c40a19d2e43d5de3e036e926bf070220c2c865e6 16-Mar-2018 Yao Chen <yaochen@google.com> Add uid field annotation in atoms.proto and statd memory usage optimization.

[memory]
statsd binary size from 664k -> 600k
memory usage 1978k -> 1813k (with no configs)
+ Avoid initialize any static map in statslog.h to avoid many copies of the map in each include.
- Do it in cpp so that it is initialized only in places that use them

[Uid annotation]
+ Uid annotation is needed for extracting uid from dimension for UidCpuPuller.
+ After the change, stand-alone uids don't need to be in field 1 anymore.
+ Also added exclusive bit annotation in AppDied
+ Currently only allow one uid field in an Atom. This is to keep things simple until
we find an exception.

Test: statsd_test
Bug: 73958484
Bug: 72129300

Change-Id: I8a916d5c00d5930e24ae7e0825a57dea19c0e744
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
c7ce1a09783e7b1d32576d381e9bfe312c57c089 14-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add wall clock timestamp for ConfigMetricsReport and gauge atoms." into pi-dev
aaadf6663fdc8787947d67bc14841d20094bd072 14-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Statsd: Remove storage of bucketNum" into pi-dev
a78d00874d4e274937734a1b73aef4b6389eb3cd 12-Mar-2018 Yangster-mac <yanglu@google.com> Dump the stats for count/gauge/value metrics.

Bug: b/74159560

Test: statsd test
Change-Id: I1410309ecfdfc2a5becf8d0c620c68a621ebc5fa
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
3f5ab3ff1d66e53c26e3a5951dc0804bca5467a8 13-Mar-2018 Bookatz <bookatz@google.com> Statsd: Remove storage of bucketNum

Past buckets had a field mBucketNum, storing the
"bucket number" they represented. Currently, the concept
of bucket number is used by Anomaly Detection (although this
may not be necessary), but these stored values are not used at all,
so removing them will save RAM.

Test: statsd tests still pass
Bug: 74607818
Change-Id: Iacc343bc39c5035f6e2f236c03de1d91606eff4c
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
3fa5d7fb236f263125bc6364ea693e5e9f122976 11-Mar-2018 Yangster-mac <yanglu@google.com> Add wall clock timestamp for ConfigMetricsReport and gauge atoms.

Fix the bug when serializing multiple atoms in gauge metric

BUG: b/74159560

Test: new test for ALL_CONDITION_CHANGES sampling method.
Change-Id: I6d33c1efbac92b6e13be2d64c323e090cb1f84aa
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
13fb7e4eeaf7aee408821afe7ee55a5167e49e59 08-Mar-2018 Yangster <yanglu@google.com> Statsd cpu optimizaton

- cache the changed dimensions in condition tracker.
- avoid query condition wizard when unnecessary.
- avoid copy dimension keys in condition key generation.

Test: statsd tests.

BUG: b/73959649
Change-Id: I17d68e2a82643de3f421309841e75f84c6fd8f43
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
5ee0787024cc446a21008ff5710dec19c6afc834 06-Mar-2018 Yi Jin <jinyithu@google.com> Use uint64_t instead of long long as API type for consistent reason.

Bug: 74118023
Test: manual
Change-Id: Icd5f506c76d3a008a79cb6c9d2061962ca7fdd40
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
06dba5d79c096b02d3ba6fb73e64451ff12e388d 26-Jan-2018 Yao Chen <yaochen@google.com> Add API to let metrics directly drop data without writing to an output.

+ Metrics will do flushIfNeeded() to correctly move the clock and informing
AnomalyTracker the past bucket info, and then clear past buckets.

+ We will still keep the current bucket data for the validity of the future metrics.

Bug: 70571383
Test: statsd_test
Change-Id: Ib13c45574974e7b4e82bd8f305091dc93bda76f5
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
d5c356214fabec1ad9d5d16d673f000deb49ea30 02-Feb-2018 Yangster-mac <yanglu@google.com> Timestamp Truncating whitelist.

Test: manually tested.
Change-Id: I46da375b6c0773ffc611bc06fff12cb4f9a7fc18
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
db15052ae2ea34807644e2e97afa908e43ae59fd 15-Feb-2018 Howard Ro <yro@google.com> Merge "Add a guardrail to limit minimum bucket duration to be 5 minutes except when configured through adb command"
6189807c12e9cf32a36d32557725561c44b8aa5a 14-Feb-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove unused variables in statsd, and make more warnings show."
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
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
59cc24dbfda4148c1f5ef4de9c8763caa8672443 14-Feb-2018 yro <yro@google.com> Add a guardrail to limit minimum bucket duration to be 5 minutes except
when configured through adb command

Bug: 73287251
Test: statsd_test
Change-Id: Iee51fedbaabb2c1f534a6edef3c564da88ef658b
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
4c959cb99eb7e71e5417a61f5429c5fa0073e826 13-Feb-2018 Yao Chen <yaochen@google.com> Remove unused variables in statsd, and make more warnings show.

Test: statsd_test

Change-Id: I2c7b674cb615f22c5de90c2de5f2d58108ab2e7f
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
8a8d16ceea1e5b7a2f8c41e17b5d993035f50f5d 08-Feb-2018 Yao Chen <yaochen@google.com> Statsd CPU optimization.

The key change is to revamp how we parse/store/match a log event, especially how we match repeated
field and attribution nodes, and how we construct dimensions and compare them.

+ We use a integer to encode the field of a log element. And also encode the FieldMatcher into an
integer and a bit mask. The log matching becomes 2 integer operations.

+ Dimension is stored as encoded field and value pair. Checking if 2 dimensions are equal is then
becoming checking if the underlying integers are equal. The integers are stored contiguously
in memory, so it's much faster than previous tree structure.

Start review from FieldValue.h

Test: statsd_test + new unit tests

Bug: 72659059

Change-Id: Iec8daeacdd3f39ab297c10ab9cd7b710a9c42e86
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
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
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
27785a8a4a684c831c18f7189a6fa1b98c3573e6 20-Jan-2018 David Chen <dwchen@google.com> Partial buckets on app upgrade and fix duration.

Statsd will create partial buckets in all metrics producers when an
app is upgraded so that we can separate metrics between different
versions of an app. By looking at the uid map changes, we can tell
which app versions belong to a bucket; for metrics that are not
affected by an app version, we can instead join the buckets together.

To simplify the logic, the ends of the full buckets are always
aligned to when the metric producers were created. These boundaries
are computed on the fly by using the bucket number and the metric
producers' start times.

We keep the anomaly trackers to only be given full buckets; we buffer
the partial buckets within each metric producer.

Duration metric's MAX_SPARSE is fixed to be implemented as such. In
addition, after further discussion, we find anomaly detection on
MAX_SPARSE to be unnecessary, so this functionality is removed.

Test: Unit-tests added and modified, passed on marlin-eng.
Change-Id: I5ff7a9c7f05c406e9faf400c6a39162970ded102
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
9369446f0b04945d6674550728ae81196d6fb5c2 23-Jan-2018 Yangster-mac <yanglu@google.com> Support dimension in condition in metric producers.

Test: added e2e tests for count/duration metrics sliced by fields in condition and with/without links.

Change-Id: Ie34deba68e6780abdde458be3f0ce5284e76a1a2
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
34ea1103a0faa0e01df0e2b0ac1ce98e7ec3e3f1 29-Jan-2018 Yangster-mac <yanglu@google.com> Extend gauge metric to support memory metric.

Test: statd unit test passed.

Test: statsd unit test passed
Change-Id: I2e3f26563678ae77d44afe168454b6d1ea449f3a
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
635b4b37210bd61b73aebf19298e38b8fb382e85 24-Jan-2018 Yangster-mac <yanglu@google.com> Do not output empty metric reports.

Test: statsd unit test passed.

Change-Id: I296edbe621eaea72ad2e1dfe656698302614c0f3
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
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
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
87718e283a62660eaa0e39fd780c97a290da988f 12-Jan-2018 Yangster-mac <yanglu@google.com> Gauge metric e2e test

Test: new test passed
Change-Id: I6a8bceb43fbb6e7b82f47951e71b5620779f2ceb
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
fa14c11f05bbc1fce0a416f980e2bdaee3beb8fa 05-Jan-2018 Yangster-mac <yanglu@google.com> Avoid overwriting bucket in Gauge metric producer as anomaly tracker needs past buckets.

Test: statsd unit test passed.
Change-Id: I3c76846da169b36c447c77db76b3deeda87e9e6e
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
a070b6a40c95df5b64d195aba1386815fec5d5b7 04-Jan-2018 Yangster-mac <yanglu@google.com> Bug fix: gauge metric producer does not need the atom id parameter.

Test: statsd unit test passed
Change-Id: Ifd1e2f7a05a03886eb227ac1ae0e30b884e49f0c
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
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
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
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
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
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
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
d5aa01b3716e07463019fa772f07a40613f9e39e 20-Dec-2017 Yao Chen <yaochen@google.com> Remove the hacky HashableDimensionKey.

+ Add a real HashableDimensionKey as a wrapper of the dimension.
So we can get rid of the maps that we kept.

Pay down technical debt and reduce memory usage.

Test: statsd_test & manual
Change-Id: I233280cf1e2ce93da6a8cd4e8514abb066f4016d
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
e6abcbed993c81562cddb4122235fc2bcffff8e8 17-Dec-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Turn off verbose logging, remove the fake config."
d9dfda76e0aa8b8aa4d2562a7ff4259f4500e355 12-Dec-2017 Chenjie Yu <cjyu@google.com> add feature: GaugeMetricProducer now takes repeated list of fields
bug fix: GaugeMetricProducer now works better with pulled events.
unit test also includes GaugeMetricProducer_test

Test: unit test
Change-Id: Ic60f09342d14cfb107be2130d445b323a56909e0
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
3c0b95ceb520c6b23871da90c23f89c55b76b560 16-Dec-2017 Yao Chen <yaochen@google.com> Turn off verbose logging, remove the fake config.

Test: statsd_test & manual
Change-Id: I43068c8db006cbbeccacaa9d8426ab4d0394313a
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
f09569f848ca0b81a21a74e9f4dd8bd9a886151a 14-Dec-2017 Yao Chen <yaochen@google.com> Further reduce statsd memory usage.

+ Remove the protobuf *Metric object from MetricProducers
-- This saves ~150 bytes per metric.
+ Remove the StatsdConfig from ConfigManager
-- This saves us xKB per config.
+ Also remove alerts from fake config to avoid crash (Bug: 70627390)
+ Other misc fixes too.

Test: statsd_test & manual
Change-Id: Ied4eb3fa31c50599817b3a5e1caf5077c487fad2
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
a7259abde4e89fd91404b14b4845113cd313d1ec 10-Dec-2017 Chenjie Yu <cjyu@google.com> use running sum for ValueMetricProducer bucket
simplify ValueMetricProducer logic for pulled data

Test: unit test
Change-Id: Ic0a21a543166cc5c34c1fa505dba08d1fc2f510a
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
288c60001330a5a924a47c0eebd6097ae3ee5d67 12-Dec-2017 Yao Chen <yaochen@google.com> Only create ProtoOutputStream when onGetData() is called.

The exception is EventMetricProducer. Each EventMetricProducer will still have a ProtoOutputStream
Because LogEvent comes as a fixed 4K, it's more memory efficient to have an 8k ProtoOutputStream for
storing the events.

Also removed finish() api in MetricProducer, which was intended to use with Dropbox.

Test: statsd_test & dogfood app
Bug: 70393808
Change-Id: I2efe4ecc76a88060a9aa5eb49d1fa6ea60bc5da8
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
5c5eebca0e50f5ceb08ad271e4f25731a5b5f95c 07-Dec-2017 Yao Chen <yaochen@google.com> Fix a deadlock in statsd.

Test: manual
Change-Id: I7676713f604699737d819ac67fe49bc5b5d8cf98
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
971c8ca6b13a3fd9cfc75c4f9fa037ac6b7bb550 02-Dec-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "bug fixes * add timestamp to those pull from StatsCompanionService * GaugeMetricProducer unregister from StatsPullerManager when dismissed"
032fefc3b547726e675a112baa8d1b6c550ac192 02-Dec-2017 Chenjie Yu <cjyu@google.com> bug fixes
* add timestamp to those pull from StatsCompanionService
* GaugeMetricProducer unregister from StatsPullerManager when dismissed

Test: cts test
Change-Id: I930179979c146a7407aec3df7e76833f51e9b346
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
f2bee6fec965fd42ab223f1a3aa705f07ba79aea 29-Nov-2017 Yangster <yanglu@google.com> 1/ Only expose thread-safe interfaces in metric producer.
2/ Simplify lock logic.
3/ Add test for duration metric producer.

Test: all unit test passsed.
Change-Id: If6ee2e69a17f12406f4b3ea3553b14642cd636d6
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
6a8c799d901cbd166aa6463d7dea231bcf594a1e 29-Nov-2017 Yao Chen <yaochen@google.com> Revert "Thread-safe metric producers."

This reverts commit 8de6939c494da838f6dbbda0631f66425dbbd25b.

Change-Id: Ieae841bfc5339b569f0fca909a6066de72806617
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
8de6939c494da838f6dbbda0631f66425dbbd25b 27-Nov-2017 Yangster <yanglu@google.com> Thread-safe metric producers.

Test: unit test passed
Change-Id: Ie47404e8649b63ee8ac32e40189a47f6cb7a9def
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
b356151e63140085cb96fa16804ee18b3862a4fc 22-Nov-2017 Yao Chen <yaochen@google.com> Add StatsdStats and guardrail.

+ StatsdStats is the global class that tracks the stats about statsd.

+ Added guardrail for classes that have a map which could potentially grow
unboundedly with the number of logs.

TODO: add unit tests & CTS for StatsdStats, and guardrail
add stats for pulled atoms.

Test: statsd_test

Change-Id: I0ea562de4dd3f6162f7923a9c193420b482c1d51
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
7c334a129e93e405a72e8299a1cd928af079d14f 22-Nov-2017 Yangster <yanglu@google.com> Make member function as const whenever possible.

Test: unit tests passed.
Change-Id: I751cabf305a4b5aa2095853cc951837da0df4c78
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
1ff4f4325882d812ded4f75ee6c2b6d352a85c9e 17-Nov-2017 Yao Chen <yaochen@google.com> Statsd test app.

Features:
+ Push baseline config to statsd
+ Have buttons to write events to StatsLog (plug/unplug, screen on/off, wake locks)
+ Dump stats log report, and display it on screen (currently support DurationMetricData display).

Test: manual

Change-Id: Ia58d215d30ed7570c0aa1b0627d3b88f8355d425
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
e2cd6d509b17894b95d14523ae3e7c4c7a9a74e3 10-Nov-2017 Yangster-mac <yanglu@google.com> 1/ Duration anomaly tracker with alarm.
2/ Init anomaly from config based on the public language.
3/ Unit tests for anomaly detection in count/gauge producer.
4/ Revisit the duration tracker logic.

Test: unit test passed.
Change-Id: I2423c0e0f05b1e37626954de9e749303423963f2
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
d1815dc7b82f99259f6c41cfacc44972b867ef2d 14-Nov-2017 Yangster-mac <yanglu@google.com> Sync statsd to the public proto changes:
1/ use string id/name for all metrics/configs/matchers.
2/ move alerts out of metric proto.

Test: unit test passed.
Change-Id: I08269f47be30f83f6dbadf873e7d62213449932b
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
b0378b093d9b937fe9a731a601d670d50f263078 10-Nov-2017 yro <yro@google.com> 1. Add FIELD_COUNT_REPEATED bit masks to repeated fields that were previously missing
2. Resolve segfault when serializing proto into vector of uint8_t
3. Add a local byte size variable for EventMetric data as we cannot call
size() of ProtoOutputStream before we finish writing.
4. Replace hardcoded conversion of second to nano second with NS_PER_SEC

Test: statsd, statsd_test

Change-Id: I47a2ce2b05e6191c18596489682118edcb41e945
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
17adac9cf3e03ad95372eb8657b26909d0414ac0 09-Nov-2017 yro <yro@google.com> Finish migrating to use ProtoOutputStream. This change will take the
outputs of each MetricProducer's and merge the results into
ConfigMetricsReport which holds ConfigKey, repeated field of
StatsLogReport, and UidMap. The data will be represented as
vector<uint8_t> which can be passed down to binder call for clients to
pick up. Also, all unnecessary dependencies to stats_log proto have been
removed.

Test: statsd, statsd_test
Change-Id: Ia69137cbc8613644a892e6be1e87b4858bd39fe3
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
2b0f88678b2877a8e9f83cea60f097322b078367 06-Nov-2017 yro <yro@google.com> Migrate all remaining MetricProducers to use ProtoOutputStream

Test: statsd, statsd_test
Change-Id: I1087e1c1ffb372ca288dfc575cb7a372b11ce8c5
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
93fe3a34a02c673eaee4a2d18565ba8df20685cb 02-Nov-2017 Yao Chen <yaochen@google.com> Add unit tests for CountMetricProducer, EventMetricProducer

And other miscellaneous fixes.
+ clang-format
+ 2 bug fixes, one in dump-report command, one in ResourcePowerManagerPuller

Test: statsd_test

Change-Id: Ibd164d948ad62adcc529d813df1210781e38be47
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
1d4d686001b220e114df737154f143ffabc212f1 31-Oct-2017 Yangster <yanglu@google.com> Gauge metric producer.

Test: manual tests passed for pushed device temperature.
Change-Id: I7592a4c04666606b745cdb41db8f9d8a96a966da
/frameworks/base/cmds/statsd/src/metrics/GaugeMetricProducer.cpp