로그 애널리틱스로 로그 볼륨 분석

이 문서에서는 로그 애널리틱스를 사용하여 로그 항목의 청구 가능 볼륨을 예측하는 방법을 설명합니다. 리소스 유형 또는 애플리케이션 이름과 같은 여러 측정기준별로 청구 가능 볼륨을 보고하고 집계하는 쿼리를 작성한 다음 쿼리 결과를 차트로 표시하고 볼 수 있습니다.

청구 가능 볼륨을 쿼리하는 방법

Cloud Billing에 보고되는 크기인 로그 항목의 청구 가능한 볼륨은 storage_bytes 필드를 통해 사용할 수 있습니다. 쿼리에서 데이터 유형이 INTEGER인 스키마 필드를 사용할 때와 동일한 방식으로 storage_bytes 필드를 사용할 수 있습니다. 예를 들어 SELECT 절, CASE 문 및 일반적인 테이블 표현식에 포함할 수 있습니다. 로그 쿼리에 대한 자세한 내용은 다음 문서를 참조하세요.

Cloud Billing은 비용을 결정할 때 청구 가능 볼륨을 사용하므로 비용 소스를 파악하는 데 도움이 되는 쿼리를 작성할 수 있습니다. 예를 들어 어떤 애플리케이션이 가장 많은 로그 항목을 작성하는지 확인하는 데 도움이 되는 쿼리를 작성할 수 있습니다. 청구 가능 볼륨과 비용을 연관시키는 방법을 알아보려면 Cloud Logging 가격 책정 요약Cloud Logging 가격 책정을 참조하세요.

로그 항목의 청구 가능한 볼륨은 Cloud Logging API로 전송된 LogEntry 객체의 크기가 아닙니다. 청구 가능한 볼륨에는 직렬화 및 메타데이터에 필요한 바이트가 포함됩니다.

시작하기 전에

  1. 로그 애널리틱스를 사용하여 쿼리를 실행하고 로그를 보는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 다음 IAM 역할을 부여해 달라고 요청하세요

    • _Required_Default 로그 버킷을 쿼리하려는 경우: 로그 뷰어(roles/logging.viewer)
    • 커스텀 로그 버킷을 쿼리하려는 경우: 로그 뷰 접근자(roles/logging.viewAccessor)

    역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

    커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

  2. 쿼리하려는 로그 뷰의 경우 로그 스토리지 페이지로 이동하고 해당 로그 뷰를 저장하는 로그 버킷이 로그 애널리틱스를 사용하도록 업그레이드되었는지 확인합니다. 필요한 경우 로그 버킷을 업그레이드합니다.

    Google Cloud 콘솔에서 로그 스토리지 페이지로 이동합니다.

    로그 스토리지로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

  3. 선택사항: BigQuery 데이터 세트를 사용하여 로그 데이터를 쿼리하려면 연결된 BigQuery 데이터 세트를 만듭니다.

샘플 쿼리

이 섹션에서는 단일 로그 뷰에서 데이터를 분석하는 쿼리 예시를 제공합니다. 여러 로그 뷰에 데이터를 저장하고 해당 뷰에 저장된 데이터의 집계 값을 계산하려면 UNION 문을 사용해야 합니다.

로그 애널리틱스 페이지 또는 BigQuery 데이터 세트를 쿼리할 수 있는 모든 곳 어디서나 BigQuery StudioLooker Studio 페이지와 bq 명령줄 도구를 사용하여 로그 항목을 쿼리할 수 있습니다.

샘플 쿼리를 사용하려면 다음을 수행하세요.

앱별 로그 볼륨 쿼리

Google Kubernetes Engine 리소스에 대해 작성되었고 JSON 페이로드가 있는 로그 항목의 앱당 일일 총 바이트 수를 계산하려면 다음 쿼리를 사용합니다.

SELECT
  timestamp_trunc(timestamp,DAY) as day,
  JSON_VALUE(labels["k8s-pod/app"]) as app_id,
  SUM(storage_bytes) as total_bytes
FROM
  `TABLE`
WHERE
  json_payload IS NOT NULL
  AND resource.type="k8s_container"
GROUP BY ALL

데이터를 시각화하기 위해 차트를 만들 수 있습니다. 다음 예에서 데이터가 누적 막대 그래프로 표시됩니다. 차트의 각 막대에는 저장된 총 바이트 수가 앱별로 정리되어 표시됩니다. 이 예시에서는 frontend 앱은 가장 많은 로그 데이터를 생성합니다.

앱별 로그 볼륨 쿼리 결과를 보여주는 차트 예시

로그 이름으로 로그 볼륨 쿼리

저장된 바이트 수와 JSON 페이로드가 있고 Google Kubernetes Engine 리소스에 대해 작성된 각 로그 항목의 로그 이름을 나열하려면 다음 쿼리를 사용하세요.

SELECT
  log_id AS log_name,
  storage_bytes
FROM
  `TABLE`
WHERE
  json_payload IS NOT NULL
  AND resource.type="k8s_container"

이전 쿼리는 결과를 집계하지 않고 각 로그 항목에 대해 하나의 행이 있으며, 해당 행에는 로그 이름과 저장된 바이트 수가 포함됩니다. 이 데이터를 차트로 작성하면 로그 데이터 일부를 다른 로그에 작성된 대로 시각화할 수 있습니다.

로그 이름별로 로그 볼륨 쿼리 결과를 보여주는 차트 예시

이전 차트에서는 대부분의 로그 데이터가 stdout이라는 로그에 기록되는 것을 보여줍니다.

bq 명령줄 도구를 사용하여 로그 이름별로 로그 볼륨 쿼리

BigQuery Studio 페이지를 통해 실행하거나 bq 명령줄 도구를 사용하여 쿼리에 storage_bytes 필드를 포함할 수 있습니다.

다음 쿼리는 각 로그 항목에 대한 로그 이름과 저장된 바이트 수를 보고합니다.

bq query --use_legacy_sql=false  'SELECT log_id as log_name,
  storage_bytes FROM `TABLE`'

이 쿼리의 결과는 다음과 비슷합니다.

+----------+---------------+
| log_name | storage_bytes |
+----------+---------------+
| stdout   |           716 |
| stdout   |           699 |
| stdout   |           917 |
| stdout   |           704 |

각 행은 하나의 로그 항목에 해당합니다. storage_bytes열의 값은 해당 로그 항목의 청구 가능한 볼륨입니다.

제한사항

storage_bytes 필드는 다음 조건이 참인 경우에만 사용할 수 있습니다.

  • 로그 애널리틱스를 사용하도록 로그 버킷이 업그레이드됩니다.
  • 쿼리는 로그 애널리틱스 페이지 또는 BigQuery 데이터 세트를 쿼리할 수 있는 모든 곳에서 실행되며 BigQuery StudioLooker Studio 페이지와 bq 명령줄 도구가 포함됩니다.

  • 로그 항목은 2024년 1월 1일 이후에 작성되었습니다.