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 |
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
, 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 |