Skip to content

Updating to v0.35.0

Updating to OpenTalk Controller v0.35.0

Signaling metrics are provided by the roomserver

Before v0.34.0, the OpenTalk controller ran signaling in-process and exposed signaling_* metrics on its own /metrics endpoint. v0.34.0 removed the built-in signaling in favor of the RoomServer, and those metrics disappeared from the controller's endpoint. Starting with v0.35.0, the equivalent metrics are emitted by the roomserver and are observable again, but the endpoint that serves them and the set of metric names have changed.

Where to scrape

roomserver.kind Scrape target for signaling metrics
internal The controller's /metrics endpoint (unchanged host/port).
external The roomserver's /metrics endpoint (separate process, default port 11412). The roomserver's own [metrics] allowlist must include your Prometheus host; by default the endpoint refuses all connections.

Metric mapping

The otel_scope_name label on the signaling metrics changes value from ot-controller to ot-roomserver.

Old metric (pre-v0.34.0) Replacement Notes
signaling_created_rooms_count signaling_created_rooms_count Breakout rooms are now counted separately by signaling_created_breakout_rooms_count.
signaling_destroyed_rooms_count signaling_destroyed_rooms_count Breakout rooms are now counted separately by signaling_destroyed_breakout_rooms_count.
signaling_participants_count signaling_connection_count Renamed "participants" to "connections". The participation_kind label gains the values recorder, transcription, call_in, and registered_call_in.
signaling_participants_per_room signaling_connections_per_room Implemented as a set of gauges keyed by a bucket label (2, 10, 25, 50, 100, 200, 300), not a histogram. Queries using histogram_quantile no longer apply.
signaling_room_life_time signaling_room_life_time Bucket boundaries come from the roomserver; re-tune alert thresholds if you had customized them.
signaling_participant_meeting_time signaling_connection_meeting_time Renamed. Bucket boundaries come from the roomserver.
signaling_runner_startup_time_seconds removed The in-process runner no longer exists.
signaling_runner_destroy_time_seconds removed The in-process runner no longer exists.

signaling_participants_with_audio_count and signaling_participants_with_video_count were defined on the old signaling metrics but had no emitters after the Janus Media Server was removed in v0.26.0; they are gone with the rest of the old signaling metrics and have no replacement.

The following metrics are new and have no pre-v0.34.0 equivalent:

Metric Type Description
signaling_created_breakout_rooms_count counter Number of breakout rooms created. Previously folded into signaling_created_rooms_count; now tracked separately.
signaling_destroyed_breakout_rooms_count counter Number of breakout rooms destroyed. Previously folded into signaling_destroyed_rooms_count; now tracked separately.
signaling_congested_connections counter Number of connections the roomserver disconnected due to congestion. Useful as an indicator of client- or network-side backpressure.

See the metrics documentation for the full list of metrics currently exposed by the controller.

RoomServer upgraded to 0.10

v0.35.0 upgrades the bundled RoomServer components to 0.10. This is an internal change and does not require any changes to your controller.toml: the [roomserver] and [roomserver.modules.*] configuration is unchanged from v0.34.x.

If you run an external roomserver (roomserver.kind = "external"), you must upgrade that roomserver deployment to a 0.10-compatible build together with the controller. Running a mismatched roomserver version against a v0.35.0 controller is not supported. When the roomserver runs embedded (roomserver.kind = "internal"), no separate action is needed.

New optional room alias configuration

v0.35.0 adds optional room aliases. Their behavior can be tuned with the new [defaults.room_alias] section. The section is optional and existing configurations keep working unchanged with secure defaults.

[defaults.room_alias]
# When `true`, rooms with an alias will not have a suffix appended to their
# name. This makes the rooms vulnerable to brute-force attacks and is therefore
# considered insecure when untrusted people can reach your OpenTalk instance;
# only enable it in trusted environments.
disable_suffix = false
# The number of characters of the random suffix appended to an aliased room
# name. Only relevant when `disable_suffix` is `false`. Allowed values are
# between 8 and 64, inclusive; the default is 16. Short suffixes are vulnerable
# to brute-force attacks, so a length of at least 16 is recommended.
suffix_length = 16

If you set suffix_length outside the allowed range of 8 to 64, the controller refuses to start with an InvalidRoomAliasSuffixLength error.