로그 필터링 및 로그 기반 측정항목 만들기

Crashlytics 데이터 및 (선택사항) Firebase 세션 데이터를 Cloud Logging로 내보낸 후 로그를 필터링하고 로그 기반 측정항목을 만들 수 있습니다. 이 두 가지 모두 특정 데이터를 보고, 사용하고, 분석하는 데 유용합니다.

아직 확인하지 않았다면 데이터로 무엇을 할 수 있나요?에서 Cloud Logging에 저장된 데이터로 작업하는 방법에 관한 전체 목록과 예를 확인하세요.

쿼리를 사용하여 로그 필터링

로그를 필터링하면 특정 데이터를 확인하고 데이터 저장 및 추가 분석 비용을 절감하는 데 도움이 됩니다. LQL (Logging 쿼리 언어)을 사용하여 로그를 필터링합니다.

쿼리를 사용하여 로그를 필터링하는 방법을 알아보려면 Logs Explorer를 사용한 샘플 쿼리로그 쿼리 작성을 참고하세요. 아래 표에서는 이러한 쿼리에 사용할 수 있는 필드를 설명합니다.

필터 예시

Crashlytics의 경우 쿼리의 몇 가지 초기 필터는 다음과 같습니다.

  • 특정 앱 버전의 모든 심각한 비정상 종료를 찾습니다.

    logName="projects/PROJECT_ID/logs/firebasecrashlytics.googleapis.com%2Fevents"
    jsonPayload.issue.errorType="FATAL"
    jsonPayload.version.displayVersion="3.2.0"
  • 특정 기기 모델 (예: Pixel 6a)에서 발생하는 비정상 종료를 식별합니다.

    logName="projects/PROJECT_ID/logs/firebasecrashlytics.googleapis.com%2Fevents"
    jsonPayload.device.model="Pixel 6a"
  • 모든 심각한 이벤트에서 특정 OutOfMemoryError를 검색합니다.

    logName="projects/PROJECT_ID/logs/firebasecrashlytics.googleapis.com%2Fevents"
    jsonPayload.issue.errorType="FATAL"
    jsonPayload.issue.subtitle="java.lang.OutOfMemoryError"
  • 특정 Crashlytics 문제 ID의 이벤트를 찾습니다.

    logName="projects/PROJECT_ID/logs/firebasecrashlytics.googleapis.com%2Fevents"
    jsonPayload.issue.id="ISSUE_ID"

로그 스키마

각 로그 항목에는 사전 정의된 구조와 쿼리 가능한 필드가 있습니다(LogEntry 참조).

Crashlytics 데이터, Firebase 세션 데이터, 기기 로그를 비롯한 내보낸 데이터의 로그 스키마에 대해 알아봅니다.

로그 기반 측정항목 만들기

로그 기반 측정항목을 보고 빌드한 다음 Cloud Monitoring에서 이러한 측정항목을 사용하여 차트, 커스텀 대시보드, 커스텀 알림을 만들 수 있습니다.

  • 특정 기간에 발생한 로깅 이벤트의 개수와 같이 자동으로 기록되는 사전 정의된 시스템 측정항목을 사용합니다.

  • 프로젝트의 사용자 정의 측정항목을 만듭니다. 지정된 쿼리와 일치하는 로그 항목 수를 계산하거나 일치하는 로그 항목으로 특정 값을 추적할 수 있습니다. 정규 표현식을 사용하여 필터링할 수 있습니다. 사용자 정의 측정항목 가격을 검토하세요.

  • Cloud Monitoring을 사용하여 특정 메시지가 포함된 로그 항목의 개수를 기록하거나 로그 항목에 보고된 지연 시간 정보를 추출합니다. 그런 다음 차트 및 맞춤 알림에서 이러한 측정항목을 사용할 수 있습니다.

로그 기반 측정항목의 예

내보낸 Crashlytics 및 Firebase 세션 데이터에서 만들 수 있는 사용자 정의 로그 기반 측정항목의 두 가지 예는 다음과 같습니다.

  • Crashlytics 데이터를 사용합니다.
    errorType 라벨이 있는 firebase/crashlytics_events라는 측정항목을 만들고 다음과 같이 정의합니다.

    logName="projects/PROJECT_ID/logs/firebasecrashlytics.googleapis.com%2Fevents"

  • Firebase 세션 데이터 사용:
    eventType 라벨이 지정된 firebase/session_events이라는 측정항목을 만들고 다음과 같이 정의합니다.

    logName="projects/PROJECT_ID/logs/firebasecrashlytics.googleapis.com%2Fsession_events"

다음 단계