IP Connectivity metrics: add connect() statistics
This patch adds a ConnectStats class to aggregate connect() statistics
gathered in NetdEventListenerService. ConnectStats is uploaded once a
day by IpConnectivityMetrics.
Test: $ runtest frameworks-net + new unit test
Bug: 32198976
Change-Id: Iea63339035415513a5ba0ff4b8f4d79f75fc652d
diff --git a/services/core/java/com/android/server/connectivity/IpConnectivityEventBuilder.java b/services/core/java/com/android/server/connectivity/IpConnectivityEventBuilder.java
index 372b2d8..d5fa26c 100644
--- a/services/core/java/com/android/server/connectivity/IpConnectivityEventBuilder.java
+++ b/services/core/java/com/android/server/connectivity/IpConnectivityEventBuilder.java
@@ -43,10 +43,10 @@
private IpConnectivityEventBuilder() {
}
- public static byte[] serialize(int dropped, List<ConnectivityMetricsEvent> events)
+ public static byte[] serialize(int dropped, List<IpConnectivityEvent> events)
throws IOException {
final IpConnectivityLog log = new IpConnectivityLog();
- log.events = toProto(events);
+ log.events = events.toArray(new IpConnectivityEvent[events.size()]);
log.droppedEvents = dropped;
if ((log.events.length > 0) || (dropped > 0)) {
// Only write version number if log has some information at all.
@@ -55,7 +55,7 @@
return IpConnectivityLog.toByteArray(log);
}
- public static IpConnectivityEvent[] toProto(List<ConnectivityMetricsEvent> eventsIn) {
+ public static List<IpConnectivityEvent> toProto(List<ConnectivityMetricsEvent> eventsIn) {
final ArrayList<IpConnectivityEvent> eventsOut = new ArrayList<>(eventsIn.size());
for (ConnectivityMetricsEvent in : eventsIn) {
final IpConnectivityEvent out = toProto(in);
@@ -64,7 +64,7 @@
}
eventsOut.add(out);
}
- return eventsOut.toArray(new IpConnectivityEvent[eventsOut.size()]);
+ return eventsOut;
}
public static IpConnectivityEvent toProto(ConnectivityMetricsEvent ev) {