Skip to content

Telemetry ​

GFN collects extensive telemetry for quality, performance, and usage analytics. Telemetry flows from both the client (JS) and the server (GCIS plugins via NvTelemetry).

Client Telemetry ​

TelemetryService ​

Located in main_beautified.js and 277_beautified.js.

Key methods:

  • telemetryService.setScreen(screenId) — tracks which screen the user is on
  • telemetryUtilService.sendClickEvent(telemetryId) — click tracking
  • telemetryService.sendEvent(event) — generic event

Session Telemetry Events ​

Emitted at session start/end (from vendor_beautified.js):

javascript
{
  // Session identifiers
  sessionId: string,
  subSessionId: string,
  cmsId: number,             // Game ID
  networkTestSessionId: string,

  // Streaming quality
  exitErrorCode: number,
  streamDuration: number,     // milliseconds
  frameCount: number,
  codec: string,              // "H264", "HEVC", "AV1"

  // Connection info
  zoneAddress: string,
  connectivityInfo: object,
  streamInfo: object,
  streamingProfile: string,   // GUID

  // Client info
  systemInfoGuid: string,

  // Flags
  isResume: boolean
}

Network Test Telemetry ​

javascript
NetworkTest.emit("NetworkTestCompleted", {
  sessionId: string,
  error: object | null,
  zone: string
})

getNetworkTestExceptionTelemetryEvent()
getNetworkTestHttpTelemetryEvent()

Screen Tracking ​

javascript
// Game library screens
telemetryService.setScreen(C.MCB.ScreenAllGames)

// UI events
telemetryUtilService.sendClickEvent("game_tile_click")
telemetryUtilService.sendClickEvent("deep_link_share")

Game Launch Events ​

From 277_beautified.js:

  • Game launch attempts (success/failure)
  • Quit game events
  • Layout error events with telemetry IDs
  • Deep link share events

Session Distributed Tracing ​

GameSessionDistributedTracingService integrates with LightStep for end-to-end session tracing:

Connection info from LightStepConnectionInfoDef protobuf
Trace spans across: client → GSG → PM → NGS → GCIS plugins

Server-Side Telemetry ​

NvTelemetry Framework ​

All GCIS plugins emit telemetry via NvTelemetry:

  • ElmPlugin: Security violation events, session lifecycle events
  • GciPlugin: File integrity events, process violations
  • UadMLPlugin: ML inference results, anomaly scores
  • LkmPlugin: Session management events

OpenTelemetry Export ​

json
{
  "OpenTelemetry": {
    "host": "[REDACTED_OTEL_HOST]",
    "stagingHost": "[REDACTED_OTEL_HOST]",
    "port": 8282,
    "enable": true,
    "isSslEnabled": true
  }
}

OpenTracing (LightStep) ​

json
{
  "OpenTracing": {
    "url": "https://ls.dtrace.nvidia.com",
    "port": 443
  }
}

Gameseat Telemetry Connector ​

A separate telemetry aggregator for game seat metrics:

json
{
  "GameseatTelemetryConnector": {
    "enable": false,
    "ngsSchema": "gfn-team.open.ngs:4",
    "ctmtSchema": "gfn-team.open.ctmt:2",
    "ngsCollector": "gfn-team.open.ngs",
    "telemetryAggregatorResponseTimeoutMs": 3000,
    "exclusiveMode": true
  }
}

Currently disabled.

Analytics ​

Performance monitoring enabled at seat level:

json
{
  "Analytics": {
    "enablePerfmon": true,
    "enablePerfmonEarlyStart": false
  }
}

End-of-session QoS telemetry for Windows/macOS native clients:

json
{
  "vqos[0].statsProcessorThread.flags": 255,
  "vqos[0].sendEndOfSessionQosTelemetry": 1
}

This captures detailed bitrate, packet loss, latency, and jitter statistics for the uplink channel.

Log-Based Telemetry ​

The GCIS plugin logs record timestamps and event data for every:

  • Session setup/teardown
  • Security violation detection
  • Process creation on the rig
  • DNS queries and registry modifications
  • ML inference scores

All logs are uploaded post-session to NVIDIA's backend with configurable consent levels.

admindesk.top — Reversed & documented from Asgard rig backups and GCIS plugin binaries.