Firebase 프로젝트를 Cloud Logging에 연결하여 각 Hosting 사이트의 웹 요청 로그를 보고 검색, 필터링할 수 있습니다. 이러한 로그는 Firebase에서 자동으로 제공하는 CDN에서 가져오므로 사이트에 대한 모든 요청과 관련 요청 데이터가 로깅됩니다.
Cloud Logging 로그로 수행할 수 있는 작업은 다음과 같습니다. 세부정보는 이 페이지의 각 섹션을 참조하세요.
사이트를 상세하게 파악 — 사용자가 사이트를 방문한 위치와 시기, 사이트의 응답 상태, 최종 사용자 요청의 지연 시간 등을 확인할 수 있습니다.
쿼리를 사용하여 로그를 필터링 — 자동으로 수집된 데이터를 활용하여 각 요청 또는 사이트와 관련된 데이터를 필터링하고 도표로 표시합니다.
로그 기반 측정항목 사용 — 사전 정의된 시스템 측정항목 또는 사용자 정의 측정항목에서 Cloud Monitoring 차트 및 알림 정책을 만듭니다.
다른 Google Cloud 도구로 로그 내보내기 - 보다 강력한 분석 및 상관관계 확인을 위해 다른 도구(예: BigQuery, 데이터 스튜디오)에서 로그 데이터를 사용합니다.
프로젝트에 Hosting 사이트가 여러 개 있는 경우 로그를 내보낼 Hosting 사이트를 선택할 수 있습니다. 그런 다음 Hosting 사이트 및 도메인을 기준으로 로그 데이터를 필터링하고 볼 수 있습니다. 로그를 내보낼 특정 Hosting 사이트를 선택하면 프로젝트에서 처리되는 데이터 양을 제어할 수 있습니다.
Cloud Logging에 연결하여 데이터 사용량 모니터링
Cloud Logging에 연결하여 웹 요청 로그 내보내기
Firebase Console의 Cloud Logging 통합 카드에서 연결을 클릭합니다.
Cloud Logging을 연결하거나 연결 해제하려면 프로젝트 소유자, 편집자 또는 Firebase 개발 관리자 역할에 번들로 포함된 권한이 필요합니다.
화면에 표시된 안내에 따라 Cloud Logging으로 로그를 내보낼 Hosting 사이트를 선택합니다.
활성 Hosting 사이트가 하나 이상 있는 경우 연결 워크플로에 각 Hosting 사이트의 로그에 대한 예상 데이터 사용량 수준이 표시됩니다. 이 값은 지난 30일 사용량을 통해 측정한 수치입니다.
Cloud Logging에 연결하면 Hosting 사이트에 대한 새 요청에 대한 로그가 일반적으로 요청 후 30분 안에 표시됩니다.
또한 Cloud Logging에서 Firebase Hosting 연결을 해제하여 웹 요청 로그를 Cloud Logging으로 내보내기를 중지할 수 있습니다.
로그에 대한 데이터 사용량 모니터링
Cloud Logging에 연결하면 Hosting 사이트에서 로그에 대한 데이터 사용량 수준을 볼 수 있습니다.
Firebase Console의 Cloud Logging 통합 카드에서 보기
Google Cloud 콘솔의 Logs Viewer 인터페이스(
log_bytes
측정항목)에서 보기
사이트를 상세하게 파악
Google Cloud 콘솔의 Logs Viewer 인터페이스는 쿼리, 기본 제공 필터, 데이터 패널을 사용하여 특정 로그와 데이터를 볼 수 있는 도구를 제공합니다. 아래에 나와 있는 다음 섹션에서 쿼리를 사용하여 로그를 필터링하는 방법을 자세히 알아보세요.
사이트의 트래픽은 세분화된 수준에서 보면 어디에서 발생하나요?
소스 IP, 리퍼러, 도시, 상태 등 각 요청에 대한 정보를 볼 수 있습니다.사용자가 언제 사이트를 방문하나요?
히스토그램 패널을 사용하여 특정 기간의 분포를 확인할 수 있습니다. 이를 통해 앱 사용량의 통상적인 최고점과 최저점뿐만 아니라 예기치 않은 트래픽 급증을 파악할 수 있습니다.최종 사용자 요청의 상태 분포는 어떤가요?
각 요청의 상태를 볼 수 있으며 오류가 발생한 요청을 진단할 수도 있습니다.Critical
,Error
또는Warning
로 로그를 필터링할 수 있습니다.사이트에서 요청에 응답하는 데 얼마나 걸리나요?
각 로그에 캡처된latency
값을 사용하여 각 요청에 대한 사이트의 지연 시간을 확인할 수 있습니다.사이트에서 콘텐츠 캐싱을 활용하고 있나요?
각 로그에 포함된cacheHit
필드는 Hosting의 CDN 캐시에서 사이트의 리소스가 신속하게 제공되었는지 아니면 Hosting 백엔드로 완전히 이동했어야 하는지를 알려줍니다. 이렇게 하면 Firebase의 글로벌 CDN을 최대한 활용하여 웹사이트의 성능을 개선할 수 있습니다. 예를 들면 데이터를 사용하여 정적 애셋 및 동적 콘텐츠의 캐싱 습관을 세부 조정할 수 있습니다.트래픽은 여러 도메인에 어떻게 분산되나요?
도메인 또는 Hosting 사이트가 여러 개 있는 경우 도메인 또는 사이트를 기준으로 로그를 필터링할 수 있습니다. 이렇게 하면 트래픽이 어떻게 분산되는지 확인할 수 있습니다. 도메인을 기준으로 필터링하면 가장 자주 방문한 도메인을 추적할 수 있습니다.
쿼리를 사용하여 로그 필터링
쿼리를 사용하여 로그를 필터링하는 방법을 알아보려면 로그 뷰어를 사용한 샘플 쿼리 및 로그 쿼리 작성을 참조하세요. 아래 표에서는 이러한 쿼리에 사용할 수 있는 필드를 설명합니다.
Hosting의 경우 쿼리의 몇 가지 초기 필터는 다음과 같습니다.
- 리소스(
resource.type
) -firebase_domain
(Firebase Hosting 사이트 도메인) - 로그 이름(
logName
) -webrequests
(Firebase Hosting)
각 로그 항목에는 사전 정의된 구조와 쿼리 가능한 필드가 있습니다(LogEntry 참조). Hosting의 경우 일부 필드는 HTTP 요청의 표준이지만 Hosting이 각 요청에서 실행하는 처리에서 가져오는 다른 필드 값이 있습니다.
필드 | 설명 |
---|---|
Firebase Hosting은 로그 항목의 httpRequest 객체에 다음 필드를 저장합니다.이러한 필드는 HTTP 사양에 정의되어 있습니다. |
|
cacheHit |
Hosting CDN에서 캐시에 응답 리소스가 있는지 여부 |
latency |
s 포스트픽스가 있는 초 단위 요청 기간(예: 1.256s ) |
protocol |
요청에 사용된 프로토콜(예: HTTP/1.1 , HTTP/2 , websocket ) |
referer |
현재 요청한 페이지로 연결되는 링크가 있는 이전 웹 페이지의 주소(있는 경우) |
remoteIp |
요청의 발신 클라이언트 IP |
requestMethod |
요청 메서드(GET , POST , PUT 등) |
requestSize |
요청의 크기(바이트) |
requestUrl |
요청의 전체 URL(예:https://foo.web.app/bar 또는
https://custom.domain.com?query=param ) |
responseSize |
HTTP 응답 크기(바이트) |
serverIp |
채워지지 않음 |
status |
HTTP 응답 상태(예: 200 또는 404 ) |
userAgent |
요청의 user-Agent 헤더 |
Firebase Hosting은 로그 항목의 jsonPayload 객체에 추가 필드를 저장합니다.
|
|
acceptEncoding |
(HTTP 요청에서) 클라이언트가 지원하는 콘텐츠 인코딩(일반적으로 압축 알고리즘. 예: gzip 또는 compress ) |
billable |
요청에 대한 요금이 프로젝트에 청구되었는지 여부 |
customDomain |
요청이 커스텀 도메인에 대해 수행되었는지 여부 |
hostname |
요청이 수행된 호스트 이름 |
remoteIpCountry |
요청의 발신 국가 |
remoteIpCity |
요청의 발신 도시 |
로그 기반 측정항목 사용
로그 기반 측정항목을 보고 빌드한 다음 Cloud Monitoring에서 이러한 측정항목을 사용하여 차트와 알림 정책을 만들 수 있습니다.
특정 기간에 발생한 로깅 이벤트의 개수와 같이 자동으로 기록되는 사전 정의된 시스템 측정항목을 활용합니다.
프로젝트의 사용자 정의 측정항목을 만듭니다. 지정된 쿼리와 일치하는 로그 항목 수를 계산하거나 일치하는 로그 항목으로 특정 값을 추적할 수 있습니다. 정규 표현식을 사용하여 필터링할 수 있습니다.
Cloud Monitoring을 사용하여 특정 메시지가 포함된 로그 항목의 개수를 기록하거나 로그 항목에 보고된 지연 시간 정보를 추출합니다. 그런 다음 차트 및 알림 정책에서 이러한 측정항목을 사용할 수 있습니다.
Firebase Hosting은 다음과 같은 Hosting 관련 로깅 측정항목도 생성합니다. 이러한 측정항목은 로그 항목에 한정되지 않고 특정 Hosting 사이트에 전반적으로 적용됩니다.
log_bytes
: 각 사이트의 총 데이터 사용량response_count
: 사이트에 대해 작성된 총 응답 수이 측정항목에는 HTTP 상태 필드가 포함되어 있으므로 예를 들면 상태별로 HTTP 응답을 도표로 표시할 수 있습니다.
다른 Google Cloud 도구로 로그 내보내기
사이트의 로그를 Cloud Monitoring 또는 BigQuery와 같은 다른 Google Cloud 도구로 내보낼 수도 있습니다. 예를 들면 다음과 같습니다.
Cloud Monitoring을 사용하면 차트 및 알림 정책에서 사용할 수 있는 로그 기반 측정항목을 만들 수 있습니다.
BigQuery를 사용하면 다음 중 하나를 수행할 수 있습니다.
- 데이터 스튜디오를 사용하여 Hosting 데이터의 대시보드를 생성합니다.
- 쿼리를 실행하여 요청에 대한 보다 자세한 통계(평균 응답 크기, 캐시 적중과 캐시 부적중 비교 등)를 얻습니다.
- 사용자가 실제로 요청하는 URL을 확인합니다.
- Hosting 데이터를 BigQuery로 내보낸 다른 Firebase 데이터와 결합하여 새로운 방식으로 쿼리합니다.