Metrics

Genvid services are configured to publish metrics locally in the Datadog’s extended StatsD format via UDP port 8125. You can override this setting in the game by specifying the GENVID_STATSD_URL. Please provide a URL with the form host:port. You can deactivate metrics by setting the GENVID_STATSD_DISABLED to true.

Warning

Genvid metrics are still under development. Future versions are likely to change and create some incompatibilities.

Available Metrics

In addition to metrics coming from Nomad, Consul, and Vault, our services provide the following metrics:

Table 3 Genvid Compatibility Layer Function Calls
Name Type Possible tags Description Unit
initialize1_count
initialize1_us
counter
timing
The number of times the Genvid_Initialize() function is called and the time spent in it.

us
terminate1_count
terminate1_us
counter
timing
The number of times the Genvid_Terminate() function is called and the time spent in it.

us
getcurrenttimecode1_count
getcurrenttimecode1_us
counter
timing
The number of times the Genvid_GetCurrentTimecode() function is called and the time spent in it.

us
getprevioustimecode1_count
getprevioustimecode1_us
counter
timing
The number of times the Genvid_GetPreviousTimecode() function is called and the time spent in it.

us
createstream1_count
createstream1_us
counter
timing
The number of times the Genvid_CreateStream() function is called and the time spent in it.

us
destroystream1_count
destroystream1_us
counter
timing
The number of times the Genvid_DestroyStream() function is called and the time spent in it.

us
setparameterint1_count
setparameterint1_us
counter
timing
The number of times the Genvid_SetParameterInt() function is called and the time spent in it.

us
setparameterfloat1_count
setparameterfloat1_us
counter
timing
The number of times the Genvid_SetParameterFloat() function is called and the time spent in it.

us
setparameterpointer1_count
setparameterpointer1_us
counter
timing
The number of times the Genvid_SetParameterPointer() function called and the time spent in it.

us
getparameterint1_count
getparameterint1_us
counter
timing
The number of times the Genvid_GetParameterInt() function is called and the time spent in it.

us
getparameterfloat1_count
getparameterfloat1_us
counter
timing
The number of times the Genvid_GetParameterFloat() function is called and the time spent in it.

us
getparameterpointer1_count
getparameterpointer1_us
counter
timing
The number of times the Genvid_GetParameterPointer() function called and the time spent in it.

us
getparameterutf81_count
getparameterutf81_us
counter
timing
The number of times the Genvid_GetParameterUTF8() function is called and the time spent in it.

us
submitaaudiodata1_count
submitaaudiodata1_us
counter
timing
The number of times the Genvid_SubmitAudioData() function is called and the time spent in it.

us
submitvideodata1_count
submitvideodata1_us
counter
timing
The number of times the Genvid_SubmitVideoData() function is called and the time spent in it.

us
submitgamedata1_count
submitgamedata1_us
counter
timing
The number of times the Genvid_SubmitGameData() function is called and the time spent in it.

us
submitannotation1_count
submitannotation1_us
counter
timing
The number of times the Genvid_SubmitAnnotation() function is called and the time spent in it.

us
submitnotification1_count
submitnotification1_us
counter
timing
The number of times the Genvid_SubmitNotification() function is called and the time spent in it.

us
subscribeevent1_count
subscribeevent1_us
counter
timing
The number of times the Genvid_Subscribe() function is called and the time spent in it.

us
unsubscribeevent1_count
unsubscribeevent1_us
counter
timing
The number of times the Genvid_Unsubscribe() function is called and the time spent in it.

us
checkforevents1_count
checkforevents1_us
counter
timing
The number of times the check for events part of the Genvid_CheckForEvents() function is called and the time spent in it.

us
checkforcommands1_count
checkforcommands1_us
counter
timing
The number of times the check for commands part of the Genvid_CheckForEvents() function is called and the time spent in it.

us
subscribecommand1_count
subscribecommand1_us
counter
timing
The number of times the Genvid_SubscribeCommand() function is called and the time spent in it.

us
unsubscribecommand1_count
unsubscribecommand1_us
counter
timing
The number of times the Genvid_UnsubscribeCommand() function is called and the time spent in it.

us

Table 4 Genvid SDK Function Calls
Name Type Possible tags Description Unit
reservetimeslot_count
reservetimeslot_us
counter
timing
The number of times the Genvid2_ReserveTimeSlot function is called and the time spent in it.

us
reservesource_count
reservesource_us
counter
timing
The number of times the Genvid2_ReserveSource function is called and the time spent in it.

us
releasesource_count
releasesource_us
counter
timing
The number of times the Genvid2_ReleaseSource function is called and the time spent in it.

us
releasesources_count
releasesources_us
counter
timing
The number of times the Genvid2_ReleaseSources function is called and the time spent in it.

us
createvideostream_count
createvideostream_us
counter
timing
The number of times the Genvid2_CreateVideoStream function is called and the time spent in it.

us
createaudiostream_count
createaudiostream_us
counter
timing
The number of times the Genvid2_CreateAudioStream function is called and the time spent in it.

us
createdatastream_count
createdatastream_us
counter
timing
The number of times the Genvid2_CreateDataStream function is called and the time spent in it.

us
destroystream_count
destroystream_us
counter
timing
The number of times the Genvid2_DestroyStream function is called and the time spent in it.

us
submitnotification_count
submitnotification_us
counter
timing
The number of times the Genvid2_SubmitNotification function is called and the time spent in it.

us
subscribeevent_count
subscribeevent_us
counter
timing
The number of times the Genvid2_SubscribeEvent function is called and the time spent in it.

us
unsubscribeevent_count
unsubscribeevent_us
counter
timing
The number of times the Genvid2_UnsubscribeEvent function is called and the time spent in it.

us
getnexteventsize_count
getnexteventsize_us
counter
timing
The number of times the Genvid2_GetNextEventSize function is called and the time spent in it.

us
getnexteventdata_count
getnexteventdata_us
counter
timing
The number of times the Genvid2_GetNextEventData function is called and the time spent in it.

us
subscribecommand_count
subscribecommand_us
counter
timing
The number of times the Genvid2_SubscribeCommand function is called and the time spent in it.

us
unsubscribecommand_count
unsubscribecommand_us
counter
timing
The number of times the Genvid2_UnsubscribeCommand function is called and the time spent in it.

us
getnextcommandsize_count
getnextcommandsize_us
counter
timing
The number of times the Genvid2_GetNextCommandSize function is called and the time spent in it.

us
getnextcommanddata_count
getnextcommanddata_us
counter
timing
The number of times the Genvid2_GetNextCommandData function is called and the time spent in it.

us

Table 5 Genvid SDK Input Metrics
Name Type Possible tags Description Unit
Prefix: genvid.sdk.        
framesubmitted counter stream, streamtype Number of frames submitted to the SDK, sent when the client submits data (audio, video or game data), and the operation is successful  
framesizesubmitted gauge stream, streamtype Size of a frame submitted to the SDK, sent when the client submits data (audio, video or game data), and the operation is successful bytes
framesubmitteddropped counter stream, streamtype Number of frames submitted to the SDK that were dropped, sent when the client submits data (audio, video or game data), and the operation is not successful, i.e. the frames are submitted to the SDK, but the SDK doesn’t submit them to the stream corresponding to the provided Stream ID  
framesizesubmittedropped counter stream, streamtype Cumulative size of all the frames submitted to the SDK that were dropped, sent when the client submits data (audio, video or game data), and the operation is not successful, i.e. the frames are submitted to the SDK, but the SDK doesn’t submit them to the stream corresponding to the provided Stream ID bytes
framedropped counter stream, streamtype Number of frames dropped by the the SDK, sent when the operation of submitting annotations or data (video/audio/game) to the stream is not successful  
framesizedropped counter stream, streamtype Cumulative size of all frames dropped by the the SDK, sent when the operation of submitting annotations or data (video/audio/game) to the stream is not successful bytes
submitdelta gauge stream, streamtype Delta time between time codes of frames submitted to the SDK, sent when the client submits data (audio, video, game data or annotations) ms
submittime_us timing stream, streamtype Time spent in the SDK submit functions, sent when the client submits data (audio, video, game data or annotations) us
inbandwidth gauge Number of bytes per second submitted to the SDK when submitting streams, sent every seconds by the Compose Session Bps
notificationdropped counter notificationid Number of notifications dropped by the SDK, sent when the client calls SubmitNotification() and the publishing fails  
notificationsizedropped gauge notificationid Size of a notification dropped by the SDK, sent when the client calls SubmitNotification() and the publishing fails bytes
submittedstreams gauge none Total number of frames submitted to the different streams (audio, video and data) that were just sent to the RTMSP Session, sent by the Compose Session at every ms  
submittedstreams_audio gauge none Number of frames submitted to the different audio streams that were just sent to the RTMSP Session, sent by the Compose Session at every ms  
submittedstreams_video gauge none Number of frames submitted to the different video streams that were just sent to the RTMSP Session, sent by the Compose Session at every ms  
submittedstreams_data gauge none Number of frames submitted to the different data streams that were just sent to the RTMSP Session, sent by the Compose Session at every ms  
gcl.received     Stats on frames received by the SDK. See the GCL Metrics table for details. The GCL Stats Callback is invoked through the Receive Message Callback of the RTMSP Session, which in turn sends the metric based on the submission rate  

Table 6 Genvid SDK Output Metrics
Name Type Possible tags Description Unit
Prefix: genvid.sdk.        
framesent counter stream, streamtype Number of frames sent by the SDK, sent when annotations or data (video/audio/game) are sent over the RTMSP connection by Compose Session  
framesizesent gauge stream, streamtype Size of a frame sent by the SDK, sent when annotations or data (video/audio/game) are sent over the RTMSP connection by Compose Session) bytes
frameadded counter stream, streamtype Number of extra frames sent to keep the expected rate up, sent by the Compose Session when repeating the last frame and sending it to the RTMSP Connection  
framemissed counter stream, streamtype Number of frames that were sent as missing due to lack of available data, sent by the Compose Session when tagging the frame as missing (because the last frame is not available) and sending it to the RTMSP Connection  
framedelta gauge stream, streamtype Delta time between the time codes of consecutive sent frames, sent by the Compose Session when sending frames to the RTMSP Connection ms
outbandwidth gauge Number of bytes per second sent by the SDK when sending frames or annotations, sent every seconds by the Compose Session Bps
streambandwidth gauge stream, streamtype Per stream number of bytes per second sent by the SDK, sent every second by the Compose Session Bps
notificationsent counter notificationid Number of notifications successfully sent by the the SDK, sent when the client successfully calls SubmitNotification()  
notificationsizepublished gauge notificationid Size of a notification successfully sent by the the SDK, sent when the client successfully calls SubmitNotification() bytes
numaudioframes gauge stream, streamtype Number of audio frames sent by the SDK, sent by the Compose Session every time an audio frame is sent to the RTMSP Session  
numvideoframes gauge stream, streamtype Number of video frames sent by the SDK, sent by the Compose Session every time a video frame is sent to the RTMSP Session  
duplicatedaudioframes gauge stream, streamtype Number of duplicated audio frames sent by the SDK, sent by the Compose Session every time an audio frame is sent, however the counter is incremented only when a repeated frame is created  
duplicatedvideoframes gauge stream, streamtype Number of duplicated video frames sent by the SDK, sent by the Compose Session every time a video frame is sent, however the counter is incremented only when a repeated frame is created  
missedaudioframes gauge stream, streamtype Number of missed audio frames sent by the SDK, sent by the Compose Session every time an audio frame is sent, however the counter is incremented only when a missing frame is created  
missedvideoframes gauge stream, streamtype Number of missed video frames sent by the SDK, sent by the Compose Session every time a video frame is sent, however the counter is incremented only when a missing frame is created  
audiofps gauge stream, streamtype Effective audio FPS as seen by the SDK, taking into account the number of duplicated and missed frames. No duplicated or missed frames will give an FPS number equal to the one set at stream creation, any number of duplicated or missed frames will give a lower FPS number. Sent by the Compose Session every time an audio frame is sent to the RTMSP Session fps
videofps gauge stream, streamtype Effective video FPS as seen by the SDK, taking into account the number of duplicated and missed frames. No duplicated or missed frames will give an FPS number equal to the one set at stream creation, any number of duplicated or missed frames will give a lower FPS number. Sent by the Compose Session every time an audio frame is sent to the RTMSP Session fps
gcl.sent     Stats on frames sent by the SDK. See the GCL Metrics table for details. The GCL Stats Callback is invoked when the Compose Session sends messages through the RTMSP Session, which in turn sends the metric based on the submission rate  

Table 7 Compose Metrics
Name Type Possible tags Description Unit
Prefix: genvid.compose-backend.        
framesent counter stream, streamtype, messagetype, reason, session, source, stream Number of packets sent to GVencode, sent when sending an RTMSP message (buffer or format type) to GVencode  
framesizesent gauge stream, streamtype, messagetype, reason, session, source, stream Size of a packet sent to GVencode, sent when sending an RTMSP message (buffer or format type) to GVencode bytes
framediscarded counter stream, streamtype, messagetype, reason, session, source, stream Number of packets discarded, sent when the RTMSP message is discarded instead of being sent to GVencode, possible reasons: RTMSP session not running, undefined session ID, format is missing  
framesizediscarded gauge stream, streamtype, messagetype, reason, session, source, stream Payload size of a discarded RTMSP message, sent when the RTMSP message is discarded instead of being sent to GVencode, possible reasons: RTMSP session not running, undefined session ID, format is missing bytes
message.discarded counter stream, streamtype, messagetype, session, source Number of RTMSP messages discarded, sent when the RTMSP message queue is full, at the moment the message would normally be pushed in the queue  
streambus.audiovideo.weight gauge stream, streamtype, messagetype, session, source Weight of the audio/video messages currently in the stream bus, sent when the RTMSP message queue is full bytes
streambus.data.weight gauge stream, streamtype, messagetype, session, source Weight of the data/annotation/sync messages currently in the stream bus, sent when the RTMSP message queue is full bytes
gcl.sent     Stats on frames sent to GVencode. See the GCL Metrics table for details. The GCL Stats Callback is invoked when the Backend sends messages through the RTMSP Session, which in turn sends the metric based on the submission rate  
gcl.received     Stats on frames received by the Backend. See the GCL Metrics table for details. The GCL Stats Callback is invoked through the Receive Message Callback of the RTMSP Session, which in turn sends the metric based on the submission rate  
Prefix: genvid.compose-frontend.        
framemissed counter stream, streamtype, sessionname Number of frames created by compose, deprecated: this metric is not sent anymore  
framereceived counter stream, streamtype, sessionname Number of frames received, sent when a frame is extracted from the RTMSP message and pushed to the stream bus  
framesizereceived counter stream, streamtype, sessionname Cumulative size of all frames received, sent when a frame is extracted from the RTMSP message and pushed to the stream bus bytes
framedelayreceived_us gauge stream, streamtype, sessionname Delay of the frame compared to its expected time, sent when a frame is extracted from the RTMSP message and pushed to the stream bus us
message.discarded counter stream, streamtype, messagetype, session, source Number of RTMSP messages discarded, sent when the RTMSP message queue is full, at the moment the message would normally be pushed in the queue  
streambus.audiovideo.weight gauge stream, streamtype, messagetype, session, source Weight of the audio/video messages currently in the stream bus, sent when the RTMSP message queue is full bytes
streambus.data.weight gauge stream, streamtype, messagetype, session, source Weight of the data/annotation/sync messages currently in the stream bus, sent when the RTMSP message queue is full bytes
gcl.sent     Stats on frames sent by the Frontend Session. See the GCL Metrics table for details. The GCL Stats Callback is invoked when the Frontend Session sends messages through the RTMSP Session, which in turn sends the metric based on the submission rate  
gcl.received     Stats on frames received by the Frontend Session. See the GCL Metrics table for details. The GCL Stats Callback is invoked through the Receive Message Callback of the RTMSP Session, which in turn sends the metric based on the submission rate  
Prefix: genvid.compose-gameframes.        
framesent counter stream, streamtype Number of buffers sent to replication nodes (Bulb), sent when a Protobuf is created with the data extracted from the RTMSP packet, more specifically at the moment the annotations are extracted  
framesize counter stream, streamtype Size of a buffer sent to replication nodes (Bulb), sent when a Protobuf is created with the data extracted from the RTMSP packet, more specifically at the moment the annotations are extracted bytes
framedropped counter stream, streamtype Number of frames rejected, sent when trying to extract data from streams containing anything but game data or sync info  
compositionframesent counter stream, streamtype Number of frames sent by the data and synchronization streams, sent when creating a Protobuf with the data extracted from a data or a synchronization stream  
compositionframesizesent counter stream, streamtype Cumulative size of all frames sent by the data and synchronization streams, sent when creating a Protobuf with the data extracted from a data or a synchronization stream bytes
gcl.sent     Stats on frames sent to replication nodes. See the GCL Metrics table for details. The GCL Stats Callback is invoked when the Compose Data Frame sends messages through the Bulb Session, which in turn sends the metric based on the submission rate  

Table 8 Gvencode Metrics
Name Type Possible tags Description Unit
Prefix: genvid.gvencode-compose.        
blendingtime timing filtername Time to blend one video frame, sent by various video layers upon composition of each frame, in some cases a different metric is sent when compositing the final layout: the Video Cover Layer sends “covering”, the Video Push Layer sends “wiping”, the Video Wipe Layer sends “wiping” ms
bytesent counter filtername, session Number of bytes sent during a broadcast session, sent by a FFMPEG callback invoked when a packet is broadcast by the Server/Sink Filter, more specifically when the packet is written to the output media file bytes
compositionmonitortime timing filtername Time to compose one frame of the Monitor stream, sent by the Video Mixer Filter upon composition (if enabled) ms
compositionpreviewtime timing filtername Time to compose one frame of the Preview stream, sent by the Video Mixer Filter upon composition (if enabled) ms
compositionprogramtime timing filtername Time to compose one frame of the Program (broadcast) stream, sent by the Video Mixer Filter upon composition (if enabled) ms
compositionsent counter filtername, filterid Number of frames sent by composition and synchronization streams from GVEncode to Composed, deprecated: this metric is not sent anymore  
compositionsizesent gauge filtername, streamid Size of frames sent by composition and synchronization streams from GVEncode to Composed, deprecated: this metric is not sent anymore bytes
receive-frame-time timing filtername Time to decode one packet and push the decoded frame to the output queue, sent by the Source Filter when an RTMSP message is decoded ms
rtmspMessageQueue counter filtername, rtmspMessageQueue, sessionid Number of RTMSP messages received, sent by the Source Filter when an RTMSP message is dequeued, just before decoding it  
rtmspMessageQueueCount gauge filtername, rtmspMessageQueue, sessionid Number of RTMSP messages pushed in the input queue, sent by the Source Filter when an RTMSP message is dequeued, just before decoding it  
compositiontotaltime timing filtername Time to compose the Program/Preview/Monitor streams, sent by the Video Mixer Filter upon composition (if enabled) ms
chromakeyingtime timing filtername Time to perform composition on a Chroma Key Layer, more specifically, time to apply chroma key blending on the overlay source, sent by the Video Chroma Key Layer every time a frame of the overlay source is composed ms
decodingtime timing filtername Time to decode one video packet, sent by the Source Filter when a video frame is retrieved from the decoder and pushed to the output video queue ms
delayedframe counter filtername, streamtype Number of frames delayed, sent by the Digital Delay Filter when a delayed frame is processed, incremented when a frame is moved from the input frame queue to the delayed frame queue, decremented when a frame is moved from the delayed frame queue to the output frame queue, this implies that frames are added or removed and may point to other issues  
delayedframesize counter filtername, streamtype Cumulative size of all the delayed frames, sent by the Digital Delay Filter when a delayed frame is processed bytes
encodingtime timing filtername Time to encode one video frame, sent by the Server/Sink Filter when a video packet is retrieved from the encoder and pushed to the FIFO or the Output Buffer to be broadcast ms
fifoBufferNumFrames gauge filtername, streamtype Number of packets pushed in the FIFO, sent by the Stream Server Filter when a packet is broadcast  
framereceivedfps gauge filtername, streamtype, sessionid The FPS at which the source filter is receiving frames.  
framesentfps gauge filtername, streamtype, sessionid The FPS at which the source filter is sending frames.  
framedropped counter filtername, streamtype Number of frames dropped to preserve the frame rate, sent by the Video Reframer Filter when more frames are actually sent than the allowed deviation to the target  
frameduplicated counter filtername, streamtype Number of frames duplicated to preserve the frame rate, sent by the Video Reframer Filter when less frames are actually sent than the allowed deviation to the target  
frameerror_fr counter filtername Cumulative number of packets with an incorrect frame number, sent by the Sink Filter when the frame is written to the output media file or moved to the storage queue, incremented when the frame number doesn’t match the target, which should never happen (this value should remain at 0)  
framereceived counter filtername, streamtype, sessionid Number of frames received from compose, sent by the Source Filter when a frame is decoded (in case of video frames) and pushed to the output queue  
framesent counter filtername, streamtype Number of packets sent to the broadcaster, sent by the Server/Sink Filter when a packet is retrieved from the encoder and pushed to the FIFO or the Output Buffer to be broadcast  
framesSentFromSinkHz gauge filtername, streamtype Number of packets sent to the broadcaster, the internal value is incremented when a packet, audio or video, is dequeued from the FIFO and sent to the broadcaster, but the metric is sent, by the Stream Server Filter, only when video packets are broadcast, at a rate of 1Hz  
framesizesent gauge filtername, streamtype Size of an encoded packet, sent by the Server/Sink Filter when a packet is retrieved from the encoder and pushed to the FIFO or the Output Buffer to be broadcast bytes
framesizereceived gauge filtername, streamtype, sessionid Size of a frame received from compose, sent by the Source Filter when a frame is decoded (in case of video frames) and pushed to the output queue bytes
framesDropped counter filtername, streamtype, sessionid Number of frames dropped in order to preserve the A/V sync, sent by the RTMSPSourceFilter when the popped frame is too old.  
lowoutputbufferlevel counter filtername Number of times an attempt to get a packet from the output buffer failed (low output buffer level detection), sent by the Sink Filter when failing to broadcast or store a packet because the output buffer is empty  
missingframecreatingtime timing filtername Time to allocate, prepare and fill a missing frame, the source can be the last video frame, the keep alive still image, a plain color, or silence for the audio, sent by the Source Filter when a missing frame is created and pushed to the output queue, this can point to issues like frame starvation, but this can also simply mean that a keep alive request has been made ms
outputbufferlimit_us gauge filtername Cumulative presentation time of all the packets pushed in the output buffer, sent by the Sink Filter when the frame is written to the output media file or moved to the storage queue us
runningtime timing filtername Time to draw the content of one frame with the Canvas Filter, sent upon execution of each frame ms
scalingtime timing filtername Time to scale a video frame, sent by the Video Blitter Filter when a frame is processed, if no scaling occurs a time of 0 ms is emitted ms
session counter filtername, session Number of active sessions, incremented when a streamer is created, decremented when a streamer is destroyed  
audiopinnumframes gauge filtername, pin name, pin type Number of audio frames in the queue of a given pin, sent by various filters every time a frame is processed  
videopinnumframes gauge filtername, pin name, pin type Number of video frames in the queue of a given pin, sent by various filters every time a frame is processed  
writeframe counter filtername, outputtype, error Number of packets written to the output media file, sent by the File Sink Filter when sending a packet for broadcast or storage  
canvasfilterpinnumframes gauge filtername, pin name, pin type Number of frames in a given pin, sent by the Canvas Filter every time a frame is processed  
covering timing filtername Time to blend one video frame, sent by the Video Cover Layer upon composition of each frame of the final layout ms
digitaldelaylinefilterpinnumframes gauge filtername, pin name, pin type Number of delayed frames in a given pin, sent by the Digital Delay Filter when a delayed frame is processed  
videoreframerfilterpinnumframes gauge filtername, pin name, pin type Number of frames in a given pin, sent by the Reframer Filter every time a frame is processed  
wiping timing filtername Time to wipe one video frame, sent by the Video Push Layer and the Video Wipe Layer upon composition of each frame of the final layout ms
gcl.received     Stats on frames received by GVencode. See the GCL Metrics table for details. The GCL Stats Callback is invoked through the Receive Message Callback of the RTMSP Session, which in turn sends the metric based on the submission rate  
gcl.sent     Stats on frames sent by GVencode. See the GCL Metrics table for details. The GCL Stats Callback is invoked when GVencode sends messages through the RTMSP Session, which in turn sends the metric based on the submission rate  

Table 9 Studio Metrics
Name Type Possible tags Description Unit
Prefix: genvid.studiod.        
messagebytereceived counter websocket Size of messages received from a client with a Websocket bytes
messagebytesent counter websocket Size of messages sent to client with a Websocket bytes
messageReceived counter websocket Number of messages received from a client with a Websocket  
messageSent counter websocket Number of messages sent to client with a Websocket  
websocketopened gauge websocket Number of Websocket open by Studio  
Prefix: genvid.studio.        
monitor.video.element.seekable.size.seconds gauge Size of the video element’s seekable buffer s
monitor.source.buffer.size.seconds gauge The source buffer’s size s
monitor.playback.rate gauge The video element’s playback rate  
monitor.play.rate gauge The time played. A value of 1 represents a constant play speed speed/s
monitor.segments.pushed.hz gauge The number of segments pushed to the source buffer segments/s
monitor.segment.size.kilobytes gauge The average size of a segment kB
monitor.latency.seconds gauge The time delta between the current playback time and the most recent seekable frame s

Table 10 Leaf Metrics
Name Type Possible tags Description Unit
Prefix: genvid.leafd.reduce.        
collect timing reduceId Duration of a collect call. Used before sending a map reduce result. ms
processkeyvalue timing reduceId Duration of a processkeyvalue call. Part of a reduce execution. ms
reduce timing reduceId Duration of a reduce call. Part of a reduce execution. ms
sent counter reduceId Number of messages sent to NATS on topic events.nodes.results. {{msgId}}  
size counter reduceId Size of messages sent to NATS on topic events.nodes. results.{{msgId}} bytes
Prefix: genvid.leafd.map.        
accepted counter mapId, success Number of key values processed by a map.  
processkeyvalues timing mapId, success Duration of a processkeyvalues call. Part of a map execution. ms
refused counter Number of key values not processed by a map.  
Prefix: genvid.leafd.connection.        
current gauge Number of clients currently connected to a leaf.  
disconnected counter Number of client disconnections from a leaf.  
elapsed timing Duration of a client session. ms
initialsendtime timing Amount of time spent sending the initial payload from the leaf to the web app.
ms
sentdatacachesize gauge Size of data cache sent to the client. bytes
sentpackets counter Number of packets sent.  
sentpacketssize counter Size of packets sent. bytes
total counter Number of client connections to a leaf.  
Prefix: genvid.leafd.root.        
receivedpackets counter type Number of packets received from rootD.  
receivedpacketssize counter type Size of packets received from rootD. bytes
Prefix: genvid.leafd.event.        
count counter Number of events sent by clients.  
size counter Size of events sent by clients.
bytes

Table 11 Root Metrics
Name Type Possible tags Description Unit
Prefix: genvid.rootd.bulb.compose.        
receivedpackets counter type The number of packets received from composed  
receivedpacketssize counter type The size of the packets received from composed bytes
receptionInterval gauge type The time between two consecutive frames received ms
Prefix: genvid.rootd.root.leaf.        
sentpackets counter type The number of packets sent to a leaf  
sentpacketssize counter type The size of the packets sent to a leaf bytes
senttotalpacketssize counter type The total size of the packets sent to all leafs bytes
Prefix: genvid.rootd.connection.        
current gauge The current number of leafs connected to a root  
sentdatacachesize gauge The size of the data cache being sent to a leaf bytes

Table 12 Webgateway Metrics
Name Type Possible tags Description Unit
Prefix: genvid.webgateway.        
gameOK.received counter status Number of game commands received  
notificationOK.received counter status Number of notifications received  
eventsOK.received counter status Number of events received  
eventsOK.processed counter status Number of events processed  
gameParseFail.received counter status Number of errors received  
gamePublishFail.received counter status Number of errors received  
notificationParseFail.received counter status Number of errors received  
notificationPublishFail.received counter status Number of errors received  
eventsParseFail.received counter status Number of errors received  
eventsTooMany.received counter status Max events exceeded  
eventsTooBig.received counter status Number of errors received  
batchevents.reduce.collect timing reduceId Duration of a collect call, used before sending a map reduce result ms
reduce.sent counter reduceId Number of messages sent to nats on topic “events.nodes.results. {{msgId}}”  
reduce.size counter reduceId Size of messages sent to nats on topic “events.nodes.results. {{msgId}}” bytes

Table 13 Client Metrics
Name Type Possible tags Description Unit
Prefix: genvid.viewer.        
cached.bytes gauge stream Client cache size bytes
cached.seconds gauge stream Client cache size in content time s
deviation.from.latest.frame gauge Deviation between the current media player time and the most recent data in the source buffer ms
events.sent.Hz gauge Number of events sent events/s
frame.decode.duration timing The time it takes to decode newly received frames ms
frame.decode.errors gauge The number of frame decoding errors  
latency timing The stream latency ms
notification.decode.errors gauge Number of notification decoding errors  
notification.decode.duration timing The amount of time it took to decode the received notifications ms
onDraw.duration.max timing The longest amount of time it took to process the onDraw call ms
onDraw.duration.mean timing The average ammount of time it took the onDraw callback to execute ms
onDraw.duration.min timing The shortest amount of time it took to process the onDraw call ms
onDraw.interval.max timing The longest amount of time between onDraw executions ms
onDraw.interval.mean timing The average amount of time between onDraw executions ms
onDraw.interval.min timing The shortest amount of time between onDraw executions ms
playback.rate gauge The player’s playback rate  
received.annotation.bytes.Hz gauge stream The amount of annotation bytes received per second Bps
received.annotation.frames.Hz gauge stream The amount of annotation frames received per second fps
received.data.bytes.Hz gauge stream The amount of data bytes received per second Bps
received.data.frames.Hz gauge stream The amount of frames received per second fps
streams.interval timing The amount of time it took to receive new streams ms
streams.received.Hz gauge The number of streams received streams/s
sync.error.max gauge The max sync error ms
sync.error.mean gauge The average sync error ms
sync.error.min gauge The min sync error ms
videoTime gauge The video time ms

Table 14 GCL Metrics
Name Type Possible tags Description Unit
gcl.received.frame.count gauge stream, streamtype Number of frames received since the last metric submission  
gcl.received.frame.missing gauge stream, streamtype Number of frames flagged as missing received since the last metric submission  
gcl.received.frame.rate gauge stream, streamtype Number of frames received, per second fps
gcl.received.frame.size gauge stream, streamtype Size, in bytes, of frames received, per second Bps
gcl.received.frame.total gauge stream, streamtype Total number of frames received over the lifetime of the session  
gcl.sent.frame.count gauge stream, streamtype Number of frames sent since the last metric submission  
gcl.sent.frame.missing gauge stream, streamtype Number of frames flagged as missing sent since the last metric submission  
gcl.sent.frame.rate gauge stream, streamtype Number of frames sent per second fps
gcl.sent.frame.size gauge stream, streamtype Size, in bytes, of frames sent, per second Bps
gcl.sent.frame.total gauge stream, streamtype Total number of frames sent over the lifetime of the the session  
gcl.buffersize gauge socketname Average size of a packet read or written through a socket over one second, sent once per second, triggered when a socket reads or writes a packet bytes
gcl.packet.count gauge socketname Number of packets read or written through a socket over one second, sent once per second, triggered when a socket reads or writes a packet fps
gcl.packet.latency gauge socketname Average latency between 2 packets read or written through a socket over one second, sent once per second, triggered when a socket reads or writes a packet ms
gcl.packet.remaining gauge socketname Number of packets in transit per second, sent once per second, triggered when a socket reads or writes a packet  
gcl.packet.size gauge socketname Size of all packets read or written through a socket over one second, sent once per second, triggered when a socket reads or writes a packet Bps
gcl.packet.total gauge socketname Total number of packets read or written through a socket over the lifetime of the session, sent once per second, triggered when a socket reads or writes a packet  

Metrics Tags Definitions

stream
The ID of the stream (string).
streamtype
The type of the stream: video, audio, data, or annotations.
sessionname
The name of the session.
session
Session identifer (internal pointer value).
filtername
The name of filter in composition graph.
websocket
The address of the pointer of the Websocket.
reduceId
The ID of the reduce definition.
socketname
The name and type (read or write) of the socket.