feat(gamepulse): add GamePulse gaming telemetry integration#18878
feat(gamepulse): add GamePulse gaming telemetry integration#18878MathewRJ wants to merge 5 commits intoelastic:mainfrom
Conversation
GamePulse is a gaming performance telemetry agent that ships CPU, GPU, memory, frame timing, storage, network, audio, power, session lifecycle, discrete events, and eBPF kernel-level scheduler/I/O/GPU fence metrics directly to Elasticsearch via Fleet. Data streams (11): cpu, gpu, memory, frame, session, storage, network, audio, power, events (logs), ebpf Dashboards (7): Player Overview, Game Performance, Game Engine, Hardware Environment, Software Environment, Command Center, Regression Lab All pipeline tests pass. elastic-package check passes. Agent source: https://github.com/MathewRJ/GamePulse Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
✅ Vale Linting ResultsNo issues found on modified lines! The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
TL;DRThe Buildkite failure is a static test failure in the Remediation
Investigation detailsRoot Cause
These should be arrays for ECS-normalized Evidence
Source: Verification
Follow-upAfter fixing Note 🔒 Integrity filter blocked 2 itemsThe following items were blocked because they don't meet the GitHub integrity level.
To allow these resources, lower tools:
github:
min-integrity: approved # merged | approved | unapproved | noneWhat is this? | From workflow: PR Buildkite Detective Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not. |
… arrays in sample_event.json Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
🚀 Benchmarks reportTo see the full report comment with |
…pf_thread TSDB data stream
Per-thread scheduler metrics now ship to metrics-gamepulse.ebpf_thread-default
as a proper 12-data-stream TSDB stream with typed, queryable fields (comm, tid,
rank, runqueue_{min,max,avg}_us, switch_count, migration_count) instead of a
flattened blob on the aggregate ebpf stream.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
💚 Build Succeeded
History
|
|
@claude do a detailed initial review, as a new integration package to ensure all requirements are met. |
There was a problem hiding this comment.
Thanks for the substantial integration work. I found one blocking TSDB modeling issue in ebpf_thread (inline): tid is marked as a dimension, which risks unbounded time-series cardinality. Please address that before merge.
What is this? | From workflow: Mention in PR
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| description: "Thread name (Linux comm, max 15 chars)" | ||
| - name: tid | ||
| type: long | ||
| dimension: true |
There was a problem hiding this comment.
gamepulse.ebpf_thread.tid is currently marked as a TSDB dimension, but thread IDs are highly volatile and effectively unbounded over time. In a time_series data stream, that can create very high series cardinality and unnecessary index growth.
Please consider keeping tid as a regular field (remove dimension: true) and rely on more stable identifiers (for example host.name, session.id, and possibly comm) for dimensions.
What does this PR do?
Adds the GamePulse integration — a gaming performance telemetry agent that collects CPU, GPU, memory, frame timing, storage, network, audio, power, session lifecycle, discrete events, and kernel-level eBPF scheduler/I/O/GPU fence metrics, shipping them directly to Elasticsearch via Fleet.
Why is it important?
Gaming is one of the largest consumer workloads on Linux (Steam Deck, desktop gaming rigs) and Windows, yet there is no existing Elastic integration for gaming performance telemetry. GamePulse fills that gap, providing frame-time analysis, stutter detection, and hardware bottleneck identification in Kibana.
Checklist
event.*,host.*,service.*,ecs.version).fields/fields.ymlandfields/base-fields.yml.elastic-package checkpasses.elastic-package test pipelinepasses (all 24 test cases).img/screenshots/.gitkeepis present; real screenshots will be added before merge if reviewers request them (dashboards are live on Elastic Cloud and can be captured).Checklist for the reviewer
Data streams
gamepulse.cpugamepulse.gpugamepulse.memorygamepulse.framegamepulse.sessiongamepulse.storagegamepulse.networkgamepulse.audiogamepulse.powergamepulse.eventsgamepulse.ebpfAgent
The gamepulse-agent binary is distributed separately at https://github.com/MathewRJ/GamePulse. It supports Linux (Arch/AUR, Debian/Ubuntu deb, Fedora rpm) and Windows (winget).