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. allocatedtextures gauge   Number of textures allocated by the frame grabber.
genvid.sdk. mappedtextures gauge   Number of textures mapped by the frame grabber.
genvid.sdk. mapping_us timing   Time in microseconds it took the frame grabber to map a texture.
genvid.sdk. initvideo_us timing stream Time in microseconds spent in the InitVideo() function.
genvid.sdk. termvideo_us timing stream Time in microseconds spent in the TermVideo() function.
genvid.sdk. submitvideo_us timing stream Time in microseconds spent in the SubmitVideo() function.
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.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

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