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:
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.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 |
These are the available tags:
- stream: The ID of the stream (string).
- streamtype: The type of the stream:
video
,audio
,data
, orannotations
.- 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
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 |