Skip to content

CI-Integrated Profiling

CI-integrated profiling is a feature that automatically collects performance telemetry from your build pipeline and detects regressions.

  1. CI Build — Create a game build
  2. Automated Testing — Run predefined scenarios automatically
  3. Telemetry Collection — The SDK sends performance data to Framedash
  4. Comparative Analysis — Automatically compare performance against the previous build
  5. Alerts — Send notifications when regressions exceeding thresholds are detected

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);
}

Create test scenarios that traverse each map/area to collect consistent data.

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