콘텐츠로 이동

CI 통합 프로파일링

CI 통합 프로파일링은 빌드 파이프라인에서 자동으로 퍼포먼스 텔레메트리를 수집하고 리그레션을 감지하는 기능입니다.

  1. CI 빌드 — 게임 빌드 생성
  2. 자동 테스트 — 사전 정의된 시나리오를 자동 실행
  3. 텔레메트리 수집 — SDK가 퍼포먼스 데이터를 Framedash에 전송
  4. 비교 분석 — 이전 빌드와 퍼포먼스를 자동 비교
  5. 알림 — 임계값을 초과하는 리그레션이 감지되면 알림 발송

SDK 초기화 시 build_id를 CI 환경 변수에서 설정합니다.

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"));
// EndpointUrl에 빈 문자열을 전달하여 기본값을 사용합니다.
Subsystem->InitializeTelemetry(ApiKey, TEXT(""), BuildId);
}

각 맵/영역을 순회하는 테스트 시나리오를 작성하여 일관된 데이터를 수집합니다.

대시보드에서 임계값을 설정합니다:

  • FPS가 이전 빌드 대비 10% 이상 저하
  • 프레임 타임이 33ms 초과
  • 메모리 사용량이 이전 빌드 대비 20% 이상 증가
  • 풀 리퀘스트의 퍼포먼스 체크 — 병합 전 리그레션 감지
  • 나이틀리 빌드 모니터링 — 매일 빌드를 자동 프로파일링
  • 릴리스 전 품질 게이트 — 퍼포먼스 기준을 충족하지 않는 빌드 차단