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.