diff options
| author | Tianjie Xu <xunchang@google.com> | 2016-06-08 17:25:15 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-06-08 17:25:16 +0000 |
| commit | 00681d0e7845978c9137f9360e371fca64b03420 (patch) | |
| tree | 626cef81b3ef4fbb72161910dcf3920a5c8a8a9a /core/java/android/os/RecoverySystem.java | |
| parent | 22dec763a3392c7f2ace69934d3f8dcb62ba49f0 (diff) | |
| parent | a2fe5517bcd966c22827150287f55d683d493573 (diff) | |
Merge "Change unit of I/O statistics to MiB" into nyc-dev
Diffstat (limited to 'core/java/android/os/RecoverySystem.java')
| -rw-r--r-- | core/java/android/os/RecoverySystem.java | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java index 4abbf0efc81d..6c21398e280b 100644 --- a/core/java/android/os/RecoverySystem.java +++ b/core/java/android/os/RecoverySystem.java @@ -687,12 +687,13 @@ public class RecoverySystem { } } - // Read last_install; then report time for update and I/O to tron. + // Read last_install; then report time (in seconds) and I/O (in MiB) for + // this update to tron. // Only report on the reboots immediately after an OTA update. private static void parseLastInstallLog(Context context) { try (BufferedReader in = new BufferedReader(new FileReader(LAST_INSTALL_FILE))) { String line = null; - int bytesWritten = -1, bytesStashed = -1; + int bytesWrittenInMiB = -1, bytesStashedInMiB = -1; int timeTotal = -1; while ((line = in.readLine()) != null) { // Here is an example of lines in last_install: @@ -705,20 +706,35 @@ public class RecoverySystem { continue; } String numString = line.substring(numIndex + 1).trim(); - int parsedNum; + long parsedNum; try { - parsedNum = Integer.parseInt(numString); + parsedNum = Long.parseLong(numString); } catch (NumberFormatException ignored) { Log.e(TAG, "Failed to parse numbers in " + line); continue; } + final int MiB = 1024 * 1024; + int scaled; + try { + if (line.startsWith("bytes")) { + scaled = Math.toIntExact(parsedNum / MiB); + } else { + scaled = Math.toIntExact(parsedNum); + } + } catch (ArithmeticException ignored) { + Log.e(TAG, "Number overflows in " + line); + continue; + } + if (line.startsWith("time")) { - timeTotal = parsedNum; + timeTotal = scaled; } else if (line.startsWith("bytes_written")) { - bytesWritten = (bytesWritten == -1) ? parsedNum : bytesWritten + parsedNum; + bytesWrittenInMiB = (bytesWrittenInMiB == -1) ? scaled : + bytesWrittenInMiB + scaled; } else if (line.startsWith("bytes_stashed")) { - bytesStashed = (bytesStashed == -1) ? parsedNum : bytesStashed + parsedNum; + bytesStashedInMiB = (bytesStashedInMiB == -1) ? scaled : + bytesStashedInMiB + scaled; } } @@ -726,15 +742,15 @@ public class RecoverySystem { if (timeTotal != -1) { MetricsLogger.histogram(context, "ota_time_total", timeTotal); } - if (bytesWritten != -1) { - MetricsLogger.histogram(context, "ota_bytes_written", bytesWritten); + if (bytesWrittenInMiB != -1) { + MetricsLogger.histogram(context, "ota_written_in_MiBs", bytesWrittenInMiB); } - if (bytesStashed != -1) { - MetricsLogger.histogram(context, "ota_bytes_stashed", bytesStashed); + if (bytesStashedInMiB != -1) { + MetricsLogger.histogram(context, "ota_stashed_in_MiBs", bytesStashedInMiB); } - } catch (IOException ignored) { - Log.e(TAG, "Failed to read lines in last_install", ignored); + } catch (IOException e) { + Log.e(TAG, "Failed to read lines in last_install", e); } } |
