Skip to content

Commit 39f3e90

Browse files
authored
Merge pull request #184 from savely-krasovsky/main
feat: add missing metrics
2 parents c8f6bbb + bc4abfb commit 39f3e90

File tree

2 files changed

+801
-2
lines changed

2 files changed

+801
-2
lines changed

main.go

Lines changed: 178 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

67112
var 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
207252
total_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

Comments
 (0)