@@ -62,6 +62,51 @@ type videoBridgeStats struct {
6262 TotalICESucceeded int `json:"total_ice_succeeded"`
6363 TotalICESucceededTCP int `json:"total_ice_succeeded_tcp"`
6464 TotalICEFailed int `json:"total_ice_failed"`
65+ EndpointsWithSuspendedSources int `json:"endpoints_with_suspended_sources"`
66+ InactiveEndpoints int `json:"inactive_endpoints"`
67+ InactiveConferences int `json:"inactive_conferences"`
68+ LocalActiveEndpoints int `json:"local_active_endpoints"`
69+ MucClientsConnected int `json:"muc_clients_connected"`
70+ LocalEndpoints int `json:"local_endpoints"`
71+ TotalPacketsReceived int `json:"total_packets_received"`
72+ PreemptiveKfrSuppressed int `json:"preemptive_kfr_suppressed"`
73+ PreemptiveKfrSent int `json:"preemptive_kfr_sent"`
74+ TotalKeyframesReceived int `json:"total_keyframes_received"`
75+ TotalDominantSpeakerChanges int `json:"total_dominant_speaker_changes"`
76+ EndpointsWithSpuriousRemb int `json:"endpoints_with_spurious_remb"`
77+ ReceiveOnlyEndpoints int `json:"receive_only_endpoints"`
78+ TotalVisitors int `json:"total_visitors"`
79+ Version string `json:"version"`
80+ Visitors int `json:"visitors"`
81+ NumEpsOversending int `json:"num_eps_oversending"`
82+ NumEpsNoMsgTransportAfterDelay int `json:"num_eps_no_msg_transport_after_delay"`
83+ Region string `json:"region"`
84+ MucClientsConfigured int `json:"muc_clients_configured"`
85+ OutgoingLoss float64 `json:"outgoing_loss"`
86+ OverallLoss float64 `json:"overall_loss"`
87+ TotalLayeringChangesReceived int `json:"total_layering_changes_received"`
88+ TotalRelays int `json:"total_relays"`
89+ EndpointsWithHighOutgoingLoss int `json:"endpoints_with_high_outgoing_loss"`
90+ Drain bool `json:"drain"`
91+ TotalVideoStreamMillisecondsReceived int `json:"total_video_stream_milliseconds_received"`
92+ ShuttingDown bool `json:"shutting_down"`
93+ CurrentTimestamp string `json:"current_timestamp"`
94+ NumRelaysNoMsgTransportAfterDelay int `json:"num_relays_no_msg_transport_after_delay"`
95+ AverageParticipantStress float64 `json:"average_participant_stress"`
96+ TotalPacketsSent int `json:"total_packets_sent"`
97+ Endpoints int `json:"endpoints"`
98+ IncomingLoss float64 `json:"incoming_loss"`
99+ EndpointsReconnected int `json:"endpoints_reconnected"`
100+ GracefulShutdown bool `json:"graceful_shutdown"`
101+ TotalBytesReceived int `json:"total_bytes_received"`
102+ EndpointsDisconnected int `json:"endpoints_disconnected"`
103+ EndpointsSendingAudio int `json:"endpoints_sending_audio"`
104+ DTLSFailedEndpoints int `json:"dtls_failed_endpoints"`
105+ TotalBytesSent int `json:"total_bytes_sent"`
106+ Healthy bool `json:"healthy"`
107+ MucsConfigured int `json:"mucs_configured"`
108+ MucsJoined int `json:"mucs_joined"`
109+ RelayID string `json:"relay_id"`
65110}
66111
67112var tpl = template .Must (template .New ("stats" ).Parse (`# HELP jitsi_threads The number of Java threads that the video bridge is using.
@@ -205,6 +250,138 @@ total_ice_succeeded_tcp {{.TotalICESucceededTCP}}
205250# HELP total_ice_failed The total number of times an ICE Agent failed to establish connectivity.
206251# TYPE total_ice_failed gauge
207252total_ice_failed {{.TotalICEFailed}}
253+ # HELP jitsi_endpoints_with_suspended_sources Number of endpoints that we have suspended sending some video streams to because of bwe.
254+ # TYPE jitsi_endpoints_with_suspended_sources gauge
255+ jitsi_endpoints_with_suspended_sources {{.EndpointsWithSuspendedSources}}
256+ # HELP jitsi_inactive_endpoints Number of endpoints in inactive conferences (where no endpoint sends audio or video).
257+ # TYPE jitsi_inactive_endpoints gauge
258+ jitsi_inactive_endpoints {{.InactiveEndpoints}}
259+ # HELP jitsi_inactive_conferences Number of inactive conferences (no endpoint is sending audio or video).
260+ # TYPE jitsi_inactive_conferences gauge
261+ jitsi_inactive_conferences {{.InactiveConferences}}
262+ # HELP jitsi_local_active_endpoints The number of active local endpoints (in a conference where at least one endpoint sends audio or video).
263+ # TYPE jitsi_local_active_endpoints gauge
264+ jitsi_local_active_endpoints {{.LocalActiveEndpoints}}
265+ # HELP jitsi_muc_clients_connected The current number of connected XMPP MUC clients.
266+ # TYPE jitsi_muc_clients_connected gauge
267+ jitsi_muc_clients_connected {{.MucClientsConnected}}
268+ # HELP jitsi_local_endpoints The current number of local non-OCTO endpoints.
269+ # TYPE jitsi_local_endpoints gauge
270+ jitsi_local_endpoints {{.LocalEndpoints}}
271+ # HELP jitsi_total_packets_received The total number of RTP packets received.
272+ # TYPE jitsi_total_packets_received gauge
273+ jitsi_total_packets_received {{.TotalPacketsReceived}}
274+ # HELP jitsi_preemptive_kfr_suppressed The total number of preemptive keyframe requests suppressed.
275+ # TYPE jitsi_preemptive_kfr_suppressed gauge
276+ jitsi_preemptive_kfr_suppressed {{.PreemptiveKfrSuppressed}}
277+ # HELP jitsi_preemptive_kfr_sent The total number of preemptive keyframe requests sent.
278+ # TYPE jitsi_preemptive_kfr_sent gauge
279+ jitsi_preemptive_kfr_sent {{.PreemptiveKfrSent}}
280+ # HELP jitsi_total_keyframes_received The total number of keyframes received.
281+ # TYPE jitsi_total_keyframes_received gauge
282+ jitsi_total_keyframes_received {{.TotalKeyframesReceived}}
283+ # HELP jitsi_total_dominant_speaker_changes The total number of dominant speaker changes.
284+ # TYPE jitsi_total_dominant_speaker_changes gauge
285+ jitsi_total_dominant_speaker_changes {{.TotalDominantSpeakerChanges}}
286+ # HELP jitsi_endpoints_with_spurious_remb Number of endpoints that have sent a REMB packet even though REMB was not configured.
287+ # TYPE jitsi_endpoints_with_spurious_remb gauge
288+ jitsi_endpoints_with_spurious_remb {{.EndpointsWithSpuriousRemb}}
289+ # HELP jitsi_receive_only_endpoints Number of endpoints that are not sending audio or video (but are receiving).
290+ # TYPE jitsi_receive_only_endpoints gauge
291+ jitsi_receive_only_endpoints {{.ReceiveOnlyEndpoints}}
292+ # HELP jitsi_total_visitors The total number of visitors since startup.
293+ # TYPE jitsi_total_visitors gauge
294+ jitsi_total_visitors {{.TotalVisitors}}
295+ # HELP jitsi_visitors The current number of visitors.
296+ # TYPE jitsi_visitors gauge
297+ jitsi_visitors {{.Visitors}}
298+ # HELP jitsi_num_eps_oversending Number of endpoints that we are oversending to.
299+ # TYPE jitsi_num_eps_oversending gauge
300+ jitsi_num_eps_oversending {{.NumEpsOversending}}
301+ # HELP jitsi_num_eps_no_msg_transport_after_delay The current number of endpoints with no message transport after delay.
302+ # TYPE jitsi_num_eps_no_msg_transport_after_delay gauge
303+ jitsi_num_eps_no_msg_transport_after_delay {{.NumEpsNoMsgTransportAfterDelay}}
304+ # HELP jitsi_muc_clients_configured The number of configured XMPP MUC clients.
305+ # TYPE jitsi_muc_clients_configured gauge
306+ jitsi_muc_clients_configured {{.MucClientsConfigured}}
307+ # HELP jitsi_outgoing_loss Fraction of outgoing RTP packets that are lost.
308+ # TYPE jitsi_outgoing_loss gauge
309+ jitsi_outgoing_loss {{.OutgoingLoss}}
310+ # HELP jitsi_overall_loss Fraction of RTP packets that are lost (incoming and outgoing combined).
311+ # TYPE jitsi_overall_loss gauge
312+ jitsi_overall_loss {{.OverallLoss}}
313+ # HELP jitsi_total_layering_changes_received The total number of layering changes received.
314+ # TYPE jitsi_total_layering_changes_received gauge
315+ jitsi_total_layering_changes_received {{.TotalLayeringChangesReceived}}
316+ # HELP jitsi_total_relays The total number of relays connected by this bridge.
317+ # TYPE jitsi_total_relays gauge
318+ jitsi_total_relays {{.TotalRelays}}
319+ # HELP jitsi_endpoints_with_high_outgoing_loss Number of endpoints that have high outgoing loss (>10%).
320+ # TYPE jitsi_endpoints_with_high_outgoing_loss gauge
321+ jitsi_endpoints_with_high_outgoing_loss {{.EndpointsWithHighOutgoingLoss}}
322+ # HELP jitsi_drain Whether the bridge is draining and should avoid new conference allocation.
323+ # TYPE jitsi_drain gauge
324+ jitsi_drain {{if .Drain}}1{{else}}0{{end}}
325+ # HELP jitsi_total_video_stream_milliseconds_received The total video stream milliseconds received.
326+ # TYPE jitsi_total_video_stream_milliseconds_received gauge
327+ jitsi_total_video_stream_milliseconds_received {{.TotalVideoStreamMillisecondsReceived}}
328+ # HELP jitsi_shutting_down Whether jitsi-videobridge is shutting down.
329+ # TYPE jitsi_shutting_down gauge
330+ jitsi_shutting_down {{if .ShuttingDown}}1{{else}}0{{end}}
331+ # HELP jitsi_num_relays_no_msg_transport_after_delay The current number of relays with no message transport after delay.
332+ # TYPE jitsi_num_relays_no_msg_transport_after_delay gauge
333+ jitsi_num_relays_no_msg_transport_after_delay {{.NumRelaysNoMsgTransportAfterDelay}}
334+ # HELP jitsi_average_participant_stress Average participant stress reported by the bridge.
335+ # TYPE jitsi_average_participant_stress gauge
336+ jitsi_average_participant_stress {{.AverageParticipantStress}}
337+ # HELP jitsi_total_packets_sent The total number of RTP packets sent.
338+ # TYPE jitsi_total_packets_sent gauge
339+ jitsi_total_packets_sent {{.TotalPacketsSent}}
340+ # HELP jitsi_endpoints Number of current endpoints (local and relayed).
341+ # TYPE jitsi_endpoints gauge
342+ jitsi_endpoints {{.Endpoints}}
343+ # HELP jitsi_incoming_loss Fraction of incoming RTP packets that are lost.
344+ # TYPE jitsi_incoming_loss gauge
345+ jitsi_incoming_loss {{.IncomingLoss}}
346+ # HELP jitsi_endpoints_reconnected The total number of endpoints that reconnected.
347+ # TYPE jitsi_endpoints_reconnected gauge
348+ jitsi_endpoints_reconnected {{.EndpointsReconnected}}
349+ # HELP jitsi_graceful_shutdown Whether jitsi-videobridge is in graceful shutdown mode.
350+ # TYPE jitsi_graceful_shutdown gauge
351+ jitsi_graceful_shutdown {{if .GracefulShutdown}}1{{else}}0{{end}}
352+ # HELP jitsi_total_bytes_received The total number of RTP bytes received.
353+ # TYPE jitsi_total_bytes_received gauge
354+ jitsi_total_bytes_received {{.TotalBytesReceived}}
355+ # HELP jitsi_endpoints_disconnected The total number of endpoints that disconnected.
356+ # TYPE jitsi_endpoints_disconnected gauge
357+ jitsi_endpoints_disconnected {{.EndpointsDisconnected}}
358+ # HELP jitsi_endpoints_sending_audio The number of local endpoints sending audio.
359+ # TYPE jitsi_endpoints_sending_audio gauge
360+ jitsi_endpoints_sending_audio {{.EndpointsSendingAudio}}
361+ # HELP jitsi_dtls_failed_endpoints The total number of endpoints that failed to establish DTLS.
362+ # TYPE jitsi_dtls_failed_endpoints gauge
363+ jitsi_dtls_failed_endpoints {{.DTLSFailedEndpoints}}
364+ # HELP jitsi_total_bytes_sent The total number of RTP bytes sent.
365+ # TYPE jitsi_total_bytes_sent gauge
366+ jitsi_total_bytes_sent {{.TotalBytesSent}}
367+ # HELP jitsi_healthy Whether this bridge currently reports itself as healthy.
368+ # TYPE jitsi_healthy gauge
369+ jitsi_healthy {{if .Healthy}}1{{else}}0{{end}}
370+ # HELP jitsi_mucs_configured The number of configured MUCs.
371+ # TYPE jitsi_mucs_configured gauge
372+ jitsi_mucs_configured {{.MucsConfigured}}
373+ # HELP jitsi_mucs_joined The number of joined MUCs.
374+ # TYPE jitsi_mucs_joined gauge
375+ jitsi_mucs_joined {{.MucsJoined}}
376+ # HELP jitsi_version_info Jitsi Videobridge version information.
377+ # TYPE jitsi_version_info gauge
378+ jitsi_version_info{version="{{.Version}}"} 1
379+ # HELP jitsi_region_info Configured bridge region information.
380+ # TYPE jitsi_region_info gauge
381+ jitsi_region_info{region="{{.Region}}"} 1
382+ # HELP jitsi_relay_id_info Relay identifier information.
383+ # TYPE jitsi_relay_id_info gauge
384+ jitsi_relay_id_info{relay_id="{{.RelayID}}"} 1
208385# HELP jitsi_conference_sizes Distribution of conference sizes
209386# TYPE jitsi_conference_sizes gauge
210387{{ range $key, $value := .ConferenceSizes -}}
@@ -250,4 +427,4 @@ func main() {
250427 }
251428
252429 log .Println ("Started Jitsi Meet Metrics Exporter" )
253- }
430+ }
0 commit comments