Metrics

Warning

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

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
prefix name type possible tags description
loadtest.session. total counter   Number of sessions created
loadtest.session. retry counter   Number of connection retries
loadtest.session. success counter   Number of sessions successfully authenticated on the first try
loadtest.session. success.elapsed time   Time between the connection and a successful authentication
loadtest.session. successwitherror counter   Number of sessions successfully authenticated after a failure
loadtest.session. successwitherror.elapsed time   Time between the connection and a successful authentication after a failure
loadtest.session. error counter   Number of web socket connection failures
loadtest.session. streamReceived.elapsed time   Time between the connection and the first stream received
loadtest.session. drawReceived.elapsed time   Time between the connection and the first draw received