Telemetry

On-device telemetry API serves the clients on both Chromium and platform. The data sources listed table could be scattered around different services and it is our vision to hide those tedious details away from our clients. In addition, single source will help the data utilization easier to process on the server side if it is our client's final destination.

We also support a proactive event subscription API make clients could subscript the particular event and got real-time notified when the event occurs.

If you can't find the things you want, contact us for a quick check on the latest status just in case the documentation is behind the reality.

Usages

Mojo interface

ProbeTelemetryInfo(categories) in CrosHealthdProbeService interface can grab the data from selected categories from a single IPC call. See the Mojo interface comment for the detail.

Note that, Strongly recommend to split your request into multiple and fetch a subset of interesting categories in each call, and setup disconnect handler to be able to return partial data. As ProbeTelemetryInfo() might not be returned under certain critical situation. (e.g. cros_healthd got killed or crash, a common cases is the seccomp vialation).

TODO(b/214343538): proactive event subscription API

CLI tool

cros-health-tool is a convenience tools for testing, it is not for production used. We recommended to reach us before using this in your project.

For telemetry, we can initiate a request via cros-health-tool telem --category=<xx> where <xx> is the category name. The list of category names could be checked via cros-health-tool telem --help.

Type Definitions

Audio

AudioInfo
FieldTypeDescription
output_muteboolIs active output device mute or not.
input_muteboolIs active input device mute or not.
output_volumeuint64Active output device's volume in [0, 100].
output_device_namestringActive output device's name.
input_gainuint32Active input device's gain in [0, 100].
input_device_namestringActive input device's name.
underrunsuint32Numbers of underruns.
severe_underrunsuint32Numbers of severe underruns.

Backlight

BacklightInfo
FieldTypeDescription
pathstringPath to this backlight on the system. Useful if the caller needs to
correlate with other information.
max_brightnessuint32Maximum brightness for the backlight.
brightnessuint32Current brightness of the backlight, between 0 and max_brightness.

Battery

BatteryInfo
FieldTypeDescription
cycle_countint64Current charge cycle count
voltage_nowdoubleCurrent battery voltage (V)
vendorstringManufacturer of the battery
serial_numberstringSerial number of the battery
charge_full_designdoubleDesigned capacity (Ah)
charge_fulldoubleCurrent Full capacity (Ah)
voltage_min_designdoubleDesired minimum output voltage (V)
model_namestringModel name of battery
charge_nowdoubleCurrent battery charge (Ah)
current_nowdoubleCurrent battery current (A)
technologystringTechnology of the battery. Battery chemistry.
e.g. “NiMH”, “Li-ion”, “Li-poly”, “LiFe”, “NiCd”, “LiMn”
statusstringStatus of the battery
manufacture_datestring?Manufacture date converted to yyyy-mm-dd format. (Only available on Smart Battery)
temperatureuint64?Temperature in 0.1K. Included when the main battery is a Smart Battery. (Only available on Smart Battery)

Charge

FieldTypeDescription
(planned) AC Adapter Wattage

EC

FieldTypeDescription
(planned) ePPID (Dell exclusive data)
(planned) Battery soft/hard error
(planned) MA code

Bluetooth

Client

FieldTypeDescription
(planned) Radio Connected (Desired)
name(planned) Name of connected client
address(planned) MAC of connected client
(planned) TX Bytes (total so far)
(planned) RX Bytets (total so far)
(planned) Radio On (Desired)
(planned) Radio Connected (Desired)

Host

FieldTypeDescription
(planned) TX Bytes (total so far)
(planned) RX Bytets (total so far)
(planned) Radio On (Desired)
BluetoothAdapterInfo
FieldTypeDescription
namestringThe name of the adapter.
addressstringThe MAC address of the adapter.
poweredboolIndicates whether the adapter is on or off.
num_connected_devicesuint32The number of devices connected to this adapter.

Bus

BusDevice
FieldTypeDescription
vendor_namestringThe vendor / product name of the device. These are extracted from the
databases on the system and should only be used for showing / logging.
Don't use these to identify the devices.
product_namestringThe class of the device.
device_classBusDeviceClassThe info related to specific bus type.
bus_infoBusInfoThese fields can be used to classify / identify the pci devices. See the
pci.ids database for the values. (https://github.com/gentoo/hwids)
BusInfo
FieldTypeDescription
pci_bus_infoPciBusInfo(union/one-of type) This field is valid only if the info is related to pci.
usb_bus_infoUsbBusInfo(union/one-of type) This field is valid only if the info is related to usb.
thunderbolt_bus_infoThunderboltBusInfo(union/one-of type) This field is valid only if the info is related to thunderbolt.

PCIe

PciBusInfo
FieldTypeDescription
class_iduint8
subclass_iduint8
prog_if_iduint8
vendor_iduint16
device_iduint16
driverstring?The driver used by the device. This is the name of the matched driver which
is registered in the kernel. See “{kernel root}/drivers/”. for the list of
the built in drivers.

Thunderbolt

ThunderboltBusInfo
FieldTypeDescription
security_levelThunderboltSecurityLevelSecurity level none, user, secure, dponly.
thunderbolt_interfacesarrayInfo of devices attached to the controller.
ThunderboltBusInterfaceInfo
FieldTypeDescription
vendor_namestringVendor name of connected device interface.
device_namestringProduct name of connected device interface.
device_typestringType of device.
device_uuidstringThe device unique id.
tx_speed_gbsuint32Transmit link speed for thunderbolt interface.
rx_speed_gbsuint32Receive link speed for thunderbolt interface.
authorizedboolConnection is authorized or not.
device_fw_versionstringnvm firmware version.

USB

UsbBusInfo
FieldTypeDescription
class_iduint8These fields can be used to classify / identify the usb devices. See the
usb.ids database for the values. (https://github.com/gentoo/hwids)
subclass_iduint8
protocol_iduint8
vendor_iduint16
product_iduint16
interfacesarrayThe usb interfaces under the device. A usb device has at least one
interface. Each interface may or may not work independently, based on each
device. This allows a usb device to provide multiple features.
The interfaces are sorted by the
UsbBusInterfaceInfo
FieldTypeDescription
interface_numberuint8The zero-based number (index) of the interface.
class_iduint8These fields can be used to classify / identify the usb interfaces. See the
usb.ids database for the values.
subclass_iduint8
protocol_iduint8
driverstring?The driver used by the device. This is the name of the matched driver which
is registered in the kernel. See “{kernel root}/drivers/”. for the list of
the built in drivers.

CPU

CpuInfo
FieldTypeDescription
num_total_threadsuint32Number of total threads available.
architectureCpuArchitectureEnumThe CPU architecture - it‘s assumed all of a device’s CPUs share an
architecture.
physical_cpusarrayInformation about the device's physical CPUs.
temperature_channelsarrayInformation about the CPU temperature channels.
keylocker_infoKeylockerInfo?Information about keylocker.

C State

CpuCStateInfo
FieldTypeDescription
namestringName of the state.
time_in_state_since_last_boot_usuint64Time spent in the state since the last reboot, in microseconds.

KeyLocker

KeylockerInfo
FieldTypeDescription
keylocker_configuredboolHas Keylocker been configured or not.

Logical Core

FieldTypeDescription
(planned) CPU flags in /proc/cpuinfo
LogicalCpuInfo
FieldTypeDescription
max_clock_speed_khzuint32The max CPU clock speed in kHz.
scaling_max_frequency_khzuint32Maximum frequency the CPU is allowed to run at, by policy.
scaling_current_frequency_khzuint32Current frequency the CPU is running at.
user_time_user_hzuint64Time spent in user mode since last boot. USER_HZ can be converted to
seconds with the conversion factor given by sysconf(_SC_CLK_TCK).
system_time_user_hzuint64Time spent in system mode since last boot. USER_HZ can be converted to
seconds with the conversion factor given by sysconf(_SC_CLK_TCK).
idle_time_user_hzuint64Idle time since last boot. USER_HZ can be converted to seconds with the
conversion factor given by sysconf(_SC_CLK_TCK).
c_statesarrayInformation about the logical CPU's time in various C-states.
(planned) total_time_in_ticks (time in state since beginning)
(planned) Current Throttle% (for each logical)
(planned) Used percentage
(planned) Average Utilization percentage

Physical Core

PhysicalCpuInfo
FieldTypeDescription
model_namestring?The CPU model name, if available.
For Arm devices, we will return SoC model instead.
logical_cpusarrayLogical CPUs corresponding to this physical CPU.

Temperature

CpuTemperatureChannel
FieldTypeDescription
labelstring?Temperature channel label, if found on the device.
temperature_celsiusint32CPU temperature in Celsius.

Virtualization

FieldTypeDescription
VMXLockedInBIOS(planned) Is VMX locked by the device BIOS
VMXEnabled(planned) VMX - Intel Virtualisation is used to control certain features such as crostini. It is useful to know if it is enabled to allow us to gate or preempt issues with features like crostini.
SMTActive(planned) SMT is the AMD version of Intel hyper threading, knowing its bios status is useful for assessing security vulnerabilities
SMTControl(planned) I believe this is used to assess is the OS can control SMT
DevKVMExists(planned) This allows us to verify if a processor supports virtualisation or not.

Dell EC

BIOS Internal Log

FieldTypeDescription
(planned) Power event log - event code / timestamp
(planned) LED code log - event code / timestamp

Cable

FieldTypeDescription
(planned) Cable Name
(planned) Cable Status (installed and not installed)
(planned) Cable change history
(planned) Cable time stamp

Thermistor

FieldTypeDescription
(planned) Location
(planned) Temp
(planned) Timestamp
(planned) Thermal zone
(planned) Thermal trip
(planned) Thermal hystereis

Display

DisplayInfo
FieldTypeDescription
edp_infoEmbeddedDisplayInfoEmbedded display info.
dp_infosarray?External display info.

Embedded Display

EmbeddedDisplayInfo
FieldTypeDescription
privacy_screen_supportedboolPrivacy screen is supported or not.
privacy_screen_enabledboolPrivacy screen is enabled or not.
display_widthuint32?Display width in millimeters.
display_heightuint32?Display height in millimeters.
resolution_horizontaluint32?Horizontal resolution.
resolution_verticaluint32?Vertical resolution.
refresh_ratedouble?Refresh rate.

External Display

FieldTypeDescription
(planned) Number of Monitor
(planned) Monitor Type
(planned) Model Name
(planned) Serial
(planned) Vendor Specific Data
ExternalDisplayInfo
FieldTypeDescription
display_widthuint32?Display width in millimeters.
display_heightuint32?Display height in millimeters.
resolution_horizontaluint32?Horizontal resolution.
resolution_verticaluint32?Vertical resolution.
refresh_ratedouble?Refresh rate.

Fan

FanInfo
FieldTypeDescription
speed_rpmuint32Fan speed in RPM.

Dell

FieldTypeDescription
(planned) Fan speed in RPM. Data source: Dell EC
(planned) Fan location. Data source: Dell EC

Firmware

EFI

FieldTypeDescription
(planned) EFIFirmwareBitness. Identify if UEFI is IA32 or x86_64 as we support some 32bit UEFI devices

Graphic

GraphicsInfo
FieldTypeDescription
gles_infoGLESInfoOpenGL
egl_infoEGLInfoEGL information.

EGL

EGLInfo
FieldTypeDescription
versionstringEGL version.
vendorstringEGL vendor.
client_apistringEGL client API.
extensionsarrayEGL extensions.

GL ES

GLESInfo
FieldTypeDescription
versionstringGL version.
shading_versionstringGL shading version.
vendorstringGL vendor.
rendererstringGL renderer.
extensionsarrayGL extensions.

Input

Touchscreen

FieldTypeDescription
(planned) does the device have a touchscreen
(planned) is touchscreen usable

Lid

FieldTypeDescription
(planned) lid status. Open or Close.

Log

OS crash

FieldTypeDescription
(planned) system_crach_log (detail in confluence)

Memory

General

MemoryInfo
FieldTypeDescription
total_memory_kibuint32Total memory, in KiB.
free_memory_kibuint32Free memory, in KiB.
available_memory_kibuint32Available memory, in KiB.
page_faults_since_last_bootuint64Number of page faults since the last boot.
memory_encryption_infoMemoryEncryptionInfo?Memory Encryption info.

Memory Encryption

MemoryEncryptionInfo
FieldTypeDescription
encryption_stateEncryptionStateMemory encryption state.
max_key_numberuint32Encryption key length.
key_lengthuint32Encryption key length.
active_algorithmCryptoAlgorithmCrypto algorithm currently used.

Misc

FieldTypeDescription
(planned) Dell ePSA report
(planned) Customer name/defined

Network

Health

Network
FieldTypeDescription
typeNetworkTypeThe network interface type.
stateNetworkStateThe current status of this network. e.g. Online, Disconnected.
guidstring?The unique identifier for the network when a network service exists.
namestring?The user facing name of the network if available.
mac_addressstring?Optional string for the network's mac_address.
signal_strengthuint32?Signal strength of the network provided only for wireless networks. Values
are normalized between 0 to 100 inclusive. Values less than 30 are
considered potentially problematic for the connection. See
src/platform2/shill/doc/service-api.txt for more details.
ipv4_addressstring?Optional string for the network's ipv4_address. This is only intended to be
used for display and is not meant to be parsed.
ipv6_addressesarrayOptional list of strings for the network's ipv6_addresses. A single network
can have multiple addresses (local, global, temporary etc.). This is only
intended to be used for display and is not meant to be parsed.
portal_statePortalStateAn enum of the network's captive portal state. This information is
supplementary to the NetworkState.
signal_strength_statsSignalStrengthStats?The statistics of the signal strength for wireless networks over a 15
minute period. See SignalStrengthStats for more details.
NetworkHealthState
FieldTypeDescription
networksarrayThis is a list of networking devices and any associated connections.
Only networking technologies that are present on the device are included.
Networks will be sorted with active connections listed first.

Interface

NetworkInterfaceInfo
FieldTypeDescription
wireless_interface_infoWirelessInterfaceInfoWireless interfaces.

LAN

FieldTypeDescription
(planned) RX Bytes
(planned) TX Bytes
(planned) Interface Name
(planned) LAN Speed

WLAN

FieldTypeDescription
(planned) RX Bytes
(planned) TX Bytes
(planned) Radio On/Off

WWAN / modem

FieldTypeDescription
(planned) Manufacturer
(planned) Model
(planned) IMEI

Wifi Interface

WirelessInterfaceInfo
FieldTypeDescription
interface_namestringInterface name.
power_management_onboolIs power management enabled for wifi or not.
wireless_link_infoWirelessLinkInfo?Link info only available when device is connected to an access point.
access_point_address_strstringAccess point address.
tx_bit_rate_mbpsuint32Tx bit rate measured in Mbps.
rx_bit_rate_mbpsuint32Rx bit rate measured in Mbps.
tx_power_dBmint32Transmission power measured in dBm.
encyption_onboolIs wifi encryption key on or not.
link_qualityuint32Wifi link quality.
signal_level_dBmint32Wifi signal level in dBm.

OS

FieldTypeDescription
(planned) OS uptime
(planned) PQL (Process Queue Length)
(planned) hostname

Performance

Booting

FieldTypeDescription
(planned) Last restart time (differ from shutdown?)
BootPerformanceInfo
FieldTypeDescription
boot_up_secondsdoubleTotal time since power on to login screen prompt.
boot_up_timestampdoubleThe timestamp when power on.
shutdown_secondsdoubleTotal time(rough) since shutdown start to power off.
Only meaningful when shutdown_reason is not “N/A”.
shutdown_timestampdoubleThe timestamp when shutdown.
Only meaningful when shutdown_reason is not “N/A”.
shutdown_reasonstringThe shutdown reason (including reboot).

Storage

Device

NonRemovableBlockDeviceInfo
FieldTypeDescription
vendor_idBlockDeviceVendorDevice vendor identification.
product_idBlockDeviceProductDevice product identification.
revisionBlockDeviceRevisionDevice revision.
namestringDevice model.
sizeuint64Device size in bytes.
firmware_versionBlockDeviceFirmwareFirmware version.
typestringStorage type, could be MMC / NVMe / ATA, based on udev subsystem.
purposeStorageDevicePurposePurpose of the device e.g. “boot”, “swap”.

Device (SMART)

FieldTypeDescription
(planned) SMART - Temperature
(planned) SMART - total block read
(planned) SMART - total block write
(planned) SMART - model name
(planned) SMART - Temperature
(planned) SMART - power cycle count
(planned) SMART - power on hours
(planned) NVMe Dell Smart Attribute

IO

FieldTypeDescription
(planned) Idle time
NonRemovableBlockDeviceInfo
FieldTypeDescription
bytes_read_since_last_bootuint64Bytes read since last boot.
bytes_written_since_last_bootuint64Bytes written since last boot.
read_time_seconds_since_last_bootuint64Time spent reading since last boot.
write_time_seconds_since_last_bootuint64Time spent writing since last boot.
io_time_seconds_since_last_bootuint64Time spent doing I/O since last boot. Counts the time the disk and queue
were busy, so unlike the fields above, parallel requests are not counted
multiple times.
discard_time_seconds_since_last_bootuint64?Time spent discarding since last boot. Discarding is writing to clear
blocks which are no longer in use. Supported on kernels 4.18+.

Logical Drive

FieldTypeDescription
(planned) Name
(planned) Size_MB
(planned) Type
(planned) Freespace_MB

Others

FieldTypeDescription
(planned) ePPID (Dell exclusive data)
NonRemovableBlockDeviceInfo
FieldTypeDescription
pathstringThe path of this storage on the system. It is useful if caller needs to
correlate with other information.
manufacturer_iduint8Manufacturer ID, 8 bits.
serialuint32PSN: Product serial number, 32 bits

Partition

FieldTypeDescription
(planned) LSB size
(planned) Partition size
(planned) Partition Free Size

StatefulPartition

StatefulPartitionInfo
FieldTypeDescription
available_spaceuint64Available space for user data storage in the device in bytes.
total_spaceuint64Total space for user data storage in the device in bytes.
filesystemstringFile system on stateful partition. e.g. ext4.
mount_sourcestringSource of stateful partition. e.g. /dev/mmcblk0p1.

System

CPU

FieldTypeDescription
(planned) CPU - serial number

DMI (SMBIOS)

FieldTypeDescription
(planned) DIMM - location
(planned) DIMM - manufacturer
(planned) DIMM - part number
(planned) DIMM - serial number
(planned) BIOS Version
(planned) Chassis type/System Type
(planned) Motherboard product name
(planned) Motherboard serial number
(planned) Motherboard version
(planned) Service Tag
DmiInfo
FieldTypeDescription
bios_vendorstring?The BIOS vendor.
bios_versionstring?The BIOS version.
board_namestring?The product name of the motherboard.
board_vendorstring?The vendor of the motherboard.
board_versionstring?The version of the motherboard.
chassis_vendorstring?The vendor of the chassis.
chassis_typeuint64?The chassis type of the device. The values reported by chassis type are
mapped in
www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.0.0.pdf.
product_familystring?The product family name.
product_namestring?The product name (model) of the system.
product_versionstring?The product version.
sys_vendorstring?The system vendor name.

OS Env

FieldTypeDescription
(planned) Language locale
(planned) Display language
(planned) timezone

OS Image

FieldTypeDescription
(planned) OS Architecture (x86, x64, arm, arm64)
OsInfo
FieldTypeDescription
code_namestringGoogle code name for the given model. While it is OK to use this string for
human-display purposes (such as in a debug log or help dialog), or for a
searchable-key in metrics collection, it is not recommended to use this
property for creating model-specific behaviors.
marketing_namestring?Contents of CrosConfig in /arc/build-properties/marketing-name.
os_versionOsVersionThe OS version of the system.
boot_modeBootModeThe boot flow used by the current boot.
OsVersion
FieldTypeDescription
release_milestonestringThe OS version release milestone (e.g. “87”).
build_numberstringThe OS version build number (e.g. “13544”).
patch_numberstringThe OS version patch number (e.g. “59.0”).
release_channelstringThe OS release channel (e.g. “stable-channel”).

Time zone

TimezoneInfo
FieldTypeDescription
posixstringThe timezone of the device in POSIX standard.
regionstringThe timezone region of the device.

VPD

FieldTypeDescription
(planned) System Model
(planned) Dell product name
(planned) Asset Tag
(planned) UUID
(planned) Manufacture Date
(planned) First Power Date
(planned) SKU number
(planned) System ID
VpdInfo
FieldTypeDescription
serial_numberstring?A unique identifier of the device. (Required RO VPD field)
regionstring?Defines a market region where devices share a particular configuration of
keyboard layout, language, and timezone. (Required VPD field)
mfg_datestring?The date the device was manufactured. (Required RO VPD field)
Format: YYYY-MM-DD.
activate_datestring?The date the device was first activated. (Runtime RW VPD field)
Format: YYYY-WW.
sku_numberstring?The product SKU number. (Optional RO VPD field. b/35512367)
model_namestring?The product model name. (Optional RO VPD field. b/35512367)

TPM

TpmInfo
FieldTypeDescription
versionTpmVersionTPM version related information.
statusTpmStatusTPM status related information.
dictionary_attackTpmDictionaryAttackTPM dictionary attack (DA) related information.
attestationTpmAttestationTPM attestation related information.
supported_featuresTpmSupportedFeaturesTPM supported features information.
did_vidstring?[Do NOT use] TPM did_vid file. This field is only used in Cloudready
project. It is going to drop the support in few milestone.

Attestation

TpmAttestation
FieldTypeDescription
prepared_for_enrollmentboolIs prepared for enrollment? True if prepared for any CA.
enrolledboolIs enrolled (AIK certificate created)? True if enrolled with any CA.

Dictionary Attack

TpmDictionaryAttack
FieldTypeDescription
counteruint32The current dictionary attack counter value.
thresholduint32The current dictionary attack counter threshold.
lockout_in_effectboolWhether the TPM is in some form of dictionary attack lockout.
lockout_seconds_remaininguint32The number of seconds remaining in the lockout.

TPM Status

TpmStatus
FieldTypeDescription
enabledboolWhether a TPM is enabled on the system.
ownedboolWhether the TPM has been owned.
owner_password_is_presentboolWhether the owner password is still retained.
TpmSupportedFeatures
FieldTypeDescription
support_u2fboolWhether the u2f is supported or not.
support_pinweaverboolWhether the pinweaver is supported or not.
support_runtime_selectionboolWhether the platform supports runtime TPM selection or not.
is_allowedboolWhether the TPM is allowed to use or not.
TpmVersion
FieldTypeDescription
gsc_versionTpmGSCVersionGSC version.
familyuint32TPM family. We use the TPM 2.0 style encoding, e.g.:
* TPM 1.2: “1.2” -> 0x312e3200
* TPM 2.0: “2.0” -> 0x322e3000
spec_leveluint64TPM spec level.
manufactureruint32Manufacturer code.
tpm_modeluint32TPM model number.
firmware_versionuint64Firmware version.
vendor_specificstring?Vendor specific information.

Video

FieldTypeDescription
(planned) Video Controller name
(planned) Video RAM (Bytes)