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 ontelemetryUtilService.sendClickEvent(telemetryId)— click trackingtelemetryService.sendEvent(event)— generic event
Session Telemetry Events
Emitted at session start/end (from vendor_beautified.js):
{
// 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
NetworkTest.emit("NetworkTestCompleted", {
sessionId: string,
error: object | null,
zone: string
})
getNetworkTestExceptionTelemetryEvent()
getNetworkTestHttpTelemetryEvent()Screen Tracking
// 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 pluginsServer-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
{
"OpenTelemetry": {
"host": "prod.otel.kaizen.nvidia.com",
"stagingHost": "stg.otel.kaizen.nvidia.com",
"port": 8282,
"enable": true,
"isSslEnabled": true
}
}OpenTracing (LightStep)
{
"OpenTracing": {
"url": "https://ls.dtrace.nvidia.com",
"port": 443
}
}Gameseat Telemetry Connector
A separate telemetry aggregator for game seat metrics:
{
"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:
{
"Analytics": {
"enablePerfmon": true,
"enablePerfmonEarlyStart": false
}
}UDS (Uplink Detection Statistics)
End-of-session QoS telemetry for Windows/macOS native clients:
{
"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.