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
enumerateDevices (feature)
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
- rtcstats-server feature extraction - the full feature reference. These features are extracted by rtcstats-server and live in the open-source
rtcstats-featurespackage. - How to query rtcstats-server features - more SQL recipes.