[Satellite] Satellite metrics to capture pending message count per datagram type.
Bug:381007377
Flag: EXEMPT MetricEnhance
Test: Built successfully and verified manually
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:9685ac17f9fe2a6ae236c8eb4740e2fed2be2029)
Merged-In: I77f6dfd75cf9d4642843d08087bb4e9cb546d381
Change-Id: I77f6dfd75cf9d4642843d08087bb4e9cb546d381
diff --git a/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java b/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java
index 8c36a2c..e21d560 100644
--- a/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java
+++ b/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java
@@ -44,6 +44,8 @@
import android.telephony.Rlog;
import android.telephony.satellite.SatelliteDatagram;
import android.telephony.satellite.SatelliteManager;
+import android.telephony.satellite.SatelliteSessionStats;
+import android.util.Log;
import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
@@ -1421,4 +1423,23 @@
mPersistentLogger.error(TAG, log);
}
}
+
+ public void updateSessionStatsWithPendingUserMsgCount(SatelliteSessionStats datagramStats) {
+ Log.d("SessionMetricsStats1",
+ " mPendingEmergencyDatagramsMap size = " + mPendingEmergencyDatagramsMap.size());
+ Log.d("SessionMetricsStats1", " mPendingNonEmergencyDatagramsMap size = "
+ + mPendingNonEmergencyDatagramsMap.size());
+ for (Entry<Long, SendSatelliteDatagramArgument> entry :
+ mPendingEmergencyDatagramsMap.entrySet()) {
+ SendSatelliteDatagramArgument argument = entry.getValue();
+ Log.d("SessionMetricsStats1", "DataGramType1 = " + argument.datagramType);
+ datagramStats.updateCountOfUserMessagesInQueueToBeSent(argument.datagramType);
+ }
+ for (Entry<Long, SendSatelliteDatagramArgument> entry :
+ mPendingNonEmergencyDatagramsMap.entrySet()) {
+ SendSatelliteDatagramArgument argument = entry.getValue();
+ Log.d("SessionMetricsStats1", "DataGramType2 = " + argument.datagramType);
+ datagramStats.updateCountOfUserMessagesInQueueToBeSent(argument.datagramType);
+ }
+ }
}
diff --git a/src/java/com/android/internal/telephony/satellite/metrics/SessionMetricsStats.java b/src/java/com/android/internal/telephony/satellite/metrics/SessionMetricsStats.java
index 0a82b99..4faacdc 100644
--- a/src/java/com/android/internal/telephony/satellite/metrics/SessionMetricsStats.java
+++ b/src/java/com/android/internal/telephony/satellite/metrics/SessionMetricsStats.java
@@ -37,7 +37,7 @@
*/
public class SessionMetricsStats {
private static final String TAG = SessionMetricsStats.class.getSimpleName();
- private static final boolean DBG = false;
+ private static final boolean DBG = true;
private static SessionMetricsStats sInstance = null;
private @SatelliteManager.SatelliteResult int mInitializationResult;
@@ -62,11 +62,11 @@
private int mCountOfSatelliteNotificationDisplayed;
private int mCountOfAutoExitDueToScreenOff;
private int mCountOfAutoExitDueToTnNetwork;
- private SatelliteSessionStats datagramStats;
+ private SatelliteSessionStats mDatagramStats;
private SessionMetricsStats() {
initializeSessionMetricsParam();
- datagramStats = new SatelliteSessionStats();
+ mDatagramStats = new SatelliteSessionStats();
}
/**
@@ -133,7 +133,9 @@
public SessionMetricsStats addCountOfSuccessfulOutgoingDatagram(
@NonNull @SatelliteManager.DatagramType int datagramType,
long datagramTransmissionTime) {
- datagramStats.recordSuccessfulOutgoingDatagramStats(datagramType, datagramTransmissionTime);
+ logd("addCountOfSuccessfulOutgoingDatagram: datagramType=" + datagramType);
+ mDatagramStats.recordSuccessfulOutgoingDatagramStats(datagramType,
+ datagramTransmissionTime);
if (datagramType == SatelliteManager.DATAGRAM_TYPE_KEEP_ALIVE) {
// Ignore KEEP_ALIVE messages
return this;
@@ -141,8 +143,6 @@
mCountOfSuccessfulOutgoingDatagram++;
mShadowCountOfSuccessfulOutgoingDatagram++;
- logd("addCountOfSuccessfulOutgoingDatagram: current count="
- + mCountOfSuccessfulOutgoingDatagram);
return this;
}
@@ -150,7 +150,9 @@
public SessionMetricsStats addCountOfFailedOutgoingDatagram(
@NonNull @SatelliteManager.DatagramType int datagramType,
@NonNull @SatelliteManager.SatelliteResult int resultCode) {
- datagramStats.addCountOfUnsuccessfulUserMessages(datagramType, resultCode);
+ logd("addCountOfFailedOutgoingDatagram: datagramType=" + datagramType + " resultCode = "
+ + resultCode);
+ mDatagramStats.addCountOfUnsuccessfulUserMessages(datagramType, resultCode);
if (datagramType == SatelliteManager.DATAGRAM_TYPE_KEEP_ALIVE) {
// Ignore KEEP_ALIVE messages
return this;
@@ -158,14 +160,11 @@
mCountOfFailedOutgoingDatagram++;
mShadowCountOfFailedOutgoingDatagram++;
- logd("addCountOfFailedOutgoingDatagram: current count=" + mCountOfFailedOutgoingDatagram);
-
if (resultCode == SatelliteManager.SATELLITE_RESULT_NOT_REACHABLE) {
addCountOfTimedOutUserMessagesWaitingForConnection(datagramType);
} else if (resultCode == SatelliteManager.SATELLITE_RESULT_MODEM_TIMEOUT) {
addCountOfTimedOutUserMessagesWaitingForAck(datagramType);
}
-
return this;
}
@@ -304,9 +303,9 @@
.build();
bundle.putParcelable(SatelliteManager.KEY_SESSION_STATS, sessionStats);
- // TODO b/381007377 should retrieve MessagesInQueueToBeSent count per messageType and add
- // to datagramStats
- bundle.putParcelable(KEY_SESSION_STATS_V2, datagramStats);
+ DatagramDispatcher.getInstance().updateSessionStatsWithPendingUserMsgCount(mDatagramStats);
+ bundle.putParcelable(KEY_SESSION_STATS_V2, mDatagramStats);
+ Log.i(TAG, "[END] DatagramStats = " +mDatagramStats);
result.send(SATELLITE_RESULT_SUCCESS, bundle);
}
@@ -347,7 +346,7 @@
mShadowCountOfFailedOutgoingDatagram = 0;
mShadowCountOfTimedOutUserMessagesWaitingForConnection = 0;
mShadowCountOfTimedOutUserMessagesWaitingForAck = 0;
- datagramStats.clear();
+ mDatagramStats.clear();
}
private static void logd(@NonNull String log) {