7a8f1a32dcbd93354ba5b8987be9a9d9d0d61519 |
|
17-Sep-2014 |
Jeff Sharkey <jsharkey@android.com> |
NetworkStats always needs arrays. Internal logic relies on Arrays.copyOf(), so always give ourselves valid arrays, using shared empty objects to save overhead. Bug: 17502649 Change-Id: I5dbb00545bdfe45bbd48144ab505ea08cc92cbcd
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
daa57e8d1866fe4579c280c41604f3660db7cd01 |
|
19-Sep-2012 |
Jeff Sharkey <jsharkey@android.com> |
Migrate network stats from removed users. When a user is removed, migrate all network stats belonging to that user into special UID_REMOVED bucket. Also removes those stats from kernel to avoid double-counting if another user is created. Bug: 7194784 Change-Id: I03f1d660fe3754566326b7749cae8068fc224ea9
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
4abb1b8ef64dc4cd71966b59dc5d72a15055bf13 |
|
09-Nov-2011 |
Jeff Sharkey <jsharkey@android.com> |
Make operation counts monotonically increase. Bug: 5585704 Change-Id: I5247a68acdb209a4ef0f5aac18944595c295e6ca
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
163e6443f27884a9bfcb9a48ef606dc635852c23 |
|
01-Nov-2011 |
Jeff Sharkey <jsharkey@android.com> |
Correct proc file reader, optimizations. Moved away from BufferedReader, which only reads the first 8KB of some proc files because it aggresively fills its buffer. Optimized proc parsing, now double the speed. Tests to cover. Log when NetworkStats counters roll backwards when subtracting, and optimizations around findIndex(). When system removes UID, also remove from last stats snapshot to avoid xt counters from rolling backwards. Bug: 5472949, 5458380 Change-Id: I07c08fe5233156fac2b84450f6291868bf9bfaf2
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
1059c3c30ad96a15695c1a92ae8896e078a6309f |
|
05-Oct-2011 |
Jeff Sharkey <jsharkey@android.com> |
Move battery stats to xt_qtaguid for data stats. Replace TrafficStats calls by reading values from xt_qtaguid kernel module. To keep BatteryStatsImpl changes lightweight, cache recently parsed stats. Tracks mobile ifaces from ConnectivityService. Refactor xt_qtaguid parsing into factory outside of NMS. Add stats grouping based on UID, and total based on limiting filters like iface prefix and UID. Bug: 4902271 Change-Id: I533f116c434b77f93355bf95b839e7478528505b
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
905b5891d2aa802f447ac2ce5d77b6c5ba06277a |
|
01-Oct-2011 |
Jeff Sharkey <jsharkey@android.com> |
Track xtables summary, move tether stats, time. Begin tracking xtables summary of data usage to compare with values reported from /proc/net/dev. Roll tethering directly into UID stats to trigger UID stats persisting when crossing threshold. Include xtables summary and authoritative time in samples. Bug: 5373561, 5397882, 5381980 Change-Id: Ib7945522caadfbe0864fdf391582dc820f4f371e
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
8e9992ae5053a3ac52d28a5a892aed0a0798c7ab |
|
24-Aug-2011 |
Jeff Sharkey <jsharkey@android.com> |
Register for kernel global data usage alerts. Instead of polling every 15 minutes, register for alerts that trigger when system-wide traffic passes a threshold. Still mixed with polling to persist UID stats, but relaxed to 30 minutes. Currently watches for every 512kB. Make persistence decision separately for network versus UID, and use total delta bytes when making decision. Use light bootstrap during systemReady() instead of heavy poll, which had been force-loading all UID data unnecessarily. Bug: 5023631 Change-Id: I04b723d6c4bf872fb1028071122dba66a8e1b576
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
b5d55e302d2253e4bfb233ea705caf258cdc4cb9 |
|
11-Aug-2011 |
Jeff Sharkey <jsharkey@android.com> |
Foreground/background network stats using sets. Teach NetworkStats about "counter sets" coming from kernel, and use them to track usage in foreground/background. Add AID_NET_BW_ACCT to system_server so it can control counter sets. Move to composite key of NetworkIdentitySet, UID, set, and tag when recording historical usage. Persisting still clusters by identity, since that is heaviest object. Request async stats poll during systemReady() to bootstrap later delta calculations. Reset kernel counters when UID removed. Update various tests. Bug: 5105592, 5146067 Change-Id: Idabec9e3ffcaf212879821515602ecde0a03de8c
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
a63ba59260cd1bb3f5c16e395ace45a61f1d4461 |
|
20-Jul-2011 |
Jeff Sharkey <jsharkey@android.com> |
Add operation counts to network statistics. Provide API to increment "operation counts" for a UID and tag, used to eventually derive bytes/operation stats. Internally is stored at network layer, but should belong at data layer. Switch profiling to use data layer stats, which are emulated by summarizing network layer details. Read packet counts from new /proc/ columns and collect them into NetworkStatsHistory. Prevent double-counting by ignoring values from first snapshot. Watch for duplicate /proc/ entries. Update tests to verify packet and operation counters. Bug: 5052136, 5097392 Change-Id: I1832f65a2b8a9188f8088f253474a667c21a2f09
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
d37948f6ed1667d077e0e3a38808f42f981ddcc2 |
|
12-Jul-2011 |
Jeff Sharkey <jsharkey@android.com> |
Hide NetworkStatsHistory internals. Instead of exposing internal storage details, offer getValues() accessor which populates values into a recycled structure. Change-Id: I5228d7099a8f61b2018a435a813435a67dae49b4
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
fd8be3e5e7420f3cca591daeec8a44487f5f65aa |
|
11-Jul-2011 |
Jeff Sharkey <jsharkey@android.com> |
Return stats from inactive ifaces, packet counts. When an iface goes inactive, xt_qtaguid maintains historical counters instead of discarding. Now reading and returning those values in NetworkManagementService summary calls. Tests to verify stats are returned. Modify NetworkStats to include rxPackets and txPackets values, and move to Entry to eventually hide internal storage details. Bug: 4984539 Change-Id: I1ba0bb5580c62e946d9dff2cc2a6f64aff403efc
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
1b5a2a96f793211bfbd39aa29cc41031dfa23950 |
|
19-Jun-2011 |
Jeff Sharkey <jsharkey@android.com> |
Read "qtaguid" network stats, refactor templates. Teach NMS to read qtaguid stats from kernel, but fall back to older stats when kernel doesn't support. Add "tags" to NetworkStats entries to support qtaguid. To work around double-reporting bug, subtract tagged stats from TAG_NONE entry. Flesh out stronger NetworkTemplate. All NetworkStatsService requests now require a template, and moved matching logic into template. Record UID stats keyed on complete NetworkIdentitySet definition, similar to how interface stats are stored. Since previous UID stats didn't have iface breakdown, discard during file format upgrade. Change-Id: I0447b5e7d205d73d28e71c889c568e536e91b8e4
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
4a97122ebf4d92a3f94402041729d77905e6c0c0 |
|
12-Jun-2011 |
Jeff Sharkey <jsharkey@android.com> |
Growable NetworkStats object instead of builder. NetworkStats now grows in place with arraycopy() instead of callers needing to know record count a priori. Better growth calculation for both NetworkStats and NetworkStatsHistory; 50% each time. Better estimates of buckets needed in calling services. Change-Id: I3adbffa0b7407612cc6349d9135a8b4eb63cd440
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
3f3913550c10792edb8aecf66cc83c3db5c8b311 |
|
06-Jun-2011 |
Jeff Sharkey <jsharkey@android.com> |
Persist network stats using AtomicFile. Implements read/write of network stats using AtomicFile, along with magic number and versioning. Stores in "/data/system/netstats.bin" for now. Tests to verify that stats are persisted across a simulated reboot, and to verify that TEMPLATE_WIFI is working. Fixed bug where kernel counters rolling backwards would cause negative stats to be recorded; now we clamp deltas at 0. Change-Id: I53bce26fc8fd3f4ab1e34ce135d302edfa34db34
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
75279904202357565cf5a1cb11148d01f42b4569 |
|
25-May-2011 |
Jeff Sharkey <jsharkey@android.com> |
Collect historical network stats. Periodically records delta network traffic into historical buckets to support other services, such NetworkPolicyManager and Settings UI. Introduces NetworkStatsHistory structure which contains sparse, uniform buckets of data usage defined by timestamps. Service periodically polls NetworkStats and records changes into buckets. It only persists to disk when substantial changes have occured. Current parameters create 4 buckets each day, and persist for 90 days, resulting in about 8kB of data per network. Only records stats for "well known" network interfaces that have been claimed by Telephony or Wi-Fi subsystems. Historical stats are also keyed off identity (such as IMSI) to support SIM swapping. Change-Id: Ia27d1289556a2bf9545fbc4f3b789425a01be53a
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|
eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3 |
|
17-May-2011 |
Jeff Sharkey <jsharkey@android.com> |
APIs to profile network usage for current UID. Added startDataProfiling() and stopDataProfiling() to TrafficStats, which can be used by apps to measure network usage delta between two points in time. Currently takes two NetworkStats snapshots and returns delta, which will eventually include tag-level granularity. Added tests for NetworkStats delta subtraction. Added NMS.getNetworkStatsUidDetail() that returns stats for specific UID. Always gives stats access for the calling UID, otherwise enforces that caller has permission. Fix readSingleLongFromFile(), since /proc/ files don't have well-defined lengths. Change-Id: Ic5b6414d8effbd66846e275b00d4b8a82c74589d
/frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java
|