summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Christopher Tate <ctate@google.com> 2014-08-05 16:12:42 -0700
committer Christopher Tate <ctate@android.com> 2014-08-06 19:24:33 +0000
commit4cf9f007e6b66c0a970600f66b4229c4ede73f7f (patch)
tree1e90bfa0ef0a0a0babf3e1005453ee796c4b3f3b
parent4565ded1a29f394dffa67b0852eca15ef47bded7 (diff)
Add event logs for full backup/restore milestones
Bug 16689703 Change-Id: If870f1b7b9cb3929ac1edc38affc688a37c2acfd
-rw-r--r--services/backup/java/com/android/server/backup/BackupManagerService.java26
-rw-r--r--services/core/java/com/android/server/EventLogTags.logtags8
2 files changed, 32 insertions, 2 deletions
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
index c77c5b2020e8..59aef328ef76 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -1819,18 +1819,23 @@ public class BackupManagerService extends IBackupManager.Stub {
@Override
public void onServiceConnected(ComponentName component, IBinder service) {
if (DEBUG) Slog.v(TAG, "Connected to transport " + component);
+ final String name = component.flattenToShortString();
try {
IBackupTransport transport = IBackupTransport.Stub.asInterface(service);
- registerTransport(transport.name(), component.flattenToShortString(), transport);
+ registerTransport(transport.name(), name, transport);
+ EventLog.writeEvent(EventLogTags.BACKUP_TRANSPORT_LIFECYCLE, name, 1);
} catch (RemoteException e) {
Slog.e(TAG, "Unable to register transport " + component);
+ EventLog.writeEvent(EventLogTags.BACKUP_TRANSPORT_LIFECYCLE, name, 0);
}
}
@Override
public void onServiceDisconnected(ComponentName component) {
if (DEBUG) Slog.v(TAG, "Disconnected from transport " + component);
- registerTransport(null, component.flattenToShortString(), null);
+ final String name = component.flattenToShortString();
+ EventLog.writeEvent(EventLogTags.BACKUP_TRANSPORT_LIFECYCLE, name, 0);
+ registerTransport(null, name, null);
}
};
@@ -3690,6 +3695,9 @@ public class BackupManagerService extends IBackupManager.Stub {
Slog.i(TAG, "Initiating full-data transport backup of "
+ currentPackage.packageName);
}
+ EventLog.writeEvent(EventLogTags.FULL_BACKUP_PACKAGE,
+ currentPackage.packageName);
+
transportPipes = ParcelFileDescriptor.createPipe();
// Tell the transport the data's coming
@@ -3780,12 +3788,19 @@ public class BackupManagerService extends IBackupManager.Stub {
+ currentPackage.packageName
+ ", skipping");
}
+ EventLog.writeEvent(EventLogTags.FULL_BACKUP_AGENT_FAILURE,
+ currentPackage.packageName, "transport rejected");
// do nothing, clean up, and continue looping
} else if (result != BackupTransport.TRANSPORT_OK) {
if (DEBUG) {
Slog.i(TAG, "Transport failed; aborting backup: " + result);
+ EventLog.writeEvent(EventLogTags.FULL_BACKUP_TRANSPORT_FAILURE);
return;
}
+ } else {
+ // Success!
+ EventLog.writeEvent(EventLogTags.FULL_BACKUP_SUCCESS,
+ currentPackage.packageName);
}
cleanUpPipes(transportPipes);
cleanUpPipes(enginePipes);
@@ -7339,6 +7354,9 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
UnifiedRestoreState nextState = UnifiedRestoreState.RUNNING_QUEUE;
int status = BackupTransport.TRANSPORT_OK;
+ EventLog.writeEvent(EventLogTags.FULL_RESTORE_PACKAGE,
+ mCurrentPackage.packageName);
+
mEngine = new FullRestoreEngine(null, mCurrentPackage, false, false);
EngineThread eThread = new EngineThread(mEngine, mEnginePipes[0]);
@@ -7390,6 +7408,7 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
// handling will deal properly with that.
Slog.e(TAG, "Error " + result + " streaming restore for "
+ mCurrentPackage.packageName);
+ EventLog.writeEvent(EventLogTags.RESTORE_TRANSPORT_FAILURE);
status = result;
}
}
@@ -7399,12 +7418,15 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
// but potentially recoverable; abandon this package's restore but
// carry on with the next restore target.
Slog.e(TAG, "Unable to route data for restore");
+ EventLog.writeEvent(EventLogTags.RESTORE_AGENT_FAILURE,
+ mCurrentPackage.packageName, "I/O error on pipes");
status = BackupTransport.AGENT_ERROR;
} catch (RemoteException e) {
// The transport went away; terminate the whole operation. Closing
// the sockets will wake up the engine and it will then tidy up the
// remote end.
Slog.e(TAG, "Transport failed during restore");
+ EventLog.writeEvent(EventLogTags.RESTORE_TRANSPORT_FAILURE);
status = BackupTransport.TRANSPORT_ERROR;
} finally {
// Close the transport pipes and *our* end of the engine pipe,
diff --git a/services/core/java/com/android/server/EventLogTags.logtags b/services/core/java/com/android/server/EventLogTags.logtags
index 3c50947ea65d..5aaeb6a2060e 100644
--- a/services/core/java/com/android/server/EventLogTags.logtags
+++ b/services/core/java/com/android/server/EventLogTags.logtags
@@ -102,6 +102,14 @@ option java_package com.android.server
2833 restore_package (Package|3),(Size|1|2)
2834 restore_success (Packages|1|1),(Time|1|3)
+2840 full_backup_package (Package|3)
+2841 full_backup_agent_failure (Package|3),(Message|3)
+2842 full_backup_transport_failure
+2843 full_backup_success (Package|3)
+2844 full_restore_package (Package|3)
+
+2850 backup_transport_lifecycle (Transport|3),(Bound|1|1)
+
# ---------------------------
# SystemServer.java