Loading libmetricslogger/Android.bp +7 −0 Original line number Original line Diff line number Diff line Loading @@ -29,6 +29,13 @@ cc_library_shared { defaults: ["metricslogger_defaults"], defaults: ["metricslogger_defaults"], } } // static version of libmetricslogger, needed by a few art static binaries cc_library_static { name: "libmetricslogger_static", srcs: metricslogger_lib_src_files, defaults: ["metricslogger_defaults"], } // metricslogger shared library, debug // metricslogger shared library, debug // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- cc_library_shared { cc_library_shared { Loading libmetricslogger/include/metricslogger/metrics_logger.h +41 −0 Original line number Original line Diff line number Diff line Loading @@ -14,6 +14,7 @@ * limitations under the License. * limitations under the License. */ */ #include <log/log_event_list.h> #include <cstdint> #include <cstdint> #include <string> #include <string> Loading @@ -32,6 +33,34 @@ void LogCounter(const std::string& name, int32_t val); // |value| in the field |field|. // |value| in the field |field|. void LogMultiAction(int32_t category, int32_t field, const std::string& value); void LogMultiAction(int32_t category, int32_t field, const std::string& value); // Logs a Tron complex event. // // A complex event can include data in a structure not suppored by the other // log event types above. // // Note that instances of this class are single use. You must call Record() // to write the event to the event log. class ComplexEventLogger { private: android_log_event_list logger; public: // Create a complex event with category|category|. explicit ComplexEventLogger(int category); // Add tagged data to the event, with the given tag and integer value. void AddTaggedData(int tag, int32_t value); // Add tagged data to the event, with the given tag and string value. void AddTaggedData(int tag, const std::string& value); // Add tagged data to the event, with the given tag and integer value. void AddTaggedData(int tag, int64_t value); // Add tagged data to the event, with the given tag and float value. void AddTaggedData(int tag, float value); // Record this event. This method can only be used once per instance // of ComplexEventLogger. Do not made any subsequent calls to AddTaggedData // after recording an event. void Record(); }; // TODO: replace these with the metric_logger.proto definitions // TODO: replace these with the metric_logger.proto definitions enum { enum { LOGBUILDER_CATEGORY = 757, LOGBUILDER_CATEGORY = 757, Loading @@ -44,11 +73,23 @@ enum { ACTION_BOOT = 1098, ACTION_BOOT = 1098, FIELD_PLATFORM_REASON = 1099, FIELD_PLATFORM_REASON = 1099, ACTION_HIDDEN_API_ACCESSED = 1391, FIELD_HIDDEN_API_ACCESS_METHOD = 1392, FIELD_HIDDEN_API_ACCESS_DENIED = 1393, FIELD_HIDDEN_API_SIGNATURE = 1394, }; }; enum { enum { TYPE_ACTION = 4, TYPE_ACTION = 4, }; }; enum { ACCESS_METHOD_NONE = 0, ACCESS_METHOD_REFLECTION = 1, ACCESS_METHOD_JNI = 2, ACCESS_METHOD_LINKING = 3, }; } // namespace metricslogger } // namespace metricslogger } // namespace android } // namespace android libmetricslogger/metrics_logger.cpp +29 −0 Original line number Original line Diff line number Diff line Loading @@ -23,9 +23,14 @@ namespace { namespace { #ifdef __ANDROID__ EventTagMap* kEventTagMap = android_openEventTagMap(nullptr); EventTagMap* kEventTagMap = android_openEventTagMap(nullptr); const int kSysuiMultiActionTag = android_lookupEventTagNum( const int kSysuiMultiActionTag = android_lookupEventTagNum( kEventTagMap, "sysui_multi_action", "(content|4)", ANDROID_LOG_UNKNOWN); kEventTagMap, "sysui_multi_action", "(content|4)", ANDROID_LOG_UNKNOWN); #else // android_openEventTagMap does not work on host builds. const int kSysuiMultiActionTag = 0; #endif } // namespace } // namespace Loading Loading @@ -53,5 +58,29 @@ void LogMultiAction(int32_t category, int32_t field, const std::string& value) { << field << value << LOG_ID_EVENTS; << field << value << LOG_ID_EVENTS; } } ComplexEventLogger::ComplexEventLogger(int category) : logger(kSysuiMultiActionTag) { logger << LOGBUILDER_CATEGORY << category; } void ComplexEventLogger::AddTaggedData(int tag, int32_t value) { logger << tag << value; } void ComplexEventLogger::AddTaggedData(int tag, const std::string& value) { logger << tag << value; } void ComplexEventLogger::AddTaggedData(int tag, int64_t value) { logger << tag << value; } void ComplexEventLogger::AddTaggedData(int tag, float value) { logger << tag << value; } void ComplexEventLogger::Record() { logger << LOG_ID_EVENTS; } } // namespace metricslogger } // namespace metricslogger } // namespace android } // namespace android logcat/event.logtags +2 −1 Original line number Original line Diff line number Diff line Loading @@ -67,8 +67,9 @@ # ZygoteInit class preloading ends: # ZygoteInit class preloading ends: 3030 boot_progress_preload_end (time|2|3) 3030 boot_progress_preload_end (time|2|3) # Dalvik VM # Dalvik VM / ART 20003 dvm_lock_sample (process|3),(main|1|5),(thread|3),(time|1|3),(file|3),(line|1|5),(ownerfile|3),(ownerline|1|5),(sample_percent|1|6) 20003 dvm_lock_sample (process|3),(main|1|5),(thread|3),(time|1|3),(file|3),(line|1|5),(ownerfile|3),(ownerline|1|5),(sample_percent|1|6) 20004 art_hidden_api_access (access_method|1),(flags|1),(class|3),(member|3),(type_signature|3) 75000 sqlite_mem_alarm_current (current|1|2) 75000 sqlite_mem_alarm_current (current|1|2) 75001 sqlite_mem_alarm_max (max|1|2) 75001 sqlite_mem_alarm_max (max|1|2) Loading Loading
libmetricslogger/Android.bp +7 −0 Original line number Original line Diff line number Diff line Loading @@ -29,6 +29,13 @@ cc_library_shared { defaults: ["metricslogger_defaults"], defaults: ["metricslogger_defaults"], } } // static version of libmetricslogger, needed by a few art static binaries cc_library_static { name: "libmetricslogger_static", srcs: metricslogger_lib_src_files, defaults: ["metricslogger_defaults"], } // metricslogger shared library, debug // metricslogger shared library, debug // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- cc_library_shared { cc_library_shared { Loading
libmetricslogger/include/metricslogger/metrics_logger.h +41 −0 Original line number Original line Diff line number Diff line Loading @@ -14,6 +14,7 @@ * limitations under the License. * limitations under the License. */ */ #include <log/log_event_list.h> #include <cstdint> #include <cstdint> #include <string> #include <string> Loading @@ -32,6 +33,34 @@ void LogCounter(const std::string& name, int32_t val); // |value| in the field |field|. // |value| in the field |field|. void LogMultiAction(int32_t category, int32_t field, const std::string& value); void LogMultiAction(int32_t category, int32_t field, const std::string& value); // Logs a Tron complex event. // // A complex event can include data in a structure not suppored by the other // log event types above. // // Note that instances of this class are single use. You must call Record() // to write the event to the event log. class ComplexEventLogger { private: android_log_event_list logger; public: // Create a complex event with category|category|. explicit ComplexEventLogger(int category); // Add tagged data to the event, with the given tag and integer value. void AddTaggedData(int tag, int32_t value); // Add tagged data to the event, with the given tag and string value. void AddTaggedData(int tag, const std::string& value); // Add tagged data to the event, with the given tag and integer value. void AddTaggedData(int tag, int64_t value); // Add tagged data to the event, with the given tag and float value. void AddTaggedData(int tag, float value); // Record this event. This method can only be used once per instance // of ComplexEventLogger. Do not made any subsequent calls to AddTaggedData // after recording an event. void Record(); }; // TODO: replace these with the metric_logger.proto definitions // TODO: replace these with the metric_logger.proto definitions enum { enum { LOGBUILDER_CATEGORY = 757, LOGBUILDER_CATEGORY = 757, Loading @@ -44,11 +73,23 @@ enum { ACTION_BOOT = 1098, ACTION_BOOT = 1098, FIELD_PLATFORM_REASON = 1099, FIELD_PLATFORM_REASON = 1099, ACTION_HIDDEN_API_ACCESSED = 1391, FIELD_HIDDEN_API_ACCESS_METHOD = 1392, FIELD_HIDDEN_API_ACCESS_DENIED = 1393, FIELD_HIDDEN_API_SIGNATURE = 1394, }; }; enum { enum { TYPE_ACTION = 4, TYPE_ACTION = 4, }; }; enum { ACCESS_METHOD_NONE = 0, ACCESS_METHOD_REFLECTION = 1, ACCESS_METHOD_JNI = 2, ACCESS_METHOD_LINKING = 3, }; } // namespace metricslogger } // namespace metricslogger } // namespace android } // namespace android
libmetricslogger/metrics_logger.cpp +29 −0 Original line number Original line Diff line number Diff line Loading @@ -23,9 +23,14 @@ namespace { namespace { #ifdef __ANDROID__ EventTagMap* kEventTagMap = android_openEventTagMap(nullptr); EventTagMap* kEventTagMap = android_openEventTagMap(nullptr); const int kSysuiMultiActionTag = android_lookupEventTagNum( const int kSysuiMultiActionTag = android_lookupEventTagNum( kEventTagMap, "sysui_multi_action", "(content|4)", ANDROID_LOG_UNKNOWN); kEventTagMap, "sysui_multi_action", "(content|4)", ANDROID_LOG_UNKNOWN); #else // android_openEventTagMap does not work on host builds. const int kSysuiMultiActionTag = 0; #endif } // namespace } // namespace Loading Loading @@ -53,5 +58,29 @@ void LogMultiAction(int32_t category, int32_t field, const std::string& value) { << field << value << LOG_ID_EVENTS; << field << value << LOG_ID_EVENTS; } } ComplexEventLogger::ComplexEventLogger(int category) : logger(kSysuiMultiActionTag) { logger << LOGBUILDER_CATEGORY << category; } void ComplexEventLogger::AddTaggedData(int tag, int32_t value) { logger << tag << value; } void ComplexEventLogger::AddTaggedData(int tag, const std::string& value) { logger << tag << value; } void ComplexEventLogger::AddTaggedData(int tag, int64_t value) { logger << tag << value; } void ComplexEventLogger::AddTaggedData(int tag, float value) { logger << tag << value; } void ComplexEventLogger::Record() { logger << LOG_ID_EVENTS; } } // namespace metricslogger } // namespace metricslogger } // namespace android } // namespace android
logcat/event.logtags +2 −1 Original line number Original line Diff line number Diff line Loading @@ -67,8 +67,9 @@ # ZygoteInit class preloading ends: # ZygoteInit class preloading ends: 3030 boot_progress_preload_end (time|2|3) 3030 boot_progress_preload_end (time|2|3) # Dalvik VM # Dalvik VM / ART 20003 dvm_lock_sample (process|3),(main|1|5),(thread|3),(time|1|3),(file|3),(line|1|5),(ownerfile|3),(ownerline|1|5),(sample_percent|1|6) 20003 dvm_lock_sample (process|3),(main|1|5),(thread|3),(time|1|3),(file|3),(line|1|5),(ownerfile|3),(ownerline|1|5),(sample_percent|1|6) 20004 art_hidden_api_access (access_method|1),(flags|1),(class|3),(member|3),(type_signature|3) 75000 sqlite_mem_alarm_current (current|1|2) 75000 sqlite_mem_alarm_current (current|1|2) 75001 sqlite_mem_alarm_max (max|1|2) 75001 sqlite_mem_alarm_max (max|1|2) Loading