WebRTC Metrics

A comprehensive overview of WebRTC statistics, derived calculations, extracted features, and observable signals, to better understand call quality, connectivity, and user experience in rtcStats

Back
On this page4 sections
clientenumeratedevicesdevicespermissions

enumerateDevices (feature)

Last updated Applies tortcstats-serverrtcstats.com

Client-level feature counting how often the session enumerated media devices.

Description

Client-level feature, extracted per session into features_client.

enumerateDevicesCount records how many times navigator.mediaDevices.enumerateDevices() was called during the session. rtcstats-server derives it from the client trace.

Why it matters

A session that calls enumerateDevices a handful of times is normal: the app lists cameras and microphones for a device picker, then relists when the user opens settings. A count that runs into the dozens usually means something is off. It can be a device picker stuck in a re-render loop, a retry path hammering enumeration while it waits on a permission that never resolves, or code probing repeatedly for a device that is not there. Because the count is captured per session, an unusually high value is a cheap flag for that churn, and a population shift in the average often lines up with a UI change on the device-selection screen.

SQL example

Sessions with an unusually high enumeration count, last 7 days:

SELECT
  server.id,
  client.enumerate_devices_count
FROM "rtcstats-server" AS server
JOIN features_metadata AS metadata ON metadata.dump_id = server.id
JOIN features_client   AS client   ON client.dump_id   = metadata.id
WHERE server.created_at > NOW() - INTERVAL '7 days'
  AND client.enumerate_devices_count > 20
ORDER BY client.enumerate_devices_count DESC;

See also