Performance Monitoring은 앱의 성능을 모니터링하는 데 도움이 되는 trace를 수집합니다. trace는 앱에서 두 시점 간에 캡처된 성능 데이터 보고서입니다.
자체 trace를 만들어 앱의 특정 코드에 연결된 성능 데이터를 모니터링할 수 있습니다. 커스텀 코드 trace를 사용하면 앱이 특정 작업 또는 일련의 작업을 완료하는 데 걸리는 시간을 파악할 수 있습니다. 예를 들면 이미지 모음을 로딩하거나 데이터베이스를 쿼리하는 작업이 있습니다.
커스텀 코드 trace의 기본 측정항목은 '기간'(trace의 시작 지점과 중지 지점 사이의 시간)이지만 커스텀 측정항목을 추가할 수도 있습니다.
코드에서는 Performance Monitoring SDK에서 제공하는 API를 사용하여 커스텀 코드 trace의 시작과 끝을 정의합니다.
커스텀 코드 trace는 생성된 후 언제든지 시작할 수 있으며 스레드 안전성을 갖습니다.
이러한 trace에 대해 수집된 기본 측정항목은 '기간'이므로 '기간 trace'라고도 합니다.
성능 대시보드 하단에 있는 trace 테이블의 커스텀 trace 하위 탭에서 이러한 trace의 데이터를 확인할 수 있습니다(이 페이지의 뒷부분에서 Console 사용에 대해 자세히 알아보기).
기본 속성, 커스텀 속성, 커스텀 측정항목
커스텀 코드 trace의 경우 Performance Monitoring은 Firebase Console에서 trace용 데이터를 필터링할 수 있도록 기본 속성(앱 버전, 국가, 기기 등 일반 메타데이터)을 자동으로 로깅합니다. 커스텀 속성(예: 게임 레벨 또는 사용자 속성)을 추가하고 모니터링할 수도 있습니다.
커스텀 코드 trace를 상세하게 구성하면 trace 범위 내에서 발생하는 성능 관련 이벤트에 대한 커스텀 측정항목을 기록할 수 있습니다. 예를 들어 캐시 적중 및 부적중 횟수 또는 긴 시간 동안 UI가 응답하지 않은 횟수에 대한 커스텀 측정항목을 만들 수 있습니다.
커스텀 속성과 커스텀 측정항목은 Firebase Console에 trace의 기본 속성 및 기본 측정항목과 함께 표시됩니다.
커스텀 코드 trace 추가
Performance Monitoring Trace API를 사용하여 특정 애플리케이션 코드를 모니터링하는 커스텀 코드 trace를 추가합니다.
다음에 유의하세요.
- 앱에 여러 커스텀 코드 trace가 있을 수 있습니다.
- 동시에 둘 이상의 커스텀 코드 trace를 실행할 수 있습니다.
- 커스텀 코드 trace의 이름에는 선행 공백이나 후행 공백, 선행 밑줄(
_
)이 없어야 하며 이름의 최대 길이는 100자(영문 기준)입니다. - 커스텀 코드 trace는 커스텀 측정항목과 커스텀 속성 추가를 지원합니다.
커스텀 코드 trace를 시작 및 중지하려면 trace를 생성할 코드를 다음과 유사한 코드로 래핑해야 합니다.
Trace customTrace = FirebasePerformance.instance.newTrace('custom-trace');
await customTrace.start();
// Code you want to trace
await customTrace.stop();
커스텀 코드 trace에 커스텀 측정항목 추가
Performance Monitoring Trace API를 사용하여 커스텀 코드 trace에 커스텀 측정항목을 추가합니다.
다음에 유의하세요.
- 커스텀 측정항목의 이름에는 선행 공백이나 후행 공백, 선행 밑줄(
_
)이 없어야 하며, 이름의 최대 길이는 100자(영문 기준)입니다. - 각 커스텀 코드 trace는 최대 32개의 측정항목(기본 기간 측정항목 포함)을 기록할 수 있습니다.
커스텀 측정항목을 추가하려면 이벤트가 발생할 때마다 다음과 유사한 코드 줄을 추가합니다. 예를 들어 이 커스텀 측정항목은 캐시 적중 또는 재시도와 같은 성능 관련 이벤트를 계수합니다.
Trace customTrace = FirebasePerformance.instance.newTrace("custom-trace");
await customTrace.start();
// Code you want to trace
customTrace.incrementMetric("metric-name", 1);
// More code
await customTrace.stop();
커스텀 코드 trace용 커스텀 속성 만들기
커스텀 속성을 사용하려면 앱에 속성을 정의하는 코드를 추가하고 특정 커스텀 코드 trace와 연결합니다. trace 시작 시점과 중지 시점 사이에 언제든지 커스텀 속성을 설정할 수 있습니다.
다음에 유의하세요.
커스텀 속성의 이름에는 선행 공백이나 후행 공백, 선행 밑줄(
_
)이 없어야 하며, 이름의 최대 길이는 32자(영문 기준)입니다.각 커스텀 코드 trace는 커스텀 속성을 최대 5개까지 기록할 수 있습니다.
Google에서 개인을 식별할 수 있는 정보가 포함된 커스텀 속성을 사용하면 안 됩니다.
Trace trace = FirebasePerformance.instance.newTrace("test_trace");
// Update scenario.
trace.putAttribute("experiment", "A");
// Reading scenario.
String? experimentValue = trace.getAttribute("experiment");
// Delete scenario.
trace.removeAttribute("experiment");
// Read attributes.
Map<String, String> traceAttributes = trace.getAttributes();
성능 데이터 추적, 보기, 필터링
대시보드에서 특정 측정항목 추적
주요 측정항목의 추세를 알아보려면 측정항목을 성능 대시보드 상단에 있는 측정항목 보드에 추가하세요. 주별 변동사항을 확인하여 회귀를 빠르게 파악하거나 코드의 최근 변동사항이 성능을 개선하는지 확인할 수 있습니다.
측정항목 보드에 측정항목을 추가하려면 Firebase Console의 성능 대시보드로 이동한 후 대시보드 탭을 클릭합니다. 빈 측정항목 카드를 클릭한 다음 보드에 추가할 기존 측정항목을 선택합니다. 측정항목을 교체하거나 삭제하는 등 추가 옵션을 보려면 채워진 측정항목 카드에서 세로 줄임표(⋮)를 클릭합니다.
측정항목 보드에는 시간 경과에 따라 수집된 측정항목 데이터가 그래픽 형식 및 백분율 수치 변화의 형태로 표시됩니다.
대시보드 사용에 대해 자세히 알아보세요.
trace 및 데이터 보기
trace를 보려면 Firebase Console의 성능 대시보드로 이동하여 trace 테이블까지 아래로 스크롤한 다음 적절한 하위 탭을 클릭합니다. 테이블에는 각 trace의 주요 측정항목이 표시되며 특정 측정항목의 변화율을 기준으로 목록을 정렬할 수도 있습니다.
trace 테이블에서 trace 이름을 클릭하면 다양한 화면을 클릭하여 trace를 살펴보고 관심이 있는 측정항목을 드릴다운할 수 있습니다. 대부분의 페이지에서 필터 버튼(화면 왼쪽 상단)을 사용하여 속성별로 데이터를 필터링할 수 있습니다. 예를 들면 다음과 같습니다.
- 앱 버전별로 필터링하여 이전 또는 최신 출시 버전에 대한 데이터를 확인합니다.
- 기기별로 필터링하여 이전 기기가 앱을 처리하는 방법을 알아봅니다.
- 국가별로 필터링하여 데이터베이스 위치가 특정 리전에 영향을 미치지 않는지 확인합니다.
trace 데이터 보기에 대해 자세히 알아보세요.
다음 단계
속성을 사용하여 성능 데이터 검사 방법 자세히 알아보기
Firebase Console에서 성능 문제 추적 방법 자세히 알아보기
앱 성능을 저하시키는 코드 변경에 대한 알림 설정하기. 예를 들어 특정 커스텀 코드 trace의 기간이 설정된 기준값을 초과하면 팀에 이메일 알림을 보내도록 구성할 수 있습니다.