Merge "Adding atoms for metrics logging"

This commit is contained in:
Tianjie Xu
2020-01-17 21:59:13 +00:00
committed by Gerrit Code Review
2 changed files with 152 additions and 0 deletions

View File

@@ -50,6 +50,7 @@ import "frameworks/base/core/proto/android/stats/intelligence/enums.proto";
import "frameworks/base/core/proto/android/stats/launcher/launcher.proto";
import "frameworks/base/core/proto/android/stats/location/location_enums.proto";
import "frameworks/base/core/proto/android/stats/mediametrics/mediametrics.proto";
import "frameworks/base/core/proto/android/stats/otaupdate/updateengine_enums.proto";
import "frameworks/base/core/proto/android/stats/storage/storage_enums.proto";
import "frameworks/base/core/proto/android/stats/style/style_enums.proto";
import "frameworks/base/core/proto/android/telecomm/enums.proto";
@@ -322,6 +323,8 @@ message Atom {
ExclusionRectStateChanged exclusion_rect_state_changed = 223;
BackGesture back_gesture_reported_reported = 224;
UpdateEngineUpdateAttemptReported update_engine_update_attempt_reported = 225;
UpdateEngineSuccessfulUpdateReported update_engine_successful_update_reported = 226;
AppCompatibilityChangeReported app_compatibility_change_reported =
228 [(allow_from_any_uid) = true];
PerfettoUploaded perfetto_uploaded =
@@ -6894,3 +6897,70 @@ message PerfettoUploaded {
optional int64 trace_uuid_lsb = 2;
optional int64 trace_uuid_msb = 3;
}
/**
* Information about an OTA update attempt by update_engine.
* Logged from platform/system/update_engine/metrics_reporter_android.cc
*/
message UpdateEngineUpdateAttemptReported {
// The number of attempts for the update engine to apply a given payload.
optional int32 attempt_number = 1;
optional android.stats.otaupdate.PayloadType payload_type = 2;
// The total time in minutes for the update engine to apply a given payload.
// The time is calculated by calling clock_gettime() / CLOCK_BOOTTIME; and
// it's increased when the system is sleeping.
optional int32 duration_boottime_in_minutes = 3;
// The total time in minutes for the update engine to apply a given payload.
// The time is calculated by calling clock_gettime() / CLOCK_MONOTONIC_RAW;
// and it's not increased when the system is sleeping.
optional int32 duration_monotonic_in_minutes = 4;
// The size of the payload in MiBs.
optional int32 payload_size_mib = 5;
// The attempt result reported by the update engine for an OTA update.
optional android.stats.otaupdate.AttemptResult attempt_result = 6;
// The error code reported by the update engine after an OTA update attempt
// on A/B devices.
optional android.stats.otaupdate.ErrorCode error_code = 7;
// The build fingerprint of the source system. The value is read from a
// system property when the device takes the update. e.g.
// Android/aosp_sailfish/sailfish:10/QP1A.190425.004/5507117:userdebug/test-keys
optional string source_fingerprint = 8;
}
/**
* Information about all the attempts the device make before finishing the
* successful update.
* Logged from platform/system/update_engine/metrics_reporter_android.cc
*/
message UpdateEngineSuccessfulUpdateReported {
// The number of attempts for the update engine to apply the payload for a
// successful update.
optional int32 attempt_count = 1;
optional android.stats.otaupdate.PayloadType payload_type = 2;
optional int32 payload_size_mib = 3;
// The total number of bytes downloaded by update_engine since the last
// successful update.
optional int32 total_bytes_downloaded_mib = 4;
// The ratio in percentage of the over-downloaded bytes compared to the
// total bytes needed to successfully install the update. e.g. 200 if we
// download 200MiB in total for a 100MiB package.
optional int32 download_overhead_percentage = 5;
// The total time in minutes for the update engine to apply the payload for a
// successful update.
optional int32 total_duration_minutes = 6;
// The number of reboot of the device during a successful update.
optional int32 reboot_count = 7;
}

View File

@@ -0,0 +1,82 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto2";
package android.stats.otaupdate;
// The payload type of an OTA update attempt on A/B devices.
enum PayloadType {
FULL = 10000;
DELTA = 10001;
}
// The attempt result reported by the update engine for an OTA update.
enum AttemptResult {
UPDATE_SUCCEEDED = 10000;
INTERNAL_ERROR = 10001;
PAYLOAD_DOWNLOAD_ERROR = 10002;
METADATA_MALFORMED = 10003;
OPERATION_MALFORMED = 10004;
OPERATION_EXECUTION_ERROR = 10005;
METADATA_VERIFICATION_FAILED = 10006;
PAYLOAD_VERIFICATION_FAILED = 10007;
VERIFICATION_FAILED = 10008;
POSTINSTALL_FAILED = 10009;
ABNORMAL_TERMINATION = 10010;
UPDATE_CANCELED = 10011;
UPDATE_SUCCEEDED_NOT_ACTIVE = 10012;
}
// The error code reported by the update engine after an OTA update attempt
// on A/B devices. More details in system/update_engine/common/error_code.h
enum ErrorCode {
SUCCESS = 10000;
ERROR = 10001;
FILESYSTEM_COPIER_ERROR = 10004;
POST_INSTALL_RUNNER_ERROR = 10005;
PAYLOAD_MISMATCHED_TYPE_ERROR = 10006;
INSTALL_DEVICE_OPEN_ERROR = 10007;
KERNEL_DEVICE_OPEN_ERROR = 10008;
DOWNLOAD_TRANSFER_ERROR = 10009;
PAYLOAD_HASH_MISMATCH_ERROR = 10010;
PAYLOAD_SIZE_MISMATCH_ERROR = 10011;
DOWNLOAD_PAYLOAD_VERIFICATION_ERROR = 10012;
DOWNLOAD_NEW_PARTITION_INFO_ERROR = 10013;
DOWNLOAD_WRITE_ERROR = 10014;
NEW_ROOTFS_VERIFICATION_ERROR = 10015;
SIGNED_DELTA_PAYLOAD_EXPECTED_ERROR = 10017;
DOWNLOAD_PAYLOAD_PUB_KEY_VERIFICATION_ERROR = 10018;
DOWNLOAD_STATE_INITIALIZATION_ERROR = 10020;
DOWNLOAD_INVALID_METADATA_MAGIC_STRING = 10021;
DOWNLOAD_SIGNATURE_MISSING_IN_MANIFEST = 10022;
DOWNLOAD_MANIFEST_PARSE_ERROR = 10023;
DOWNLOAD_METADATA_SIGNATURE_ERROR = 10024;
DOWNLOAD_METADATA_SIGNATURE_VERIFICATION_ERROR = 10025;
DOWNLOAD_METADATA_SIGNATURE_MISMATCH = 10026;
DOWNLOAD_OPERATION_HASH_VERIFICATION_ERROR = 10027;
DOWNLOAD_OPERATION_EXECUTION_ERROR = 10028;
DOWNLOAD_OPERATION_HASH_MISMATCH = 10029;
DOWNLOAD_INVALID_METADATA_SIZE = 10032;
DOWNLOAD_INVALID_METADATA_SIGNATURE = 10033;
DOWNLOAD_OPERATION_HASH_MISSING_ERROR = 10038;
DOWNLOAD_METADATA_SIGNATURE_MISSING_ERROR = 10039;
UNSUPPORTED_MAJOR_PAYLOAD_VERSION = 10044;
UNSUPPORTED_MINOR_PAYLOAD_VERSION = 10045;
FILESYSTEM_VERIFIER_ERROR = 10047;
USER_CANCELED = 10048;
PAYLOAD_TIMESTAMP_ERROR = 10051;
UPDATED_BUT_NOT_ACTIVE = 10052;
}