metrics: add labels to the output (#5687)
group metrics under visible, distinct labels.
This commit is contained in:
+70
-217
@@ -75,22 +75,35 @@ func TestMetrics(t *testing.T) {
|
||||
t.Run("initial", func(t *testing.T) {
|
||||
bo := httpPullFile(t, hc, "http://localhost:9998/metrics")
|
||||
|
||||
require.Equal(t, `paths 0
|
||||
require.Equal(t, `# Paths
|
||||
paths 0
|
||||
paths_inbound_bytes 0
|
||||
paths_outbound_bytes 0
|
||||
paths_inbound_frames_in_error 0
|
||||
|
||||
# Paths (deprecated)
|
||||
paths_bytes_received 0
|
||||
paths_bytes_sent 0
|
||||
paths_readers 0
|
||||
|
||||
# HLS muxers
|
||||
hls_muxers 0
|
||||
hls_muxers_outbound_bytes 0
|
||||
hls_muxers_outbound_frames_discarded 0
|
||||
|
||||
# HLS muxers (deprecated)
|
||||
hls_muxers_bytes_sent 0
|
||||
|
||||
# RTSP connections
|
||||
rtsp_conns 0
|
||||
rtsp_conns_inbound_bytes 0
|
||||
rtsp_conns_outbound_bytes 0
|
||||
|
||||
# RTSP connections (deprecated)
|
||||
rtsp_conns_bytes_received 0
|
||||
rtsp_conns_bytes_sent 0
|
||||
|
||||
# RTSP sessions
|
||||
rtsp_sessions 0
|
||||
rtsp_sessions_inbound_bytes 0
|
||||
rtsp_sessions_inbound_rtp_packets 0
|
||||
@@ -104,6 +117,8 @@ rtsp_sessions_outbound_rtp_packets 0
|
||||
rtsp_sessions_outbound_rtp_packets_reported_lost 0
|
||||
rtsp_sessions_outbound_rtp_packets_discarded 0
|
||||
rtsp_sessions_outbound_rtcp_packets 0
|
||||
|
||||
# RTSP sessions (deprecated)
|
||||
rtsp_sessions_bytes_received 0
|
||||
rtsp_sessions_bytes_sent 0
|
||||
rtsp_sessions_rtp_packets_received 0
|
||||
@@ -114,11 +129,17 @@ rtsp_sessions_rtp_packets_jitter 0
|
||||
rtsp_sessions_rtcp_packets_received 0
|
||||
rtsp_sessions_rtcp_packets_sent 0
|
||||
rtsp_sessions_rtcp_packets_in_error 0
|
||||
|
||||
# RTSPS connections
|
||||
rtsps_conns 0
|
||||
rtsps_conns_inbound_bytes 0
|
||||
rtsps_conns_outbound_bytes 0
|
||||
|
||||
# RTSPS connections (deprecated)
|
||||
rtsps_conns_bytes_received 0
|
||||
rtsps_conns_bytes_sent 0
|
||||
|
||||
# RTSPS sessions
|
||||
rtsps_sessions 0
|
||||
rtsps_sessions_inbound_bytes 0
|
||||
rtsps_sessions_inbound_rtp_packets 0
|
||||
@@ -132,6 +153,8 @@ rtsps_sessions_outbound_rtp_packets 0
|
||||
rtsps_sessions_outbound_rtp_packets_reported_lost 0
|
||||
rtsps_sessions_outbound_rtp_packets_discarded 0
|
||||
rtsps_sessions_outbound_rtcp_packets 0
|
||||
|
||||
# RTSPS sessions (deprecated)
|
||||
rtsps_sessions_bytes_received 0
|
||||
rtsps_sessions_bytes_sent 0
|
||||
rtsps_sessions_rtp_packets_received 0
|
||||
@@ -142,18 +165,28 @@ rtsps_sessions_rtp_packets_jitter 0
|
||||
rtsps_sessions_rtcp_packets_received 0
|
||||
rtsps_sessions_rtcp_packets_sent 0
|
||||
rtsps_sessions_rtcp_packets_in_error 0
|
||||
|
||||
# RTMP connections
|
||||
rtmp_conns 0
|
||||
rtmp_conns_inbound_bytes 0
|
||||
rtmp_conns_outbound_bytes 0
|
||||
rtmp_conns_outbound_frames_discarded 0
|
||||
|
||||
# RTMP connections (deprecated)
|
||||
rtmp_conns_bytes_received 0
|
||||
rtmp_conns_bytes_sent 0
|
||||
|
||||
# RTMPS connections
|
||||
rtmps_conns 0
|
||||
rtmps_conns_inbound_bytes 0
|
||||
rtmps_conns_outbound_bytes 0
|
||||
rtmps_conns_outbound_frames_discarded 0
|
||||
|
||||
# RTMPS connections (deprecated)
|
||||
rtmps_conns_bytes_received 0
|
||||
rtmps_conns_bytes_sent 0
|
||||
|
||||
# SRT connections
|
||||
srt_conns 0
|
||||
srt_conns_packets_sent 0
|
||||
srt_conns_packets_received 0
|
||||
@@ -209,6 +242,8 @@ srt_conns_packets_received_avg_belated_time 0
|
||||
srt_conns_packets_send_loss_rate 0
|
||||
srt_conns_packets_received_loss_rate 0
|
||||
srt_conns_outbound_frames_discarded 0
|
||||
|
||||
# WebRTC sessions
|
||||
webrtc_sessions 0
|
||||
webrtc_sessions_inbound_bytes 0
|
||||
webrtc_sessions_inbound_rtp_packets 0
|
||||
@@ -219,6 +254,8 @@ webrtc_sessions_outbound_bytes 0
|
||||
webrtc_sessions_outbound_rtp_packets 0
|
||||
webrtc_sessions_outbound_rtcp_packets 0
|
||||
webrtc_sessions_outbound_frames_discarded 0
|
||||
|
||||
# WebRTC sessions (deprecated)
|
||||
webrtc_sessions_bytes_received 0
|
||||
webrtc_sessions_bytes_sent 0
|
||||
webrtc_sessions_rtp_packets_received 0
|
||||
@@ -227,6 +264,7 @@ webrtc_sessions_rtp_packets_lost 0
|
||||
webrtc_sessions_rtp_packets_jitter 0
|
||||
webrtc_sessions_rtcp_packets_received 0
|
||||
webrtc_sessions_rtcp_packets_sent 0
|
||||
|
||||
`, string(bo))
|
||||
})
|
||||
|
||||
@@ -408,220 +446,31 @@ webrtc_sessions_rtcp_packets_sent 0
|
||||
|
||||
bo := httpPullFile(t, hc, "http://localhost:9998/metrics")
|
||||
|
||||
require.Regexp(t,
|
||||
`^paths\{name=".*?",state="ready"\} 1`+"\n"+
|
||||
`paths_inbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_outbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_inbound_frames_in_error\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_received\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_sent\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_readers\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths\{name=".*?",state="ready"\} 1`+"\n"+
|
||||
`paths_inbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_outbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_inbound_frames_in_error\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_received\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_sent\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_readers\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths\{name=".*?",state="ready"\} 1`+"\n"+
|
||||
`paths_inbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_outbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_inbound_frames_in_error\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_received\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_sent\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_readers\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths\{name=".*?",state="ready"\} 1`+"\n"+
|
||||
`paths_inbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_outbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_inbound_frames_in_error\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_received\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_sent\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_readers\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths\{name=".*?",state="ready"\} 1`+"\n"+
|
||||
`paths_inbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_outbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_inbound_frames_in_error\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_received\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_sent\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_readers\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths\{name=".*?",state="ready"\} 1`+"\n"+
|
||||
`paths_inbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_outbound_bytes\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_inbound_frames_in_error\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_received\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_bytes_sent\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`paths_readers\{name=".*?",state="ready"\} [0-9]+`+"\n"+
|
||||
`hls_muxers\{name=".*?"\} 1`+"\n"+
|
||||
`hls_muxers_outbound_bytes\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_outbound_frames_discarded\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_bytes_sent\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers\{name=".*?"\} 1`+"\n"+
|
||||
`hls_muxers_outbound_bytes\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_outbound_frames_discarded\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_bytes_sent\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers\{name=".*?"\} 1`+"\n"+
|
||||
`hls_muxers_outbound_bytes\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_outbound_frames_discarded\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_bytes_sent\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers\{name=".*?"\} 1`+"\n"+
|
||||
`hls_muxers_outbound_bytes\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_outbound_frames_discarded\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_bytes_sent\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers\{name=".*?"\} 1`+"\n"+
|
||||
`hls_muxers_outbound_bytes\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_outbound_frames_discarded\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_bytes_sent\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers\{name=".*?"\} 1`+"\n"+
|
||||
`hls_muxers_outbound_bytes\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_outbound_frames_discarded\{name=".*?"\} 0`+"\n"+
|
||||
`hls_muxers_bytes_sent\{name=".*?"\} 0`+"\n"+
|
||||
`rtsp_conns\{id=".*?"\} 1`+"\n"+
|
||||
`rtsp_conns_inbound_bytes\{id=".*?"\} [0-9]+`+"\n"+
|
||||
`rtsp_conns_outbound_bytes\{id=".*?"\} [0-9]+`+"\n"+
|
||||
`rtsp_conns_bytes_received\{id=".*?"\} [0-9]+`+"\n"+
|
||||
`rtsp_conns_bytes_sent\{id=".*?"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} 1`+"\n"+
|
||||
`rtsp_sessions_inbound_bytes\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_inbound_rtp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_inbound_rtp_packets_lost\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_inbound_rtp_packets_in_error\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_inbound_rtp_packets_jitter\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_inbound_rtcp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_inbound_rtcp_packets_in_error\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_outbound_bytes\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_outbound_rtp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_outbound_rtp_packets_reported_lost\{id=".*?",path=".*?",`+
|
||||
`remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_outbound_rtp_packets_discarded\{id=".*?",path=".*?",`+
|
||||
`remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_outbound_rtcp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_bytes_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} 0`+"\n"+
|
||||
`rtsp_sessions_bytes_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_rtp_packets_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_rtp_packets_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_rtp_packets_lost\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_rtp_packets_in_error\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_rtp_packets_jitter\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_rtcp_packets_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_rtcp_packets_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsp_sessions_rtcp_packets_in_error\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_conns\{id=".*?"\} 1`+"\n"+
|
||||
`rtsps_conns_inbound_bytes\{id=".*?"\} [0-9]+`+"\n"+
|
||||
`rtsps_conns_outbound_bytes\{id=".*?"\} [0-9]+`+"\n"+
|
||||
`rtsps_conns_bytes_received\{id=".*?"\} [0-9]+`+"\n"+
|
||||
`rtsps_conns_bytes_sent\{id=".*?"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} 1`+"\n"+
|
||||
`rtsps_sessions_inbound_bytes\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_inbound_rtp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_inbound_rtp_packets_lost\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_inbound_rtp_packets_in_error\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_inbound_rtp_packets_jitter\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_inbound_rtcp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_inbound_rtcp_packets_in_error\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_outbound_bytes\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_outbound_rtp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_outbound_rtp_packets_reported_lost\{id=".*?",path=".*?",`+
|
||||
`remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_outbound_rtp_packets_discarded\{id=".*?",path=".*?",`+
|
||||
`remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_outbound_rtcp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_bytes_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} 0`+"\n"+
|
||||
`rtsps_sessions_bytes_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_rtp_packets_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_rtp_packets_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_rtp_packets_lost\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_rtp_packets_in_error\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_rtp_packets_jitter\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_rtcp_packets_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_rtcp_packets_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtsps_sessions_rtcp_packets_in_error\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtmp_conns\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} 1`+"\n"+
|
||||
`rtmp_conns_inbound_bytes\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtmp_conns_outbound_bytes\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtmp_conns_outbound_frames_discarded\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtmp_conns_bytes_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtmp_conns_bytes_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtmps_conns\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} 1`+"\n"+
|
||||
`rtmps_conns_inbound_bytes\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtmps_conns_outbound_bytes\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtmps_conns_outbound_frames_discarded\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtmps_conns_bytes_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`rtmps_conns_bytes_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} 1`+"\n"+
|
||||
`srt_conns_packets_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_sent_unique\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_unique\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} 1`+"\n"+
|
||||
`srt_conns_packets_send_loss\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_loss\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_retrans\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_retrans\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_sent_ack\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_ack\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_sent_nak\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_nak\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_sent_km\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_km\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_us_snd_duration\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_belated\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_send_drop\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_drop\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_undecrypt\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} 0`+"\n"+
|
||||
`srt_conns_bytes_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_sent_unique\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_received_unique\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_received_loss\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_retrans\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_received_retrans\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_received_belated\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_send_drop\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_received_drop\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_received_undecrypt\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_us_packets_send_period\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} \d+\.\d+`+"\n"+
|
||||
`srt_conns_packets_flow_window\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_flight_size\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_ms_rtt\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} \d+\.\d+`+"\n"+
|
||||
`srt_conns_mbps_send_rate\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_mbps_receive_rate\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_mbps_link_capacity\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_avail_send_buf\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_avail_receive_buf\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_mbps_max_bw\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} -1`+"\n"+
|
||||
`srt_conns_bytes_mss\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_send_buf\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_send_buf\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_ms_send_buf\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_ms_send_tsb_pd_delay\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_receive_buf\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_bytes_receive_buf\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_ms_receive_buf\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_ms_receive_tsb_pd_delay\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_reorder_tolerance\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_avg_belated_time\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_send_loss_rate\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_packets_received_loss_rate\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`srt_conns_outbound_frames_discarded\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} 1`+"\n"+
|
||||
`webrtc_sessions_inbound_bytes\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_inbound_rtp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_inbound_rtp_packets_lost\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_inbound_rtp_packets_jitter\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_inbound_rtcp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_outbound_bytes\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_outbound_rtp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_outbound_rtcp_packets\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_outbound_frames_discarded\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_bytes_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_bytes_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_rtp_packets_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_rtp_packets_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_rtp_packets_lost\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_rtp_packets_jitter\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_rtcp_packets_received\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
`webrtc_sessions_rtcp_packets_sent\{id=".*?",path=".*?",remoteAddr=".*?",state="publish"\} [0-9]+`+"\n"+
|
||||
"$",
|
||||
string(bo))
|
||||
boStr := string(bo)
|
||||
require.Contains(t, boStr, "paths{name=\"rtmp_path\",state=\"ready\"} 1\n")
|
||||
require.Contains(t, boStr, "paths{name=\"rtmps_path\",state=\"ready\"} 1\n")
|
||||
require.Contains(t, boStr, "paths{name=\"rtsp_path\",state=\"ready\"} 1\n")
|
||||
require.Contains(t, boStr, "paths{name=\"rtsps_path\",state=\"ready\"} 1\n")
|
||||
require.Contains(t, boStr, "paths{name=\"srt_path\",state=\"ready\"} 1\n")
|
||||
require.Contains(t, boStr, "paths{name=\"webrtc_path\",state=\"ready\"} 1\n")
|
||||
require.Contains(t, boStr, "hls_muxers{name=\"rtmp_path\"} 1\n")
|
||||
require.Contains(t, boStr, "hls_muxers{name=\"rtmps_path\"} 1\n")
|
||||
require.Contains(t, boStr, "hls_muxers{name=\"rtsp_path\"} 1\n")
|
||||
require.Contains(t, boStr, "hls_muxers{name=\"rtsps_path\"} 1\n")
|
||||
require.Contains(t, boStr, "hls_muxers{name=\"srt_path\"} 1\n")
|
||||
require.Contains(t, boStr, "hls_muxers{name=\"webrtc_path\"} 1\n")
|
||||
require.Regexp(t, `(?m)^rtsp_conns\{id=".*?"\} 1$`, boStr)
|
||||
require.Regexp(t, `(?m)^rtsp_sessions\{id=".*?",path="rtsp_path",remoteAddr=".*?",state="publish"\} 1$`, boStr)
|
||||
require.Regexp(t, `(?m)^rtsps_conns\{id=".*?"\} 1$`, boStr)
|
||||
require.Regexp(t, `(?m)^rtsps_sessions\{id=".*?",path="rtsps_path",remoteAddr=".*?",state="publish"\} 1$`, boStr)
|
||||
require.Regexp(t, `(?m)^rtmp_conns\{id=".*?",path="rtmp_path",remoteAddr=".*?",state="publish"\} 1$`, boStr)
|
||||
require.Regexp(t, `(?m)^rtmps_conns\{id=".*?",path="rtmps_path",remoteAddr=".*?",state="publish"\} 1$`, boStr)
|
||||
require.Regexp(t, `(?m)^srt_conns\{id=".*?",path="srt_path",remoteAddr=".*?",state="publish"\} 1$`, boStr)
|
||||
require.Regexp(t, `(?m)^srt_conns_ms_rtt\{id=".*?",path="srt_path",`+
|
||||
`remoteAddr=".*?",state="publish"\} [0-9.]+$`, boStr)
|
||||
require.Regexp(t, `(?m)^webrtc_sessions\{id=".*?",path="webrtc_path",remoteAddr=".*?",state="publish"\} 1$`, boStr)
|
||||
require.Regexp(t, `(?m)^webrtc_sessions_rtcp_packets_received\{id=".*?",path="webrtc_path",`+
|
||||
`remoteAddr=".*?",state="publish"\} [0-9]+$`, boStr)
|
||||
|
||||
close(terminate)
|
||||
wg.Wait()
|
||||
@@ -640,13 +489,17 @@ webrtc_sessions_rtcp_packets_sent 0
|
||||
|
||||
bo := httpPullFile(t, hc, "http://localhost:9998/metrics")
|
||||
|
||||
require.Equal(t, "paths 0\n"+
|
||||
require.Equal(t, "# Paths\n"+
|
||||
"paths 0\n"+
|
||||
"paths_inbound_bytes 0\n"+
|
||||
"paths_outbound_bytes 0\n"+
|
||||
"paths_inbound_frames_in_error 0\n"+
|
||||
"\n"+
|
||||
"# Paths (deprecated)\n"+
|
||||
"paths_bytes_received 0\n"+
|
||||
"paths_bytes_sent 0\n"+
|
||||
"paths_readers 0\n",
|
||||
"paths_readers 0\n"+
|
||||
"\n",
|
||||
string(bo))
|
||||
})
|
||||
}
|
||||
|
||||
+124
-38
@@ -239,52 +239,70 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
"name": i.Name,
|
||||
"state": state,
|
||||
})
|
||||
|
||||
out.WriteString("# Paths\n")
|
||||
metric(&out, "paths", ta, 1)
|
||||
metric(&out, "paths_inbound_bytes", ta, int64(i.InboundBytes))
|
||||
metric(&out, "paths_outbound_bytes", ta, int64(i.OutboundBytes))
|
||||
metric(&out, "paths_inbound_frames_in_error", ta, int64(i.InboundFramesInError))
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# Paths (deprecated)\n")
|
||||
metric(&out, "paths_bytes_received", ta, int64(i.BytesReceived))
|
||||
metric(&out, "paths_bytes_sent", ta, int64(i.BytesSent))
|
||||
metric(&out, "paths_readers", ta, int64(len(i.Readers)))
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
} else if pathFilter == "" {
|
||||
out.WriteString("# Paths\n")
|
||||
metric(&out, "paths", "", 0)
|
||||
metric(&out, "paths_inbound_bytes", "", 0)
|
||||
metric(&out, "paths_outbound_bytes", "", 0)
|
||||
metric(&out, "paths_inbound_frames_in_error", "", 0)
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# Paths (deprecated)\n")
|
||||
metric(&out, "paths_bytes_received", "", 0)
|
||||
metric(&out, "paths_bytes_sent", "", 0)
|
||||
metric(&out, "paths_readers", "", 0)
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
|
||||
if !interfaceIsEmpty(m.hlsServer) &&
|
||||
(typ == "" || typ == "hls_muxers") &&
|
||||
(!anyFilterActive || hlsMuxerFilter != "") {
|
||||
var data *defs.APIHLSMuxerList
|
||||
data, err := m.hlsServer.APIMuxersList()
|
||||
if err == nil && len(data.Items) != 0 {
|
||||
for _, i := range data.Items {
|
||||
if hlsMuxerFilter == "" || hlsMuxerFilter == i.Path {
|
||||
ta := tags(map[string]string{
|
||||
"name": i.Path,
|
||||
})
|
||||
metric(&out, "hls_muxers", ta, 1)
|
||||
metric(&out, "hls_muxers_outbound_bytes", ta, int64(i.OutboundBytes))
|
||||
metric(&out, "hls_muxers_outbound_frames_discarded", ta, int64(i.OutboundFramesDiscarded))
|
||||
// deprecated
|
||||
metric(&out, "hls_muxers_bytes_sent", ta, int64(i.BytesSent))
|
||||
if !interfaceIsEmpty(m.hlsServer) {
|
||||
if (typ == "" || typ == "hls_muxers") && (!anyFilterActive || hlsMuxerFilter != "") {
|
||||
var data *defs.APIHLSMuxerList
|
||||
data, err := m.hlsServer.APIMuxersList()
|
||||
if err == nil && len(data.Items) != 0 {
|
||||
for _, i := range data.Items {
|
||||
if hlsMuxerFilter == "" || hlsMuxerFilter == i.Path {
|
||||
ta := tags(map[string]string{
|
||||
"name": i.Path,
|
||||
})
|
||||
|
||||
out.WriteString("# HLS muxers\n")
|
||||
metric(&out, "hls_muxers", ta, 1)
|
||||
metric(&out, "hls_muxers_outbound_bytes", ta, int64(i.OutboundBytes))
|
||||
metric(&out, "hls_muxers_outbound_frames_discarded", ta, int64(i.OutboundFramesDiscarded))
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# HLS muxers (deprecated)\n")
|
||||
metric(&out, "hls_muxers_bytes_sent", ta, int64(i.BytesSent))
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
} else if hlsMuxerFilter == "" {
|
||||
out.WriteString("# HLS muxers\n")
|
||||
metric(&out, "hls_muxers", "", 0)
|
||||
metric(&out, "hls_muxers_outbound_bytes", "", 0)
|
||||
metric(&out, "hls_muxers_outbound_frames_discarded", "", 0)
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# HLS muxers (deprecated)\n")
|
||||
metric(&out, "hls_muxers_bytes_sent", "", 0)
|
||||
out.WriteString("\n")
|
||||
}
|
||||
} else if hlsMuxerFilter == "" {
|
||||
metric(&out, "hls_muxers", "", 0)
|
||||
metric(&out, "hls_muxers_outbound_bytes", "", 0)
|
||||
metric(&out, "hls_muxers_outbound_frames_discarded", "", 0)
|
||||
// deprecated
|
||||
metric(&out, "hls_muxers_bytes_sent", "", 0)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,21 +316,30 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
ta := tags(map[string]string{
|
||||
"id": i.ID.String(),
|
||||
})
|
||||
|
||||
out.WriteString("# RTSP connections\n")
|
||||
metric(&out, "rtsp_conns", ta, 1)
|
||||
metric(&out, "rtsp_conns_inbound_bytes", ta, int64(i.InboundBytes))
|
||||
metric(&out, "rtsp_conns_outbound_bytes", ta, int64(i.OutboundBytes))
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTSP connections (deprecated)\n")
|
||||
metric(&out, "rtsp_conns_bytes_received", ta, int64(i.BytesReceived))
|
||||
metric(&out, "rtsp_conns_bytes_sent", ta, int64(i.BytesSent))
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
} else if rtspConnFilter == "" {
|
||||
out.WriteString("# RTSP connections\n")
|
||||
metric(&out, "rtsp_conns", "", 0)
|
||||
metric(&out, "rtsp_conns_inbound_bytes", "", 0)
|
||||
metric(&out, "rtsp_conns_outbound_bytes", "", 0)
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTSP connections (deprecated)\n")
|
||||
metric(&out, "rtsp_conns_bytes_received", "", 0)
|
||||
metric(&out, "rtsp_conns_bytes_sent", "", 0)
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -328,6 +355,8 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
"path": i.Path,
|
||||
"remoteAddr": i.RemoteAddr,
|
||||
})
|
||||
|
||||
out.WriteString("# RTSP sessions\n")
|
||||
metric(&out, "rtsp_sessions", ta, 1)
|
||||
metric(&out, "rtsp_sessions_inbound_bytes", ta, int64(i.InboundBytes))
|
||||
metric(&out, "rtsp_sessions_inbound_rtp_packets", ta, int64(i.InboundRTPPackets))
|
||||
@@ -341,7 +370,9 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metric(&out, "rtsp_sessions_outbound_rtp_packets_reported_lost", ta, int64(i.OutboundRTPPacketsReportedLost))
|
||||
metric(&out, "rtsp_sessions_outbound_rtp_packets_discarded", ta, int64(i.OutboundRTPPacketsDiscarded))
|
||||
metric(&out, "rtsp_sessions_outbound_rtcp_packets", ta, int64(i.OutboundRTCPPackets))
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTSP sessions (deprecated)\n")
|
||||
metric(&out, "rtsp_sessions_bytes_received", ta, int64(i.BytesReceived))
|
||||
metric(&out, "rtsp_sessions_bytes_sent", ta, int64(i.BytesSent))
|
||||
metric(&out, "rtsp_sessions_rtp_packets_received", ta, int64(i.RTPPacketsReceived))
|
||||
@@ -352,9 +383,11 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metric(&out, "rtsp_sessions_rtcp_packets_received", ta, int64(i.RTCPPacketsReceived))
|
||||
metric(&out, "rtsp_sessions_rtcp_packets_sent", ta, int64(i.RTCPPacketsSent))
|
||||
metric(&out, "rtsp_sessions_rtcp_packets_in_error", ta, int64(i.RTCPPacketsInError))
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
} else if rtspSessionFilter == "" {
|
||||
out.WriteString("# RTSP sessions\n")
|
||||
metric(&out, "rtsp_sessions", "", 0)
|
||||
metric(&out, "rtsp_sessions_inbound_bytes", "", 0)
|
||||
metric(&out, "rtsp_sessions_inbound_rtp_packets", "", 0)
|
||||
@@ -368,7 +401,9 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metric(&out, "rtsp_sessions_outbound_rtp_packets_reported_lost", "", 0)
|
||||
metric(&out, "rtsp_sessions_outbound_rtp_packets_discarded", "", 0)
|
||||
metric(&out, "rtsp_sessions_outbound_rtcp_packets", "", 0)
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTSP sessions (deprecated)\n")
|
||||
metric(&out, "rtsp_sessions_bytes_received", "", 0)
|
||||
metric(&out, "rtsp_sessions_bytes_sent", "", 0)
|
||||
metric(&out, "rtsp_sessions_rtp_packets_received", "", 0)
|
||||
@@ -379,6 +414,7 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metric(&out, "rtsp_sessions_rtcp_packets_received", "", 0)
|
||||
metric(&out, "rtsp_sessions_rtcp_packets_sent", "", 0)
|
||||
metric(&out, "rtsp_sessions_rtcp_packets_in_error", "", 0)
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -393,21 +429,30 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
ta := tags(map[string]string{
|
||||
"id": i.ID.String(),
|
||||
})
|
||||
|
||||
out.WriteString("# RTSPS connections\n")
|
||||
metric(&out, "rtsps_conns", ta, 1)
|
||||
metric(&out, "rtsps_conns_inbound_bytes", ta, int64(i.InboundBytes))
|
||||
metric(&out, "rtsps_conns_outbound_bytes", ta, int64(i.OutboundBytes))
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTSPS connections (deprecated)\n")
|
||||
metric(&out, "rtsps_conns_bytes_received", ta, int64(i.BytesReceived))
|
||||
metric(&out, "rtsps_conns_bytes_sent", ta, int64(i.BytesSent))
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
} else if rtspsConnFilter == "" {
|
||||
out.WriteString("# RTSPS connections\n")
|
||||
metric(&out, "rtsps_conns", "", 0)
|
||||
metric(&out, "rtsps_conns_inbound_bytes", "", 0)
|
||||
metric(&out, "rtsps_conns_outbound_bytes", "", 0)
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTSPS connections (deprecated)\n")
|
||||
metric(&out, "rtsps_conns_bytes_received", "", 0)
|
||||
metric(&out, "rtsps_conns_bytes_sent", "", 0)
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -423,6 +468,8 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
"path": i.Path,
|
||||
"remoteAddr": i.RemoteAddr,
|
||||
})
|
||||
|
||||
out.WriteString("# RTSPS sessions\n")
|
||||
metric(&out, "rtsps_sessions", ta, 1)
|
||||
metric(&out, "rtsps_sessions_inbound_bytes", ta, int64(i.InboundBytes))
|
||||
metric(&out, "rtsps_sessions_inbound_rtp_packets", ta, int64(i.InboundRTPPackets))
|
||||
@@ -436,7 +483,9 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metric(&out, "rtsps_sessions_outbound_rtp_packets_reported_lost", ta, int64(i.OutboundRTPPacketsReportedLost))
|
||||
metric(&out, "rtsps_sessions_outbound_rtp_packets_discarded", ta, int64(i.OutboundRTPPacketsDiscarded))
|
||||
metric(&out, "rtsps_sessions_outbound_rtcp_packets", ta, int64(i.OutboundRTCPPackets))
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTSPS sessions (deprecated)\n")
|
||||
metric(&out, "rtsps_sessions_bytes_received", ta, int64(i.BytesReceived))
|
||||
metric(&out, "rtsps_sessions_bytes_sent", ta, int64(i.BytesSent))
|
||||
metric(&out, "rtsps_sessions_rtp_packets_received", ta, int64(i.RTPPacketsReceived))
|
||||
@@ -447,9 +496,11 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metric(&out, "rtsps_sessions_rtcp_packets_received", ta, int64(i.RTCPPacketsReceived))
|
||||
metric(&out, "rtsps_sessions_rtcp_packets_sent", ta, int64(i.RTCPPacketsSent))
|
||||
metric(&out, "rtsps_sessions_rtcp_packets_in_error", ta, int64(i.RTCPPacketsInError))
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
} else if rtspsSessionFilter == "" {
|
||||
out.WriteString("# RTSPS sessions\n")
|
||||
metric(&out, "rtsps_sessions", "", 0)
|
||||
metric(&out, "rtsps_sessions_inbound_bytes", "", 0)
|
||||
metric(&out, "rtsps_sessions_inbound_rtp_packets", "", 0)
|
||||
@@ -463,7 +514,9 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metric(&out, "rtsps_sessions_outbound_rtp_packets_reported_lost", "", 0)
|
||||
metric(&out, "rtsps_sessions_outbound_rtp_packets_discarded", "", 0)
|
||||
metric(&out, "rtsps_sessions_outbound_rtcp_packets", "", 0)
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTSPS sessions (deprecated)\n")
|
||||
metric(&out, "rtsps_sessions_bytes_received", "", 0)
|
||||
metric(&out, "rtsps_sessions_bytes_sent", "", 0)
|
||||
metric(&out, "rtsps_sessions_rtp_packets_received", "", 0)
|
||||
@@ -474,6 +527,7 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metric(&out, "rtsps_sessions_rtcp_packets_received", "", 0)
|
||||
metric(&out, "rtsps_sessions_rtcp_packets_sent", "", 0)
|
||||
metric(&out, "rtsps_sessions_rtcp_packets_in_error", "", 0)
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -492,23 +546,32 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
"path": i.Path,
|
||||
"remoteAddr": i.RemoteAddr,
|
||||
})
|
||||
|
||||
out.WriteString("# RTMP connections\n")
|
||||
metric(&out, "rtmp_conns", ta, 1)
|
||||
metric(&out, "rtmp_conns_inbound_bytes", ta, int64(i.InboundBytes))
|
||||
metric(&out, "rtmp_conns_outbound_bytes", ta, int64(i.OutboundBytes))
|
||||
metric(&out, "rtmp_conns_outbound_frames_discarded", ta, int64(i.OutboundFramesDiscarded))
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTMP connections (deprecated)\n")
|
||||
metric(&out, "rtmp_conns_bytes_received", ta, int64(i.BytesReceived))
|
||||
metric(&out, "rtmp_conns_bytes_sent", ta, int64(i.BytesSent))
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
} else if rtmpConnFilter == "" {
|
||||
out.WriteString("# RTMP connections\n")
|
||||
metric(&out, "rtmp_conns", "", 0)
|
||||
metric(&out, "rtmp_conns_inbound_bytes", "", 0)
|
||||
metric(&out, "rtmp_conns_outbound_bytes", "", 0)
|
||||
metric(&out, "rtmp_conns_outbound_frames_discarded", "", 0)
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTMP connections (deprecated)\n")
|
||||
metric(&out, "rtmp_conns_bytes_received", "", 0)
|
||||
metric(&out, "rtmp_conns_bytes_sent", "", 0)
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -526,23 +589,32 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
"path": i.Path,
|
||||
"remoteAddr": i.RemoteAddr,
|
||||
})
|
||||
|
||||
out.WriteString("# RTMPS connections\n")
|
||||
metric(&out, "rtmps_conns", ta, 1)
|
||||
metric(&out, "rtmps_conns_inbound_bytes", ta, int64(i.InboundBytes))
|
||||
metric(&out, "rtmps_conns_outbound_bytes", ta, int64(i.OutboundBytes))
|
||||
metric(&out, "rtmps_conns_outbound_frames_discarded", ta, int64(i.OutboundFramesDiscarded))
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTMPS connections (deprecated)\n")
|
||||
metric(&out, "rtmps_conns_bytes_received", ta, int64(i.BytesReceived))
|
||||
metric(&out, "rtmps_conns_bytes_sent", ta, int64(i.BytesSent))
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
} else if rtmpsConnFilter == "" {
|
||||
out.WriteString("# RTMPS connections\n")
|
||||
metric(&out, "rtmps_conns", "", 0)
|
||||
metric(&out, "rtmps_conns_inbound_bytes", "", 0)
|
||||
metric(&out, "rtmps_conns_outbound_bytes", "", 0)
|
||||
metric(&out, "rtmps_conns_outbound_frames_discarded", "", 0)
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# RTMPS connections (deprecated)\n")
|
||||
metric(&out, "rtmps_conns_bytes_received", "", 0)
|
||||
metric(&out, "rtmps_conns_bytes_sent", "", 0)
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -560,6 +632,8 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
"path": i.Path,
|
||||
"remoteAddr": i.RemoteAddr,
|
||||
})
|
||||
|
||||
out.WriteString("# SRT connections\n")
|
||||
metric(&out, "srt_conns", ta, 1)
|
||||
metric(&out, "srt_conns_packets_sent", ta, int64(i.PacketsSent))
|
||||
metric(&out, "srt_conns_packets_received", ta, int64(i.PacketsReceived))
|
||||
@@ -615,9 +689,11 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metricFloat(&out, "srt_conns_packets_send_loss_rate", ta, i.PacketsSendLossRate)
|
||||
metricFloat(&out, "srt_conns_packets_received_loss_rate", ta, i.PacketsReceivedLossRate)
|
||||
metric(&out, "srt_conns_outbound_frames_discarded", ta, int64(i.OutboundFramesDiscarded))
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
} else if srtConnFilter == "" {
|
||||
out.WriteString("# SRT connections\n")
|
||||
metric(&out, "srt_conns", "", 0)
|
||||
metric(&out, "srt_conns_packets_sent", "", 0)
|
||||
metric(&out, "srt_conns_packets_received", "", 0)
|
||||
@@ -673,6 +749,7 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metricFloat(&out, "srt_conns_packets_send_loss_rate", "", 0)
|
||||
metricFloat(&out, "srt_conns_packets_received_loss_rate", "", 0)
|
||||
metric(&out, "srt_conns_outbound_frames_discarded", "", 0)
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -690,6 +767,8 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
"path": i.Path,
|
||||
"remoteAddr": i.RemoteAddr,
|
||||
})
|
||||
|
||||
out.WriteString("# WebRTC sessions\n")
|
||||
metric(&out, "webrtc_sessions", ta, 1)
|
||||
metric(&out, "webrtc_sessions_inbound_bytes", ta, int64(i.InboundBytes))
|
||||
metric(&out, "webrtc_sessions_inbound_rtp_packets", ta, int64(i.InboundRTPPackets))
|
||||
@@ -700,7 +779,9 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metric(&out, "webrtc_sessions_outbound_rtp_packets", ta, int64(i.OutboundRTPPackets))
|
||||
metric(&out, "webrtc_sessions_outbound_rtcp_packets", ta, int64(i.OutboundRTCPPackets))
|
||||
metric(&out, "webrtc_sessions_outbound_frames_discarded", ta, int64(i.OutboundFramesDiscarded))
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# WebRTC sessions (deprecated)\n")
|
||||
metric(&out, "webrtc_sessions_bytes_received", ta, int64(i.BytesReceived))
|
||||
metric(&out, "webrtc_sessions_bytes_sent", ta, int64(i.BytesSent))
|
||||
metric(&out, "webrtc_sessions_rtp_packets_received", ta, int64(i.RTPPacketsReceived))
|
||||
@@ -709,9 +790,11 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metricFloat(&out, "webrtc_sessions_rtp_packets_jitter", ta, i.RTPPacketsJitter)
|
||||
metric(&out, "webrtc_sessions_rtcp_packets_received", ta, int64(i.RTCPPacketsReceived))
|
||||
metric(&out, "webrtc_sessions_rtcp_packets_sent", ta, int64(i.RTCPPacketsSent))
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
} else if webrtcSessionFilter == "" {
|
||||
out.WriteString("# WebRTC sessions\n")
|
||||
metric(&out, "webrtc_sessions", "", 0)
|
||||
metric(&out, "webrtc_sessions_inbound_bytes", "", 0)
|
||||
metric(&out, "webrtc_sessions_inbound_rtp_packets", "", 0)
|
||||
@@ -722,7 +805,9 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metric(&out, "webrtc_sessions_outbound_rtp_packets", "", 0)
|
||||
metric(&out, "webrtc_sessions_outbound_rtcp_packets", "", 0)
|
||||
metric(&out, "webrtc_sessions_outbound_frames_discarded", "", 0)
|
||||
// deprecated
|
||||
out.WriteString("\n")
|
||||
|
||||
out.WriteString("# WebRTC sessions (deprecated)\n")
|
||||
metric(&out, "webrtc_sessions_bytes_received", "", 0)
|
||||
metric(&out, "webrtc_sessions_bytes_sent", "", 0)
|
||||
metric(&out, "webrtc_sessions_rtp_packets_received", "", 0)
|
||||
@@ -731,6 +816,7 @@ func (m *Metrics) onMetrics(ctx *gin.Context) {
|
||||
metricFloat(&out, "webrtc_sessions_rtp_packets_jitter", "", 0)
|
||||
metric(&out, "webrtc_sessions_rtcp_packets_received", "", 0)
|
||||
metric(&out, "webrtc_sessions_rtcp_packets_sent", "", 0)
|
||||
out.WriteString("\n")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+560
-458
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user