diff options
| author | 2014-08-05 16:12:42 -0700 | |
|---|---|---|
| committer | 2014-08-06 19:24:33 +0000 | |
| commit | 4cf9f007e6b66c0a970600f66b4229c4ede73f7f (patch) | |
| tree | 1e90bfa0ef0a0a0babf3e1005453ee796c4b3f3b | |
| parent | 4565ded1a29f394dffa67b0852eca15ef47bded7 (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.java | 26 | ||||
| -rw-r--r-- | services/core/java/com/android/server/EventLogTags.logtags | 8 |
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 |