// 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 = "CastLogsProtos"; package metrics; // Cast-enabled device specific log data included in ChromeUserMetricsExtension. // Next tag: 9 message CastLogsProto { // Cast specific device information. // Next tag: 7 message CastDeviceInfo { // The product type of Cast device sent from Cast-enabled devices. // Next tag: 14 enum CastProductType { CAST_PRODUCT_TYPE_UNKNOWN = 0; CAST_PRODUCT_TYPE_CHROMECAST = 1; CAST_PRODUCT_TYPE_TV = 2; CAST_PRODUCT_TYPE_AUDIO = 3; CAST_PRODUCT_TYPE_ANDROID_TV = 4; CAST_PRODUCT_TYPE_ASSISTANT = 5; CAST_PRODUCT_TYPE_ANDROID_THINGS = 6; CAST_PRODUCT_TYPE_CHROME_OS = 7; CAST_PRODUCT_TYPE_FUCHSIA_OS = 8; CAST_PRODUCT_TYPE_LITE = 9; CAST_PRODUCT_TYPE_CORE = 10; CAST_PRODUCT_TYPE_11 = 11; CAST_PRODUCT_TYPE_ANDROID_AUTOMOTIVE = 12; CAST_PRODUCT_TYPE_ANDROID = 13; } optional CastProductType type = 1; // The hardware revision of each product. optional string hardware_revision = 2; // The manufacturer of Cast device, this value is empty when the device // is manufactured by Google. optional string manufacturer = 3; // The model of the Cast device. optional string model = 4; // The serial number. optional string serial_number = 5; // Hardware information stored in factory partition. // Next Tag: 12 message HardwareInfo { optional string color = 1; optional string mic = 2; optional string memory = 3; optional string nand = 4; optional string mfg_date = 5; optional string build_name = 6; optional string config = 7; optional string emmc = 8; optional string display = 9; optional string amp = 10; optional string board_name = 11; } optional HardwareInfo hardware_info = 6; } // The device sends this information at least once per day. optional CastDeviceInfo cast_device_info = 1; // Information about Cast V2 API connection between sender application and // Cast-enabled device. // Next tag: 4 message CastConnectionInfo { optional fixed32 transport_connection_id = 1; optional fixed32 virtual_connection_id = 2; // This message describes a detail sender device and sdk. // Next tag: 10 message SenderInfo { // The identifier for the sender device, that is pseudonymous and can be // reset. This id has no link to a specific user or device. optional fixed64 sender_device_id = 1; // SDK type the sender application was using. // Next tag: 3 enum SDKType { SDK_UNKNOWN = 0; // Native SDK type, // E.G. Android sdk, iOS sdk. SDK_NATIVE = 1; // SDK via Chrome extension. SDK_CHROME_EXTENSION = 2; } optional SDKType sdk_type = 2; // Version of sender sdk/extension used to connection. The format varies // by each platform. optional string version = 3; // Chrome browser version where the Chrome extension running. // Only Chrome extension sends this information. optional string chrome_browser_version = 4; // Platform of sender device. // Next tag: 8 enum Platform { // Any platform other then cases below. PLATFORM_OTHER = 0; PLATFORM_ANDROID = 1; PLATFORM_IOS = 2; PLATFORM_WINDOWS = 3; PLATFORM_OSX = 4; PLATFORM_CHROMEOS = 5; PLATFORM_LINUX = 6; // The sender is Cast device - including itself. PLATFORM_CAST = 7; } optional Platform platform = 5; // Sender device system version. optional string system_version = 6; // What type of connection type used to establish between sender and // receiver. enum ConnectionType { CONNECTION_TYPE_UNKNOWN = 0; // A connection established directly between sender and receiver. CONNECTION_TYPE_LOCAL = 1; // A connection created by opencast to the device via the cloud relay. CONNECTION_TYPE_RELAY = 2; // A connection created by receiver itself internally. CONNECTION_TYPE_INTERNAL = 3; } optional ConnectionType transport_connection_type = 7; // Sender device model. optional string model = 8; // Last 2 bytes of the sender’s local IP addresses (both IP4/IP6) when // the sender connected. This field stores ip fragment to last 2 bytes and // first 2 bytes won't be used. optional int32 sender_local_ip_fragment = 9; } optional SenderInfo sender_info = 3; } // Virtual connection established between sender application and Cast device. repeated CastConnectionInfo cast_connection_info = 2; // Stores Cast-enabled device specific events with a various context data. // Next tag: 29 message CastEventProto { // The name of the action, hashed by same logic used to hash user action // event and histogram. optional fixed64 name_hash = 1; // The timestamp for the event, in milliseconds. optional int64 time_msec = 2; // The Cast receiver app ID related with this event. optional fixed32 app_id = 3; // The app ID of a remote Cast receiver associated with this event. optional fixed32 remote_app_id = 19; // The identifier for receiver application session. optional fixed64 application_session_id = 4; // Receiver side Cast SDK version. optional fixed64 cast_receiver_version = 5; // Cast MPL version. optional fixed64 cast_mpl_version = 9; // transport_connection_id related with this event. optional fixed32 transport_connection_id = 6; // virtual_connection_id related with this event. optional fixed32 virtual_connection_id = 7; // An optional value for the associated event, often a measurement in // milliseconds. optional int64 value = 8; // Group id of Multizone Audio. optional fixed64 group_uuid = 10; optional string conversation_key = 11; // Request id of V2 Application Protocol optional fixed32 request_id = 12; optional string event_id = 13; optional string aogh_request_id = 16; optional int64 aogh_local_device_id = 18; optional string aogh_agent_id = 21; optional string aogh_standard_agent_id = 28; // Optional value associated with the event. For example, may be used for // error codes. message Metadata { optional fixed64 name_hash = 1; optional int64 value = 2; } repeated Metadata metadata = 14; // Optional values associated with the event. repeated float feature_vector = 15; // Optional value associated with timezone update event. optional string timezone_id = 17; // Optional value to log ui version. optional string ui_version = 20; // Optional field to log SELINUX audit detail. optional string selinux_audit_detail = 22; // List of event ids belonging to a particular interaction. One interaction // could receive multiple assistant outputs, hence multiple event ids. repeated string event_id_list = 23; // Duo core version. optional fixed64 duo_core_version = 24; // Model version of hotword detector. optional string hotword_model_id = 25; enum LaunchFrom { FROM_UNKNOWN = 0; // Launched by itself, or by the user interacting directly with the // receiver device (e.g. use a TV remote to launch an app on Android TV). FROM_LOCAL = 1; // Launched by a Cast V1 sender using DIAL. FROM_DIAL = 2; // Launched by a Cast V2 sender device. FROM_CAST_V2 = 3; // Launched from the cloud. FROM_CCS = 4; } optional LaunchFrom launch_from = 26; enum RuntimeType { RUNTIME_TYPE_UNKNOWN = 0; RUNTIME_TYPE_CAST_WEB = 1; RUNTIME_TYPE_CAST_LITE = 2; RUNTIME_TYPE_NATIVE = 3; } // The Cast Core runtime type associated with this event. optional RuntimeType runtime_type = 27; } repeated CastEventProto cast_event = 3; // Virtual release track for releases sent to partners, trusted beta // testers, developers, etc. optional fixed32 virtual_release_track = 4; // Cast specific device information which is expected to change over time. // Next tag: 13 message CastDeviceMutableInfo { // This is the last type of reboot the device encountered // Next tag: 22 enum RebootType { REBOOT_TYPE_UNKNOWN = 0; // Fail to get reboot type from system property REBOOT_TYPE_FORCED = 1; // Power removed from device REBOOT_TYPE_API = 2; // Requested from reboot setup api REBOOT_TYPE_NIGHTLY = 3; REBOOT_TYPE_OTA = 4; REBOOT_TYPE_WATCHDOG = 5; // Reboot caused by a watchdog process. REBOOT_TYPE_PROCESS_MANAGER = 6; REBOOT_TYPE_CRASH_UPLOADER = 7; REBOOT_TYPE_FDR = 8; REBOOT_TYPE_HW_WATCHDOG = 9; REBOOT_TYPE_SW_OTHER = 10; REBOOT_TYPE_OVERHEAT = 11; // The device got into a state such that it needs to regenerate the cloud // device id. REBOOT_TYPE_REGENERATE_CLOUD_ID = 12; // Reboot triggered due to successive OOM events. REBOOT_TYPE_REPEATED_OOM = 13; // Reboot triggered when the utility process is found to be in // crash loop. REBOOT_TYPE_UTILITY_PROCESS_CRASH = 14; // design doc go/fuchsia-session-restart-metrics // Restart triggered due to graceful component teardown by the Fuchsia // platform. Device has not rebooted. REBOOT_TYPE_GRACEFUL_RESTART = 15; // Restart triggered due to ungraceful component teardown by the Fuchsia // platform. Device has not rebooted. REBOOT_TYPE_UNGRACEFUL_RESTART = 16; MULTI_SERVICE_BUG = 17; POWER_MANAGER = 18; EXPERIMENT_CHANGE = 19; ANOMALY_DETECTION = 20; KERNEL_PANIC = 21; } optional RebootType last_reboot_type = 1; // System version which the cast_shell is running. optional fixed64 system_build_number = 2; // An identifier that is specific to the combination of app and device, in // this case the one used by backdrop. optional string backdrop_app_device_id = 3; // Chromecast release version like "1.23", "1.24". The format is "X.Y" // where X is major version and Y is sub major version. optional fixed32 release_version = 4; // IP version of the primary network interface. enum NetifIPVersion { IP_UNKNOWN = 0; IP_V4 = 1; IP_V6 = 2; IP_DUAL_STACK = 3; } optional NetifIPVersion netif_ip_version = 5; // True if the system which cast_shell is running on, supports ip dual stack // sockets. optional bool ip_dual_stack_supported = 6; // Current timezone which the device is using. optional string timezone_id = 7; // Optional value to log latest ui version. optional string latest_ui_version = 8; // Station ID of the device if connected to Google WiFi network optional string google_wifi_station_shmac = 9; // Optional field to log installed manifest platform version. optional string installed_manifest_platform_version = 10; // Optional field to log installed manifest version. optional uint32 installed_manifest_version = 11; // Optional field to log the system bundle version. optional string system_bundle_version = 12; } // The device sends this information at least once per day. optional CastDeviceMutableInfo cast_device_mutable_info = 5; optional fixed64 receiver_metrics_id = 6; // This ID is only ever recorded for Google-internal users (dogfooders). It // is never recorded for external users." optional uint64 ephemeral_id = 7; optional fixed32 source_virtual_release_track = 8; }