CI-Integrated Profiling
CI-integrated profiling is a feature that automatically collects performance telemetry from your build pipeline and detects regressions.
How It Works
Section titled “How It Works”- CI Build — Create a game build
- Automated Testing — Run predefined scenarios automatically
- Telemetry Collection — The SDK sends performance data to Framedash
- Comparative Analysis — Automatically compare performance against the previous build
- Alerts — Send notifications when regressions exceeding thresholds are detected
1. SDK Configuration in CI
Section titled “1. SDK Configuration in CI”Set the build_id from CI environment variables during SDK initialization.
TelemetrySDK.Initialize( apiKey: Environment.GetEnvironmentVariable("FRAMEDASH_API_KEY"), buildId: Environment.GetEnvironmentVariable("CI_COMMIT_SHA"));if (auto* Subsystem = GetGameInstance()->GetSubsystem<UFramedashSubsystem>()){ FString ApiKey = FPlatformMisc::GetEnvironmentVariable(TEXT("FRAMEDASH_API_KEY")); FString BuildId = FPlatformMisc::GetEnvironmentVariable(TEXT("CI_COMMIT_SHA")); // Pass an empty string for EndpointUrl to use the default value. Subsystem->InitializeTelemetry(ApiKey, TEXT(""), BuildId);}2. Define Test Scenarios
Section titled “2. Define Test Scenarios”Create test scenarios that traverse each map/area to collect consistent data.
3. Configure Alerts
Section titled “3. Configure Alerts”Set thresholds in the dashboard:
- FPS drops more than 10% compared to the previous build
- Frame time exceeds 33ms
- Memory usage increases more than 20% compared to the previous build
Use Cases
Section titled “Use Cases”- Pull Request Performance Checks — Detect regressions before merging
- Nightly Build Monitoring — Automatically profile daily builds
- Pre-Release Quality Gates — Block builds that do not meet performance criteria
Next Steps
Section titled “Next Steps”- CLI Reference — Using the CLI in CI pipelines
- Heatmaps — Visualizing performance