Merge "Revert "Account for interpolation loss in cumulative network stats"" into main
diff --git a/services/core/java/com/android/server/stats/pull/netstats/NetworkStatsAccumulator.java b/services/core/java/com/android/server/stats/pull/netstats/NetworkStatsAccumulator.java
index 3f7fcee..e798bc4 100644
--- a/services/core/java/com/android/server/stats/pull/netstats/NetworkStatsAccumulator.java
+++ b/services/core/java/com/android/server/stats/pull/netstats/NetworkStatsAccumulator.java
@@ -19,7 +19,6 @@
import android.annotation.NonNull;
import android.net.NetworkStats;
import android.net.NetworkTemplate;
-import android.util.Log;
import java.util.Objects;
@@ -34,7 +33,6 @@
*/
public class NetworkStatsAccumulator {
- private static final String TAG = "NetworkStatsAccumulator";
private final NetworkTemplate mTemplate;
private final boolean mWithTags;
private final long mBucketDurationMillis;
@@ -59,9 +57,8 @@
@NonNull
public NetworkStats queryStats(long currentTimeMillis,
@NonNull StatsQueryFunction queryFunction) {
- NetworkStats completeStats = snapshotPlusFollowingStats(currentTimeMillis, queryFunction);
- maybeExpandSnapshot(currentTimeMillis, completeStats, queryFunction);
- return completeStats;
+ maybeExpandSnapshot(currentTimeMillis, queryFunction);
+ return snapshotPlusFollowingStats(currentTimeMillis, queryFunction);
}
/**
@@ -75,28 +72,15 @@
* Expands the internal cumulative stats snapshot, if possible, by querying NetworkStats.
*/
private void maybeExpandSnapshot(long currentTimeMillis,
- NetworkStats completeStatsUntilCurrentTime,
@NonNull StatsQueryFunction queryFunction) {
// Update snapshot only if it is possible to expand it by at least one full bucket, and only
// if the new snapshot's end is not in the active bucket.
long newEndTimeMillis = currentTimeMillis - mBucketDurationMillis;
if (newEndTimeMillis - mSnapshotEndTimeMillis > mBucketDurationMillis) {
- Log.v(TAG,
- "Expanding snapshot (mTemplate=" + mTemplate + ", mWithTags=" + mWithTags
- + ") from " + mSnapshotEndTimeMillis + " to " + newEndTimeMillis
- + " at " + currentTimeMillis);
- NetworkStats extraStats = queryFunction.queryNetworkStats(
- mTemplate, mWithTags, mSnapshotEndTimeMillis, newEndTimeMillis);
+ NetworkStats extraStats = queryFunction.queryNetworkStats(mTemplate, mWithTags,
+ mSnapshotEndTimeMillis, newEndTimeMillis);
mSnapshot = mSnapshot.add(extraStats);
mSnapshotEndTimeMillis = newEndTimeMillis;
-
- // NetworkStats queries interpolate historical data using integers maths, which makes
- // queries non-transitive: Query(t0, t1) + Query(t1, t2) <= Query(t0, t2).
- // Compute interpolation data loss from moving the snapshot's end-point, and add it to
- // the snapshot to avoid under-counting.
- NetworkStats newStats = snapshotPlusFollowingStats(currentTimeMillis, queryFunction);
- NetworkStats interpolationLoss = completeStatsUntilCurrentTime.subtract(newStats);
- mSnapshot = mSnapshot.add(interpolationLoss);
}
}