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
On this page4 sections
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
- 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.