OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 // |
| 5 // Stores information about the user's brower and system configuration. |
| 6 // The system configuration fields are recorded once per client session. |
| 7 |
| 8 syntax = "proto2"; |
| 9 |
| 10 option optimize_for = LITE_RUNTIME; |
| 11 |
| 12 package metrics; |
| 13 |
| 14 // Next tag: 9 |
| 15 message SystemProfileProto { |
| 16 // The time when the client was compiled/linked, in seconds since the epoch. |
| 17 optional int64 build_timestamp = 1; |
| 18 |
| 19 // A version number string for the application. |
| 20 // Most commonly this is the browser version number found in a user agent |
| 21 // string, and is typically a 4-tuple of numbers separated by periods. In |
| 22 // cases where the user agent version might be ambiguous (example: Linux 64- |
| 23 // bit build, rather than 32-bit build, or a Windows version used in some |
| 24 // special context, such as ChromeFrame running in IE), then this may include |
| 25 // some additional postfix to provide clarification not available in the UA |
| 26 // string. |
| 27 // |
| 28 // An example of a browser version 4-tuple is "5.0.322.0". Currently used |
| 29 // postfixes are: |
| 30 // |
| 31 // "-64": a 64-bit build |
| 32 // "-F": Chrome is running under control of ChromeFrame |
| 33 // "-devel": this is not an official build of Chrome |
| 34 // |
| 35 // A full version number string could look similar to: |
| 36 // "5.0.322.0-F-devel". |
| 37 // |
| 38 // This value, when available, is more trustworthy than the UA string |
| 39 // associated with the request; and including the postfix, may be more |
| 40 // specific. |
| 41 optional string app_version = 2; |
| 42 |
| 43 // The date the user installed the browser, in seconds since the epoch. |
| 44 optional int64 install_date = 3; |
| 45 |
| 46 // The user's selected application locale, i.e. the user interface language. |
| 47 // The locale includes a language code and, possibly, also a country code, |
| 48 // e.g. "en-US". |
| 49 optional string application_locale = 4; |
| 50 |
| 51 // Information on the user's operating system. |
| 52 message OS { |
| 53 // The user's operating system. |
| 54 optional string name = 1; |
| 55 |
| 56 // The version of the OS. The meaning of this field is OS-dependent. |
| 57 optional string version = 2; |
| 58 } |
| 59 optional OS os = 5; |
| 60 |
| 61 // Information on the user's hardware. |
| 62 message Hardware { |
| 63 // The CPU architecture (x86, PowerPC, x86_64, ...) |
| 64 optional string cpu_architecture = 1; |
| 65 |
| 66 // The amount of RAM present on the system, in megabytes. |
| 67 optional int64 system_ram_mb = 2; |
| 68 |
| 69 // The base memory address that chrome.dll was loaded at. |
| 70 // (Logged only on Windows.) |
| 71 optional int64 dll_base = 3; |
| 72 |
| 73 // The Chrome OS device hardware class ID is a unique string associated with |
| 74 // each Chrome OS device product revision generally assigned at hardware |
| 75 // qualification time. The hardware class effectively identifies the |
| 76 // configured system components such as CPU, WiFi adapter, etc. |
| 77 // |
| 78 // An example of such a hardware class is "IEC MARIO PONY 6101". An |
| 79 // internal database associates this hardware class with the qualified |
| 80 // device specifications including OEM information, schematics, hardware |
| 81 // qualification reports, test device tags, etc. |
| 82 optional string hardware_class = 4; |
| 83 |
| 84 // The number of physical screens. |
| 85 optional int32 screen_count = 5; |
| 86 |
| 87 // The screen dimensions of the primary screen, in pixels. |
| 88 optional int32 primary_screen_width = 6; |
| 89 optional int32 primary_screen_height = 7; |
| 90 |
| 91 // Information on the GPU |
| 92 message Graphics { |
| 93 // The GPU manufacturer's vendor id. |
| 94 optional uint32 vendor_id = 1; |
| 95 |
| 96 // The GPU manufacturer's device id for the chip set. |
| 97 optional uint32 device_id = 2; |
| 98 |
| 99 // The driver version on the GPU. |
| 100 optional string driver_version = 3; |
| 101 |
| 102 // The driver date on the GPU. |
| 103 optional string driver_date = 4; |
| 104 |
| 105 // The GPU performance statistics. |
| 106 // See http://src.chromium.org/viewvc/chrome/trunk/src/content/browser/gpu
/gpu_performance_stats.h?view=markup |
| 107 // for details. Currently logged only on Windows. |
| 108 message PerformanceStatistics { |
| 109 optional float graphics_score = 1; |
| 110 optional float gaming_score = 2; |
| 111 optional float overall_score = 3; |
| 112 } |
| 113 optional PerformanceStatistics performance_statistics = 5; |
| 114 } |
| 115 optional Graphics gpu = 8; |
| 116 } |
| 117 optional Hardware hardware = 6; |
| 118 |
| 119 // Information on all installed plugins. |
| 120 message Plugin { |
| 121 // The plugin's self-reported name and filename (without path). |
| 122 optional string name = 1; |
| 123 optional string filename = 2; |
| 124 |
| 125 // The plugin's version. |
| 126 optional string version = 3; |
| 127 |
| 128 // True if the plugin is disabled. |
| 129 // If a client has multiple local Chrome user accounts, this is logged based |
| 130 // on the first user account launched during the current session. |
| 131 optional bool is_disabled = 4; |
| 132 } |
| 133 repeated Plugin plugin = 7; |
| 134 |
| 135 // Figures that can be used to generate application stability metrics. |
| 136 // All values are counts of events since the last time that these |
| 137 // values were reported. |
| 138 message Stability { |
| 139 // Total amount of time that the program was running, in seconds. |
| 140 optional int64 uptime_sec = 1; |
| 141 |
| 142 // Page loads along with renderer crashes and hangs, since page load count |
| 143 // roughly corresponds to usage. |
| 144 optional int32 page_load_count = 2; |
| 145 optional int32 renderer_crash_count = 3; |
| 146 optional int32 renderer_hang_count = 4; |
| 147 |
| 148 // Number of renderer crashes that were for extensions. |
| 149 // TODO(isherman): Figure out whether this is also counted in |
| 150 // |renderer_crash_count|. |
| 151 optional int32 extension_renderer_crash_count = 5; |
| 152 |
| 153 // Number of non-renderer child process crashes. |
| 154 optional int32 child_process_crash_count = 6; |
| 155 |
| 156 // Number of times the browser has crashed while logged in as the "other |
| 157 // user" (guest) account. |
| 158 // Logged on ChromeOS only. |
| 159 optional int32 other_user_crash_count = 7; |
| 160 |
| 161 // Number of times the kernel has crashed. |
| 162 // Logged on ChromeOS only. |
| 163 optional int32 kernel_crash_count = 8; |
| 164 |
| 165 // Number of times the system has shut down uncleanly. |
| 166 // Logged on ChromeOS only. |
| 167 optional int32 unclean_system_shutdown_count = 9; |
| 168 |
| 169 // |
| 170 // All the remaining fields in the Stability are recorded at most once per |
| 171 // client session. |
| 172 // |
| 173 |
| 174 // The number of times the program was launched. |
| 175 // This will typically be equal to 1. However, it is possible that Chrome |
| 176 // was unable to upload stability metrics for previous launches (e.g. due to |
| 177 // crashing early during startup), and hence this value might be greater |
| 178 // than 1. |
| 179 optional int32 launch_count = 15; |
| 180 // The number of times that it didn't exit cleanly (which we assume to be |
| 181 // mostly crashes). |
| 182 optional int32 crash_count = 16; |
| 183 |
| 184 // The number of times the program began, but did not complete, the shutdown |
| 185 // process. (For example, this may occur when Windows is shutting down, and |
| 186 // it only gives the process a few seconds to clean up.) |
| 187 optional int32 incomplete_shutdown_count = 17; |
| 188 |
| 189 // The number of times the program was able register with breakpad crash |
| 190 // services. |
| 191 optional int32 breakpad_registration_success_count = 18; |
| 192 |
| 193 // The number of times the program failed to register with breakpad crash |
| 194 // services. If crash registration fails then when the program crashes no |
| 195 // crash report will be generated. |
| 196 optional int32 breakpad_registration_failure_count = 19; |
| 197 |
| 198 // The number of times the program has run under a debugger. This should |
| 199 // be an exceptional condition. Running under a debugger prevents crash |
| 200 // dumps from being generated. |
| 201 optional int32 debugger_present_count = 20; |
| 202 |
| 203 // The number of times the program has run without a debugger attached. |
| 204 // This should be most common scenario and should be very close to |
| 205 // |launch_count|. |
| 206 optional int32 debugger_not_present_count = 21; |
| 207 |
| 208 // Stability information for all installed plugins. |
| 209 message PluginStability { |
| 210 // The relevant plugin's information (name, etc.) |
| 211 optional Plugin plugin = 1; |
| 212 |
| 213 // The number of times this plugin's process was launched. |
| 214 optional int32 launch_count = 2; |
| 215 |
| 216 // The number of times this plugin was instantiated on a web page. |
| 217 // This will be >= |launch_count|. |
| 218 // (A page load with multiple sections drawn by this plugin will |
| 219 // increase this count multiple times.) |
| 220 optional int32 instance_count = 3; |
| 221 |
| 222 // The number of times this plugin process crashed. |
| 223 // This value will be <= |launch_count|. |
| 224 optional int32 crash_count = 4; |
| 225 } |
| 226 repeated PluginStability plugin_stability = 22; |
| 227 } |
| 228 optional Stability stability = 8; |
| 229 } |
OLD | NEW |