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
Configured ICE servers (feature)
Connection-level features recording the STUN/TURN servers and transport policy the application configured on each RTCPeerConnection.
Description
Connection-level features, extracted per RTCPeerConnection into features_connection.
These features capture what the application configured in RTCConfiguration.iceServers, read from the create event, so they reflect intent rather than outcome:
configuredIceServers- number of entries iniceServers.configuredIceTransportPolicy- whethericeTransportPolicy === 'relay'(forced relay).configuredIceServersStun- at least onestun:URL was configured.configuredIceServersTurns- at least oneturns:(TLS) URL was configured.configuredIceServersTurnUdp/configuredIceServersTurnTcp- at least oneturn:URL withtransport=udp/transport=tcp.
Extracted by the open-source rtcstats-features package.
Why it matters
These features let you audit your own ICE configuration at scale, across every real session, not just what you think you shipped. Did a config change actually roll out? Are some clients missing TURN entirely (configuredIceServersTurns = false where you expected it)? Is iceTransportPolicy = relay forced somewhere it shouldn't be, inflating your TURN bill? Paired with the selected candidate pair, you can compare what was offered against what was actually used.
Common values
configuredIceServers: usually 1 to 3 (a STUN and one or two TURN entries).configuredIceTransportPolicy:falsefor normal calls;trueonly where you deliberately force relay.- The STUN/TURN booleans should match your intended configuration for the client population.
SQL example
How many connections were configured with any TURN server:
SELECT
COUNT(*) FILTER (
WHERE connection.configured_ice_servers_turn_udp
OR connection.configured_ice_servers_turn_tcp
OR connection.configured_ice_servers_turns
) AS with_turn,
COUNT(*) AS total
FROM features_connection AS connection;
Related features
- Selected candidate pair - what path was actually used, vs what was configured here.
- Connection setup time - whether ICE connected with this configuration, and how long it took.
See also
- rtcstats-server feature extraction - the full feature reference.
- How to query rtcstats-server features - SQL recipes.
- MDN: RTCConfiguration->iceServers