Metrics

Warning

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

Genvid metrics

Genvid services are configured to publish metrics 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.

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

Table 1 Genvid Specific Metrics
name type possible tags description
Prefix: genvid.compose-backend.
framesent counter stream, streamtype Number of frames sent to gvencode
framesizesent counter stream, streamtype Size in bytes of frames sent to gvencode
Prefix: genvid.compose-frontend.
framemissed counter stream, streamtype, sessionname Number of frames created by compose
framereceived counter stream, streamtype, sessionname Number of frames received
framesizereceived counter stream, streamtype, sessionname Size in bytes of frames received
framedelayreceived_us gauge stream, streamtype, sessionname Delay of the frame compare to its expected time.
Prefix: genvid.compose-gameframes.
framesent counter stream, streamtype Number of frames sent to replication nodes
framesizesent counter stream, streamtype Size in bytes of frames sent to replication nodes
framedropped counter stream, streamtype Number of frames rejected
Prefix: genvid.gvencode-compose.
blindingtime timing filtername Time to blind one video frame
bytesent counter filtername, session Number of bytes sent by a session
chromakeyingtime timing filtername Time to compose a chroma key layout
decodingtime timing filtername Time to decode one frame
delayedframe counter filtername, streamtype Number of frames delayed
delayedframesize counter filtername, streamtype Size in bytes uses by delayed frames
encodingtime timing filtername Time to encode one frame
framedropped counter filtername, streamtype Number of dropped frames to preserve the frame rate
frameduplicated counter filtername, streamtype Number of duplicated frames to preserve the frame rate
frameerror_fr counter filtername frame error (frame) for sending frame to RTMP. This value should 0
framereceived counter filtername, streamtype Number of frames received from compose
framesent counter filtername, streamtype Number of frames sent to broadcaster
framesizesent counter filtername, streamtype Size in bytes of frame sent to broadcaster
framesizereceived counter filtername, streamtype Size in bytes of frames received from compose
lowoutputbufferlevel counter filtername Low output buffer level detection
missingframecreatingtime timing filtername Time to create a missing frame
outputbufferlimit_us counter filtername frame duration (us) in output buffer
runningtime timing filtername Time to complete the execution of one frame by a filter
scalingtime timing filtername Time to scale one video frame
session counter filtername, session Number of sessions active
Prefix: genvid.leafd.reduce.
collect timing reduceId Duration of a collect call, used before sending a map reduce result
processkeyvalue timing reduceId Duration of a processkeyvalue call , part of a reduction execution
reduce timing reduceId Duration of a reduce call, part of a reduction execution
sent count reduceId Number of messages sent to nats on topic “events.nodes.results. {{msgId}}”
size count reduceId Size in bytes of messages sent to nats on topic “events.nodes. results.{{msgId}}”
Prefix: genvid.leafd.map.
accepted count mapId, success Number of key values processed by a map
processkeyvalues timing mapId, success Duration of a processkeyvalues call, part of a map execution
refused count   Number of key values not processed by a map
Prefix: genvid.leafd.connection.
currentdatacachelength gauge   The current number of messages stored in the data cache
initialsendtime timing   Duration of a processkeyvalues call, part of a map reduce
sentdatacachelength gauge   The number of message in the data cache being sent to a client
sentdatacachesize gauge   The size of the data cache being sent to the client
Prefix: genvid.leafd.root.
receivedpackets count type The number of packets received from rootd
receivedpacketssize count type The size of the packets received from rootd
Prefix: genvid.leafd.connection.
current gauge   The current number of clients connected to a leaf
disconnected count   The number of client disconnections from a leaf
elapsed timing   The duration of a client session
sentpackets count   The number of packets sent
sentpacketssize count   The size of the packets sent
total count   The number of client connections to a leaf
Prefix: genvid.leafd.event.
count count   The number of events sent by the clients
size count   The size of the events sent by the clients
Prefix: genvid.sdk.
bandwidth gauge stream Per stream number of bytes per second submitted to the SDK
frameadded gauge stream Number of extra frames that were sent to keep the expected rate up following missing submits
framedelta gauge stream Delta in ms between time codes of frames sent (SDK output)
framedropped counter stream, streamtype Number of frames dropped by the the SDK
framesent counter stream, streamtype Number of frames sent by the SDK
framesizedropped counter stream, streamtype Size in bytes of frames dropped by the the SDK
framesizesent counter stream, streamtype Size in bytes of frames sent by the SDK
inputbandwidth gauge   Number of bytes per second submitted to the SDK
notificationsent counter notificationid Number of notifications succesfully sent by the the SDK
notificationsizepublished gauge notificationid Size in bytes of notifications succesfully sent by the the SDK
notificationdropped count notificationid Number of notifications dropped by the SDK
       
notificationsizedropped gauge notificationid Size in bytes of notifications dropped by the SDK
outputbandwidth gauge   Number of bytes per second sent by the SDK
submitdelta gauge stream Delta in ms between time codes of frames submitted (SDK input)
Prefix: genvid.studiod.
messagebytereceived counter websocket Size in bytes of messages received from a client with a Websocket
messagebytesent counter websocket Size in bytes of messages sent to client with a Websocket
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 opens by studio

These are the available tags:

  • 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.

Load tester sample metrics

The following metrics are provided by the Load tester

Table 2 Load tester sample metrics
name type possible tags description
Prefix: loadtest.session.
drawReceived.elapsed time   Time between the connection and the first draw received
error counter   Number of web socket connection failures
retry counter   Number of connection retries
streamReceived.elapsed time   Time between the connection and the first stream received
success counter   Number of sessions successfully authenticated on the first try
success.elapsed time   Time between the connection and a successful authentication
successwitherror counter   Number of sessions successfully authenticated after a failure
successwitherror.elapsed time   Time between the connection and a successful authentication after a failure
total counter   Number of sessions created