Skip to content

Commit cd6a46e

Browse files
author
Stewart Miles
committed
Measurement of UPMR package migration.
Added events to track package migration operations and any potential failures. Bug: 150471207 Change-Id: I70bb98d989971a7a7fbe06692c81fbf7e0758724
1 parent 4514961 commit cd6a46e

File tree

2 files changed

+58
-1
lines changed

2 files changed

+58
-1
lines changed

source/UnityPackageManagerResolver/src/PackageMigrator.cs

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -753,14 +753,20 @@ private static void StartOrResumeMigration(
753753
return;
754754
}
755755
} catch (IOException ioError) {
756-
complete(ioError.Message);
756+
UnityPackageManagerResolver.analytics.Report(
757+
"package_migrator/migration/failed/read_snapshot",
758+
"Migrate Packages: Read Snapshot Failed");
757759
migrationJobQueue.Complete();
760+
complete(ioError.Message);
758761
return;
759762
}
760763
// Fetch the list of installed packages before starting migration.
761764
PackageMap.CacheInstalledPackageInfo(
762765
false, (error) => {
763766
if (!String.IsNullOrEmpty(error.Message)) {
767+
UnityPackageManagerResolver.analytics.Report(
768+
"package_migrator/migration/failed/find_packages",
769+
"Migrate Packages: Find Packages Failed");
764770
migrationJobQueue.Complete();
765771
complete(error.Message);
766772
return;
@@ -778,6 +784,32 @@ static PackageMigrator() {
778784
ResumeMigration();
779785
}
780786

787+
/// <summary>
788+
/// Report that package migration failed.
789+
/// </summary>
790+
private static void ReportPackageMigrationFailed() {
791+
int numberOfSelectedPackages = -1;
792+
int numberOfMigratedPackages = -1;
793+
try {
794+
ReadMigrationState();
795+
numberOfSelectedPackages = inProgressPackageMaps.Count;
796+
numberOfMigratedPackages = 0;
797+
foreach (var packageMap in inProgressPackageMaps) {
798+
if (packageMap.Migrated) numberOfMigratedPackages ++;
799+
}
800+
} catch (IOException) {
801+
// Ignore the exception.
802+
}
803+
UnityPackageManagerResolver.analytics.Report(
804+
"package_migrator/migration/failed",
805+
new KeyValuePair<string, string>[] {
806+
new KeyValuePair<string, string>("selected", numberOfSelectedPackages.ToString()),
807+
new KeyValuePair<string, string>("migrated", numberOfMigratedPackages.ToString()),
808+
},
809+
"Migrate Packages: Failed");
810+
}
811+
812+
781813
/// <summary>
782814
/// Resume migration after an app domain reload.
783815
/// </summary>
@@ -798,6 +830,7 @@ public static void ResumeMigration() {
798830
} catch (IOException ioError) {
799831
Logger.Log(String.Format("Failed to resume package migration: {0}", ioError),
800832
level: LogLevel.Error);
833+
ReportPackageMigrationFailed();
801834
}
802835
}, runNow: false);
803836
}
@@ -848,6 +881,15 @@ public static void TryMigration(Action<string> complete) {
848881

849882
Action<string> clearProgressAndComplete = (error) => {
850883
EditorUtility.ClearProgressBar();
884+
if (String.IsNullOrEmpty(error)) {
885+
UnityPackageManagerResolver.analytics.Report(
886+
"package_migrator/migration/success",
887+
new KeyValuePair<string, string>[] {
888+
new KeyValuePair<string, string>(
889+
"migrated", inProgressPackageMaps.Count.ToString()),
890+
},
891+
"Migrate Packages: Success");
892+
}
851893
ClearMigrationState();
852894
complete(error);
853895
};
@@ -860,6 +902,9 @@ public static void TryMigration(Action<string> complete) {
860902

861903
PackageMap.FindPackagesToMigrate((error, packageMaps) => {
862904
if (!String.IsNullOrEmpty(error)) {
905+
UnityPackageManagerResolver.analytics.Report(
906+
"package_migrator/migration/failed/find_packages",
907+
"Migrate Packages: Find Packages Failed");
863908
clearProgressAndComplete(error);
864909
return;
865910
}
@@ -940,13 +985,19 @@ public static void MigratePackages() {
940985

941986
// If an error occurs, display a dialog.
942987
if (!String.IsNullOrEmpty(findError)) {
988+
UnityPackageManagerResolver.analytics.Report(
989+
"package_migrator/migration/failed/find_packages",
990+
"Migrate Packages: Find Packages Failed");
943991
DisplayError(findError);
944992
return;
945993
}
946994

947995
// Show a package selection window and start migration if the user selects apply.
948996
DisplaySelectionWindow(availablePackageMaps, (selectedPackageMaps) => {
949997
if (selectedPackageMaps.Count == 0) {
998+
UnityPackageManagerResolver.analytics.Report(
999+
"package_migrator/migration/canceled",
1000+
"Migrate Packages: Canceled");
9501001
ClearMigrationState();
9511002
return;
9521003
}
@@ -955,6 +1006,9 @@ public static void MigratePackages() {
9551006
PackageMap.WriteToFile(selectedPackageMaps);
9561007
} catch (IOException e) {
9571008
DisplayError(String.Format("Migration failed ({0})", e.Message));
1009+
UnityPackageManagerResolver.analytics.Report(
1010+
"package_migrator/migration/failed/write_snapshot",
1011+
"Migrate Packages: Write Snapshot Failed");
9581012
return;
9591013
}
9601014

source/UnityPackageManagerResolver/src/SettingsDialog.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ public void OnGUI() {
207207
new KeyValuePair<string, string>(
208208
"promptToAddRegistries",
209209
UnityPackageManagerResolver.PromptToAddRegistries.ToString()),
210+
new KeyValuePair<string, string>(
211+
"promptToMigratePackages",
212+
UnityPackageManagerResolver.PromptToMigratePackages.ToString()),
210213
new KeyValuePair<string, string>(
211214
"verboseLoggingEnabled",
212215
UnityPackageManagerResolver.VerboseLoggingEnabled.ToString()),

0 commit comments

Comments
 (0)