1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
|
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.metrics";
option java_outer_classname = "ChromeUserMetricsExtensionProtos";
package metrics;
import "cast_logs.proto";
import "chrome_os_app_list_launch_event.proto";
import "custom_tab_session.proto";
import "histogram_event.proto";
import "omnibox_event.proto";
import "printer_event.proto";
import "reporting_info.proto";
import "sampled_profile.proto";
import "structured_data.proto";
import "system_profile.proto";
import "trace_log.proto";
import "translate_event.proto";
import "user_action_event.proto";
import "user_demographics.proto";
// Next tag: 29
message ChromeUserMetricsExtension {
// The product (i.e. end user application) for a given UMA log.
enum Product {
// Google Chrome product family.
CHROME = 0;
// UMA metrics from Android Webview.
ANDROID_WEBVIEW = 20;
// Cast Assistant
CAST_ASSISTANT = 25;
// Devices such as Chromecast, Android TVs, and smart speakers and displays.
CAST = 35;
// UMA metrics from Android WebLayer.
ANDROID_WEBLAYER = 56;
}
// The product corresponding to this log. The field type is int32 instead of
// Product so that downstream users of the Chromium metrics component can
// introduce products without needing to make changes to the Chromium code
// (though they still need to add the new product to the server-side enum).
// Note: The default value is Chrome, so Chrome products will not transmit
// this field.
optional int32 product = 10 [default = 0];
// The id of the client install that generated these events.
//
// For Chrome clients, this id is unique to a top-level (one level above the
// "Default" directory) Chrome user data directory [1], and so is shared among
// all Chrome user profiles contained in this user data directory.
// This client_id may not be unique across platforms. Notably, ChromeOS and
// Lacros are different platforms yet report the same client_id for the same
// device.
// An id of 0 is reserved for test data (monitoring and internal testing) and
// should normally be ignored in analysis of the data.
// [1] http://www.chromium.org/user-experience/user-data-directory
optional fixed64 client_id = 1;
// The session id for this user.
// Values such as tab ids are only meaningful within a particular session.
// The client keeps track of the session id and sends it with each event.
// The session id is simply an integer that is incremented each time the user
// relaunches Chrome.
optional int32 session_id = 2;
// The id associated with a user entity that generated these events. These
// user IDs are only associated with users on device. Their generation is not
// based on any other ID.
//
// This field is not populated on non-Chrome OS platforms.
//
// For Chrome OS, this id refers to a device user entity. This field will be
// captured when a log is first opened. If there is no user logged in at the
// time the log is opened, then this field will be unset. All ephemeral (i.e.
// guest, kiosk) users will have this field unset.
optional fixed64 user_id = 24;
// A client-managed id that functions as a sequence number for the log record.
// Clients are expected to maintain a counter, incrementing it (by 1) for each
// record they create, and populate this field. Each record_id is expected to
// be unique when scoped to a given client_id. It is further expected that the
// record_id values associated to a given client_id form an uninterrupted
// numeric sequence (i.e. k, k+1, k+2, k+3, ...), allowing for the detection
// of dropped, or otherwise lost, records.
optional int64 record_id = 28;
// Next tag: 4
message RealLocalTime {
// The source of the timestamp.
enum TimeSource {
UNSPECIFIED = 0;
// The time on the local machine.
CLIENT_CLOCK = 1;
// The time derived from server information provided by the
// NetworkTimeTracker a.k.a. "sane time" system. See
// https://www.chromium.org/developers/design-documents/sane-time
NETWORK_TIME_CLOCK = 2;
}
optional TimeSource time_source = 1;
// |time_sec| is in seconds since epoch.
optional int64 time_sec = 2;
// |time_zone_offset_from_gmt_sec| is in seconds.
// Only logged in |time_log_closed| entries, not |time_log_created| entries.
// (Populating this field when creating a log slows down startup too much.)
optional int32 time_zone_offset_from_gmt_sec = 3;
}
// These times are set for "ongoing" UMA logs. For two other types
// of UMA logs, these values are omitted:
// - logs recovered from a previous run of Chrome ("persisted UMA"), such as
// one that didn't shut down cleanly.
// - the initial stability log.
//
// Warning: in some cases |time_log_created| can contain events that happened
// slightly before this timestamp. If you only care about differences of more
// than a minute, you can skip reading this section. In particular, at the
// time of writing, the "initial metric log" includes all metrics from startup
// until it is closed, which happens 60 seconds after startup on desktop
// platforms and 15 seconds after startup on mobile platforms. (See
// components/metrics/metrics_scheduler.cc kInitialIntervalSeconds.) Yet, the
// initial metrics log is only created 30 seconds after startup on desktop
// platforms and 5 seconds after startup on mobile platforms. (See
// components/metrics/metrics_service.cc kInitializationDelaySeconds.) This
// means histograms that are stored in a record could have been emitted up to
// 30 seconds before the log was created. This logic may change in the
// future; see http://crbug.com/1171830
optional RealLocalTime time_log_created = 25;
optional RealLocalTime time_log_closed = 26;
// Information about the user's browser and system configuration.
optional SystemProfileProto system_profile = 3;
// The user's demographic information. This data is made available to Chrome
// via syncable priority pref, so is only available if the user is signed-in
// and syncing.
optional UserDemographicsProto user_demographics = 21;
// This message will log one or more of the following event types:
repeated UserActionEventProto user_action_event = 4;
repeated OmniboxEventProto omnibox_event = 5;
repeated HistogramEventProto histogram_event = 6;
repeated TranslateEventProto translate_event = 15;
repeated PrinterEventProto printer_event = 16;
repeated ChromeOSAppListLaunchEventProto chrome_os_app_list_launch_event = 20;
optional StructuredDataProto structured_data = 23;
// A list of all collected sample-based profiles since the last UMA upload.
repeated SampledProfile sampled_profile = 11;
// Additional data related with Cast-enabled devices.
optional CastLogsProto cast_logs = 12;
// The ReportingInfo message sent in the X-Chrome-UMA-ReportingInfo header.
// Copied in by the receiving server.
optional ReportingInfo reporting_info = 17;
// The Chrome traces obtained during the current session. The start time,
// duration and details depend on the experiment triggers in the current
// session. This field is uploaded as independent logs, which contain only
// session id and core system profile fields, apart from this field.
repeated TraceLog trace_log = 19;
// Information about a Custom Tabs session, recorded in the log when the
// a CCT session ended. If custom tabs are opened and closed multiple times
// within the same log session, only the last one will be recorded. This is
// used to identify applications that use Custom Tabs in an abusive way. This
// is specific to Android.
optional CustomTabSessionProto custom_tab_session = 27;
}
|