tree: b5af5ec3afe052fa670e5625fc8ab546af510dd9 [path history] [tgz]
  1. ash/
  2. BUILD.gn
  3. data_collection_module.proto
  4. data_collector.h
  5. data_collector_utils.cc
  6. data_collector_utils.h
  7. DIR_METADATA
  8. OWNERS
  9. policy_data_collector.cc
  10. policy_data_collector.h
  11. policy_data_collector_browsertest.cc
  12. README.md
  13. screenshot_data_collector.cc
  14. screenshot_data_collector.h
  15. screenshot_data_collector_browsertest.cc
  16. screenshot_data_collector_unittest.cc
  17. signin_data_collector.cc
  18. signin_data_collector.h
  19. signin_data_collector_browsertest.cc
  20. support_packet_metadata.cc
  21. support_packet_metadata.h
  22. support_tool_handler.cc
  23. support_tool_handler.h
  24. support_tool_handler_unittest.cc
  25. support_tool_util.cc
  26. support_tool_util.h
  27. support_tool_util_browsertest.cc
  28. system_log_source_data_collector_adaptor.cc
  29. system_log_source_data_collector_adaptor.h
  30. system_log_source_data_collector_adaptor_unittest.cc
chrome/browser/support_tool/README.md

Support Tool

Support Tool is a framework that collects various information and logs from ChromeOS devices and Chrome browser. The caller can use it to gather the desired set of logs using SupportToolHandler. See the documentation there on the usage of it.

Local Usage

Use Support Tool UI on chrome://support-tool to export the log archive to local storage.

Remote Log Collection for Enterprise Admins

Admins can trigger log collection on Admin Console to get the logs remotely. See here for more details.

Available Data on Support Tool

NameDescription
ChromeOS Flex LogsCollect Hardware data for cloudready devices via cros_healthd calls.
UI HierarchyFetches UI component hierarchy for ChromeOS.
Crash IDsExtracts the most recent crash IDs (if any) and exports them into crash_report_ids and all_crash_report_ids files.
Chrome System InformationFetches internal Chrome logs.
Intel WiFi NICs Debug DumpFetches debug dump information from Intel Wi-Fi NICs that will be produced when those NICs have issues such as firmware crashes for ChromeOS.
ChromeOS Network RoutesGathers network routing tables for ipv4 and ipv6
Additional ChromeOS Platform LogsGathers log data from various scripts/programs. Creates and exports data into these files: alsa controls, cras, audio_diagnostics, env, disk_usage.
Touch EventsFetches touch events, touchscreen and touchpad logs.
DBus DetailsFetches memory usage details of DBus interface. Creates and exports data into these files: dbus_details, dbus_summary.
Device EventFetches entries for ‘network_event_log’ and ‘device_event_log’.
Memory DetailsFetches memory usage details and exports them into mem_usage and mem_usage_with_title files.
PoliciesPolicies applied for device or user for managed users.
ChromeOS Shill (Connection Manager) LogsGathers Device and Service properties from Shill.
ChromeOS System LogsGathers the contents of /var/log file. /var/log file contains the log files of various system files e.g. Chrome logs, messages, bluetooth logs etc.
ChromeOS System State and LogsGathers log data from Debug Daemon. Debug daemon collects log from several system files or runs scripts to collect data.
ChromeOS Chrome User LogsGathers logs from user's directory on ChromeOS. Contains Chrome logs, log-in/log-out times and Google Assistant logs
ChromeOS BluetoothFetches if Bluetooth floss is enabled on the device
ChromeOS Connected Input DevicesFetches the information about connected input devices to ChromeOS device.
ChromeOS Virtual KeyboardFetches the virtual keyboard details on ChromeOS
ChromeOS Traffic CountersFetches traffic counters for ChromeOS
ChromeOS Network HealthFetches network health entry.
Performance and Battery StatusGathers performance relevant data such as battery saving mode on device or the active battery status
Sign In StatusFetches signin tokens and details (the information on chrome://signin-internals)
ChromeOS App ServiceGathers information from app service about installed and running apps

Details About Available Data

ChromeOS Flex Logs

Collect hardware data for ChromeOS Flex devices via cros_healthd calls. What does the information contain:

  • System Info

    • Vendor (chromeosflex_product_vendor)
    • Product name (chromeosflex_product_name)
    • Product version (chromeosflex_product_version)
    • Bios name (chromeosflex_bios_version)
    • Secure boot enabled (chromeosflex_secureboot)
    • UEFI enabled (chromeosflex_uefi)
  • Cpu Info

    • CPU names under name (chromeosflex_cpu_name)
  • Memory Info

    • Total memory (chromeosflex_total_memory)
    • Free memory (chromeosflex_free_memory)
    • Available memory (chromeosflex_available_memory)
  • Bus Devices Info

    • Ethernet devices
      • name (chromeosflex_ethernet_name)
      • id (chromeosflex_ethernet_id)
      • driver (chromeosflex_ethernet_driver)
    • Bluetooth devices
      • name (chromeosflex_bluetooth_name)
      • id (chromeosflex_bluetooth_id)
      • driver (chromeosflex_bluetooth_driver)
    • Wireless devices
      • name (chromeosflex_wireless_name)
      • id (chromeosflex_wireless_id)
      • driver (chromeosflex_wireless_driver)
    • GPU devices
      • name (chromeosflex_gpu_name)
      • id (chromeosflex_gpu_id)
      • driver (chromeosflex_gpu_driver)
  • Tpm Info

    • (chromeosflex_tpm_allow_listed)
    • (chromeosflex_tpm_did_vid)
    • (chromeosflex_tpm_manufacturer)
    • (chromeosflex_tpm_owned)
    • (chromeosflex_tpm_spec_level)
    • (chromeosflex_tpm_version)
  • Graphics Info

    • chromeosflex_gl_extensions
    • chromeosflex_gl_renderer
    • chromeosflex_gl_shading_version
    • chromeosflex_gl_vendor
    • chromeosflex_gl_version
  • Touchpad library name

Source code on RevenLogSource.

UI Hierarchy

UI component hierarchy.

  • Windows
  • Layers
  • Views

Source code on UiHierarchyDataCollector.

Crash IDs

  • crash_report_ids
  • all_crash_report_ids

Source code on CrashIdsSource.

Chrome System Information

  • All devices: (including Win, Mac):

    • Sync logs
    • Extension info logs
      • List in format: extension_id : extension_name : extension_version
    • Power API logs
      • The extension levels from chrome.power API
    • Chrome version
    • Enrollment status
    • OS version for ChromeOS
    • CPU arc for Windows and Mac
    • Is skia graphite enabled?
    • Is child account?
  • ChromeOS:

    • Local state settings
    • Arc policy status if ARC is enabled
    • Onboarding time:
      • Time when a new user has finished onboarding.
    • Account type
    • Demo mode config
    • Failed knowledge factor events
    • Recorded auth events
    • Monitor (display) information
    • Disk space:
      • Free disk space
      • Total disk space
  • Windows:

    • USB keyboard added
    • Enrollment status
    • Installer brand
    • Last update state

Source code on ChromeInternalLogSource.

Intel WiFi NICs Debug Dump

Retrieves contents of /var/log/last_iwlwifi_dump file.

Source code on IwlWifiDumpLogSource.

ChromeOS Network Routes

Returns the network routes for ipv4 and ipv6 (through debugd).

Source code on NetworkRoutesDataCollector.

Additional ChromeOS Platform Logs

  • alsa controls
  • cras
  • audio_diagnostics
  • env
  • system_files
  • disk_usage

Source code on CommandLineLogSource.

Touch Events

Touch event logs and touch device state logs from Input controller.

Source code on TouchLogSource.

DBus Details

DBus call statistics: contains names for DBus methods and paths.

Source code on DBusLogSource.

Device Event

  • network_event_log: Network events that occurred on the device.
  • device_event_log: All other device events.

See UI on chrome://device-log.

Source code on DeviceEventLogSource.

Memory Details

mem_usage: the memory usage of the browser process and its subprocesses.

Source code on MemoryDetailsLogSource.

Policies

Policies and their values. Contains the policy status and last fetch time. UI available on chrome://policy.

Source code on PolicyDataCollector.

ChromeOS Shill (Connection Manager) Logs

Gathers network service and device configs and properties.

Source code on ShillDataCollector.

ChromeOS System Logs

Several log files from /var/log/ path through debugd. See this section on the spreadsheet for the exact list of files. Note that only the files from /var/log/ will be included from the linked list.

See log_tool.cc for details.

Source code on SystemLogsDataCollector.

ChromeOS System State and Logs

Calls debugd to run some commands to gather system state and reports. See this section on the spreadsheet for the exact list of data. Note that /var/log/ files from this link are collected under ChromeOS System Logs and will not be included here.

See log_tool.cc for details.

Source code on SystemStateDataCollector.

ChromeOS Chrome User Logs

  • Chrome browser logs from user session
  • Assistant logs
  • Login/logout times

Source code on ChromeUserLogsDataCollector.

ChromeOS Bluetooth

If Bluetooth Floss is enabled or not.

Source code on BluetoothDataCollector.

ChromeOS Connected Input Devices

Connected input device (e.g. touch screen or touchpad) information such as vendor names and versions.

Source code on ConnectedInputDevicesLogSource.

ChromeOS Virtual Keyboard

Virtual keyboard related information such as the touch screen type and keyboard name.

Source code on VirtualKeyboardLogSource.

ChromeOS Traffic Counters

Network traffic counters of recent active networks on the device. This information can be used to monitor the amount of traffic on networks.

Source code on TrafficCountersLogSource.

ChromeOS Network Health

Network health snapshot and network diagnostics routine outputs.

Network health snapshot contains network information such as network name and signal strengths.

Network diagnostics routines are such as following:

  • LAN connectivity problems
  • signal strength problems
  • gateway can be pinged problems
  • secure WIFI connection problems
  • DNS resolver present problems
  • DNS latency problems
  • DNS resolution problems
  • captive portal problems
  • HTTP/HTTPS firewall problems
  • HTTPS latency problems
  • video conferencing problems
  • ARC HTTP problems
  • ARC DNS resolution problems
  • ARC ping problems

Source code on NetworkHeathDataCollector.