From e512b2691323a6619a79bbec38182ed33ad86016 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Thu, 11 Apr 2019 21:24:28 +0800 Subject: [PATCH] Migrate NetworkStack metrics off StatsLog.write Now that the new metrics API can be used, NetworkStack metrics need to migrate off the legacy StatsLog.write. Bug: 130323000 Test: Test with ./out/host/linux-x86/bin/statsd_testdrive 121 to ensure log properly Test: Ensure NetworkStackStatsLog will be generated as expected Test: atest NetworkStackTest Change-Id: I8c70503cf1d9f1d06f30a1936d2d88857d0cff53 --- cmds/statsd/src/atoms.proto | 4 ++-- core/java/android/util/StatsLog.java | 5 ----- packages/NetworkStack/Android.bp | 9 +++++++++ .../networkstack}/metrics/DataStallDetectionStats.java | 2 +- .../networkstack}/metrics/DataStallStatsUtils.java | 8 ++------ .../com/android/server/connectivity/NetworkMonitor.java | 4 ++-- .../android/server/connectivity/NetworkMonitorTest.java | 5 +++-- 7 files changed, 19 insertions(+), 18 deletions(-) rename packages/NetworkStack/src/{android/net => com/android/networkstack}/metrics/DataStallDetectionStats.java (99%) rename packages/NetworkStack/src/{android/net => com/android/networkstack}/metrics/DataStallStatsUtils.java (89%) diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 90ba7ce0c812b..f4e4a0b60adb0 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -208,7 +208,7 @@ message Atom { 119 [(log_from_module) = "docsui"]; DocsUISearchTypeReported docs_ui_search_type_reported = 120 [(log_from_module) = "docsui"]; - DataStallEvent data_stall_event = 121; + DataStallEvent data_stall_event = 121 [(log_from_module) = "network_stack"]; RescuePartyResetReported rescue_party_reset_reported = 122; SignedConfigReported signed_config_reported = 123; GnssNiEventReported gnss_ni_event_reported = 124; @@ -269,7 +269,7 @@ message Atom { StyleUIChanged style_ui_changed = 179; PrivacyIndicatorsInteracted privacy_indicators_interacted = 180; AppInstallOnExternalStorageReported app_install_on_external_storage_reported = 181; - NetworkStackReported network_stack_reported = 182; + NetworkStackReported network_stack_reported = 182 [(log_from_module) = "network_stack"]; AppMovedStorageReported app_moved_storage_reported = 183; BiometricEnrolled biometric_enrolled = 184; SystemServerWatchdogOccurred system_server_watchdog_occurred = 185; diff --git a/core/java/android/util/StatsLog.java b/core/java/android/util/StatsLog.java index dd22a26d61afa..9da29c0c334e7 100644 --- a/core/java/android/util/StatsLog.java +++ b/core/java/android/util/StatsLog.java @@ -198,11 +198,6 @@ public final class StatsLog extends StatsLogInternal { write(id, (long) params[0], (int) params[1], (String) params[2], (String) params[3], (boolean) params[4], (int) params[5]); break; - case DATA_STALL_EVENT: - // Refer to the defintion in frameworks/base/cmds/statsd/src/atoms.proto. - write(id, (int) params[0], (int) params[1], (int) params[2], (byte[]) params[3], - (byte[]) params[4], (byte[]) params[5]); - break; } } diff --git a/packages/NetworkStack/Android.bp b/packages/NetworkStack/Android.bp index 5817118bc8619..e0bb862c5362e 100644 --- a/packages/NetworkStack/Android.bp +++ b/packages/NetworkStack/Android.bp @@ -37,6 +37,7 @@ android_library { "src/**/*.java", ":framework-networkstack-shared-srcs", ":services-networkstack-shared-srcs", + ":statslog-networkstack-java-gen", ], static_libs: [ "androidx.annotation_annotation", @@ -104,3 +105,11 @@ android_app { certificate: "networkstack", manifest: "AndroidManifest.xml", } + +genrule { + name: "statslog-networkstack-java-gen", + tools: ["stats-log-api-gen"], + cmd: "$(location stats-log-api-gen) --java $(out) --module network_stack" + + " --javaPackage com.android.networkstack.metrics --javaClass NetworkStackStatsLog", + out: ["com/android/networkstack/metrics/NetworkStackStatsLog.java"], +} diff --git a/packages/NetworkStack/src/android/net/metrics/DataStallDetectionStats.java b/packages/NetworkStack/src/com/android/networkstack/metrics/DataStallDetectionStats.java similarity index 99% rename from packages/NetworkStack/src/android/net/metrics/DataStallDetectionStats.java rename to packages/NetworkStack/src/com/android/networkstack/metrics/DataStallDetectionStats.java index 225dc0f4bfdc4..2523ecd4ea202 100644 --- a/packages/NetworkStack/src/android/net/metrics/DataStallDetectionStats.java +++ b/packages/NetworkStack/src/com/android/networkstack/metrics/DataStallDetectionStats.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package android.net.metrics; +package com.android.networkstack.metrics; import android.annotation.NonNull; import android.annotation.Nullable; diff --git a/packages/NetworkStack/src/android/net/metrics/DataStallStatsUtils.java b/packages/NetworkStack/src/com/android/networkstack/metrics/DataStallStatsUtils.java similarity index 89% rename from packages/NetworkStack/src/android/net/metrics/DataStallStatsUtils.java rename to packages/NetworkStack/src/com/android/networkstack/metrics/DataStallStatsUtils.java index e23f10f243dc1..93089017fd479 100644 --- a/packages/NetworkStack/src/android/net/metrics/DataStallStatsUtils.java +++ b/packages/NetworkStack/src/com/android/networkstack/metrics/DataStallStatsUtils.java @@ -14,13 +14,12 @@ * limitations under the License. */ -package android.net.metrics; +package com.android.networkstack.metrics; import android.annotation.NonNull; import android.annotation.Nullable; import android.net.captiveportal.CaptivePortalProbeResult; import android.util.Log; -import android.util.StatsLog; import com.android.internal.util.HexDump; import com.android.server.connectivity.nano.DataStallEventProto; @@ -37,13 +36,11 @@ import com.android.server.connectivity.nano.DataStallEventProto; */ public class DataStallStatsUtils { private static final String TAG = DataStallStatsUtils.class.getSimpleName(); - private static final int DATA_STALL_EVENT_ID = 121; private static final boolean DBG = false; private static int probeResultToEnum(@Nullable final CaptivePortalProbeResult result) { if (result == null) return DataStallEventProto.INVALID; - // TODO: Add partial connectivity support. if (result.isSuccessful()) { return DataStallEventProto.VALID; } else if (result.isPortal()) { @@ -65,8 +62,7 @@ public class DataStallStatsUtils { Log.d(TAG, "write: " + stats + " with result: " + validationResult + ", dns: " + HexDump.toHexString(stats.mDns)); } - // TODO(b/124613085): Update API once the public StatsLog API is ready. - StatsLog.write(DATA_STALL_EVENT_ID, + NetworkStackStatsLog.write(NetworkStackStatsLog.DATA_STALL_EVENT, stats.mEvaluationType, validationResult, stats.mNetworkType, diff --git a/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java b/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java index 588dcf2a83f55..2a612503620fd 100644 --- a/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java +++ b/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java @@ -65,8 +65,6 @@ import android.net.TrafficStats; import android.net.Uri; import android.net.captiveportal.CaptivePortalProbeResult; import android.net.captiveportal.CaptivePortalProbeSpec; -import android.net.metrics.DataStallDetectionStats; -import android.net.metrics.DataStallStatsUtils; import android.net.metrics.IpConnectivityLog; import android.net.metrics.NetworkEvent; import android.net.metrics.ValidationProbeEvent; @@ -101,6 +99,8 @@ import com.android.internal.util.RingBufferIndices; import com.android.internal.util.State; import com.android.internal.util.StateMachine; import com.android.networkstack.R; +import com.android.networkstack.metrics.DataStallDetectionStats; +import com.android.networkstack.metrics.DataStallStatsUtils; import java.io.IOException; import java.net.HttpURLConnection; diff --git a/packages/NetworkStack/tests/src/com/android/server/connectivity/NetworkMonitorTest.java b/packages/NetworkStack/tests/src/com/android/server/connectivity/NetworkMonitorTest.java index fa41284317bb3..910bdc7e600f1 100644 --- a/packages/NetworkStack/tests/src/com/android/server/connectivity/NetworkMonitorTest.java +++ b/packages/NetworkStack/tests/src/com/android/server/connectivity/NetworkMonitorTest.java @@ -59,8 +59,6 @@ import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.captiveportal.CaptivePortalProbeResult; -import android.net.metrics.DataStallDetectionStats; -import android.net.metrics.DataStallStatsUtils; import android.net.metrics.IpConnectivityLog; import android.net.util.SharedLog; import android.net.wifi.WifiInfo; @@ -78,6 +76,9 @@ import android.util.ArrayMap; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; +import com.android.networkstack.metrics.DataStallDetectionStats; +import com.android.networkstack.metrics.DataStallStatsUtils; + import org.junit.After; import org.junit.Before; import org.junit.Test;