Merge "bootstat: Log the ro.boot.bootreason property through the new platform_reason Tron field."

This commit is contained in:
Treehugger Robot 2017-09-18 19:36:40 +00:00 committed by Gerrit Code Review
commit 2fb5fa336b
4 changed files with 28 additions and 3 deletions

View File

@ -714,6 +714,9 @@ void RecordBootComplete() {
// property.
void RecordBootReason() {
const std::string reason(GetProperty(bootloader_reboot_reason_property));
android::metricslogger::LogMultiAction(android::metricslogger::ACTION_BOOT,
android::metricslogger::FIELD_PLATFORM_REASON,
reason);
// Log the raw bootloader_boot_reason property value.
int32_t boot_reason = BootReasonStrToEnum(reason);

View File

@ -19,10 +19,13 @@ cc_defaults {
"-Wextra",
"-Werror",
// 524291 corresponds to sysui_histogram, from
// frameworks/base/core/java/com/android/internal/logging/EventLogTags.logtags
"-DHISTOGRAM_LOG_TAG=524292",
// The following defines map logtag IDs as represented by:
// frameworks/base/core/java/com/android/internal/logging/EventLogTags.logtags
//
// E.g., 524290 corresponds to sysui_count.
"-DCOUNT_LOG_TAG=524290",
"-DHISTOGRAM_LOG_TAG=524292",
"-DMULTI_ACTION_LOG_TAG=524292",
],
}

View File

@ -28,14 +28,26 @@ void LogHistogram(const std::string& event, int32_t data);
// log buffer.
void LogCounter(const std::string& name, int32_t val);
// Logs a Tron multi_action with category|category| containing the string
// |value| in the field |field|.
void LogMultiAction(int32_t category, int32_t field, const std::string& value);
// TODO: replace these with the metric_logger.proto definitions
enum {
LOGBUILDER_CATEGORY = 757,
LOGBUILDER_TYPE = 758,
LOGBUILDER_NAME = 799,
LOGBUILDER_BUCKET = 801,
LOGBUILDER_VALUE = 802,
LOGBUILDER_COUNTER = 803,
LOGBUILDER_HISTOGRAM = 804,
ACTION_BOOT = 1092,
FIELD_PLATFORM_REASON = 1093,
};
enum {
TYPE_ACTION = 4,
};
} // namespace metricslogger

View File

@ -37,5 +37,12 @@ void LogCounter(const std::string& name, int32_t val) {
<< val << LOG_ID_EVENTS;
}
// Mirror com.android.internal.logging.MetricsLogger#action().
void LogMultiAction(int32_t category, int32_t field, const std::string& value) {
android_log_event_list log(MULTI_ACTION_LOG_TAG);
log << LOGBUILDER_CATEGORY << category << LOGBUILDER_TYPE << TYPE_ACTION
<< field << value << LOG_ID_EVENTS;
}
} // namespace metricslogger
} // namespace android