로그 기반 측정항목 개요

이 페이지에서는 로그 기반 측정항목의 개념 개요를 제공합니다. 이러한 측정항목은 대규모 로그 항목에서 트렌드 및 패턴을 관찰하는 데 도움이 될 수 있습니다.

로그 기반 측정항목 정보

로그 기반 측정항목은 로그 항목 콘텐츠에서 파생되는 Cloud Monitoring 측정항목입니다. 예를 들어 로그 기반 측정항목을 사용하여 특정 메시지가 포함된 로그 항목의 개수를 세거나 로그 항목에 기록된 지연 시간 정보를 추출할 수 있습니다. Cloud Monitoring 차트에서 로그 기반 측정항목을 표시할 수 있고, 알림 정책은 이러한 측정항목을 모니터링할 수 있습니다.

로그 기반 측정항목은 프로젝트 수준 또는 로그 버킷 수준에서 적용할 수 있습니다. 버킷 범위 로그 기반 측정항목은 집계 싱크를 사용하여 로그 항목을 로그 버킷으로 라우팅할 때와 한 프로젝트에서 다른 프로젝트의 로그 버킷으로 로그 항목을 라우팅할 때 유용합니다. 자세한 내용은 이 페이지의 로그 기반 측정항목의 소스 섹션을 참조하세요.

로그 기반 측정항목의 시계열 값이 결정되는 방식

이 섹션에서는 카운터 유형 로그 기반 측정항목의 시계열 값이 결정되는 방법을 간략하게 설명합니다. 또한 로그 기반 측정항목의 시계열에 간격이 있을 수 있는 이유도 설명합니다. 프로세스는 분포 값 로그 기반 측정항목의 경우에도 비슷합니다.

카운터 유형 로그 기반 측정항목의 경우 Logging은 다음을 실행합니다.

  1. 하나 이상의 데이터 스트림을 만들고 각 스트림에 대해 인메모리 카운터 집합을 관리합니다.

    측정항목 및 리소스 라벨 집합의 각 고유 값 조합에 대해 하나의 스트림이 있습니다. 각 인메모리 카운터는 시간 간격이 다르지만 각 카운터는 필터와 일치하고 해당 간격에 해당하는 타임스탬프가 있는 로그 항목의 수를 기록합니다.

  2. Logging 백엔드는 매분마다 각 스트림에 대해 인메모리 카운터 값을 사용하여 Cloud Monitoring에서 관리하는 시계열을 업데이트하는 방법을 결정합니다.

    스트림이 5개인 경우 모니터링에서 관리하는 시계열이 5개입니다. 이러한 시계열을 차트로 표시할 수 있습니다. 이러한 시계열을 모니터링하기 위한 알림 정책을 만들 수도 있습니다.

예: 0 값이 데이터 격차를 유발하는 방식

다음 시계열을 살펴보세요.

Example time series: (T1, -), (T2, -), (T3, 0), (T4, 1), (T5, 0), (T6, -)

이전 표현식에서 (T1, -)는 시간 T1에 값이 쓰이지 않았음을 의미합니다. 이는 시계열의 값에 간격이 있는 경우에 해당합니다. 반면 (T3, 0)은 시간 T3의 시계열 값이 0임을 의미합니다.

각 스트림에 대해 로그 기반 측정항목의 백엔드 시스템은 다음 규칙을 사용하여 Monitoring에서 저장한 시계열에 쓸 값을 결정합니다.

  • 간격에 대해 집계된 개수가 0이 아니면 해당 값이 시계열에 기록됩니다.

    예시 시계열에서는 T4 간격에만 0이 아닌 값이 있습니다. 1 값은 T4 간격에 해당하는 타임스탬프가 있는 로그 항목 하나가 로그 기반 측정항목의 필터와 일치했음을 나타냅니다.

  • 간격의 집계된 개수가 0일 때, 인접한 간격의 값이 0이 아닌 경우 시계열에 0 값이 기록됩니다.

    예시 시계열에서 시간 T3에서 집계된 개수는 0입니다. 하지만 T4 시점에 집계된 개수가 0이 아니므로 0 값이 작성됩니다. 마찬가지로 T5 시점에서 집계된 개수는 0입니다. 이전 간격의 값이 0이 아니었으므로 시계열에 0 값이 작성됩니다.

  • 그렇지 않으면 시계열이 업데이트되지 않고 해당 간격에 대한 데이터 격차가 발생합니다.

    예시 시계열에는 간격 T1, T2, T6에 대한 값이 없습니다. 이러한 간격에서 집계된 개수는 0이었고 인접한 간격의 개수도 0이었습니다.

늦게 도착하는 로그 항목 및 향후 로그 항목 처리

처리된 간격의 타임스탬프가 있는 로그 항목이 도착하면 Logging 백엔드에서 이전 데이터를 생성합니다. 이전 데이터는 이전에 작성된 개수를 업데이트하는 데 사용됩니다.

로그 항목이 미래의 타임스탬프에 도착하면 Logging 백엔든 이러한 개수를 누적합니다. 시계열에서 이러한 로그 항목은 타임스탬프가 현재 간격에 해당하는 경우에만 집계됩니다.

로그 기반 측정항목의 소스

Cloud Logging에서 정의된 측정항목을 사용하여 일반 사용 정보를 수집하고 자체 로그 기반 측정항목을 정의하여 애플리케이션 또는 비즈니스와 관련된 정보를 캡처할 수 있습니다.

로그 기반 측정항목은 단일 Google Cloud 프로젝트 내에서 또는 로그 버킷 내에 적용될 수 있습니다. Cloud Billing 계정이나 조직과 같은 기타 Google Cloud 리소스에 대한 로그 기반 측정항목을 만들 수 없습니다.

프로젝트 기반 로그 기반 측정항목과 버킷 기반 로그 기반 측정항목의 차이점에 대한 자세한 내용은 버킷 범위 로그 기반 측정항목을 참조하세요.

시스템 정의 측정항목

Logging은 프로젝트의 로그 버킷에 저장된 로그 항목 수나 내보낸 바이트 수와 같은 사용량 값에 대한 측정항목 집합을 제공합니다. 시스템 정의 측정항목의 전체 목록은 Google Cloud 측정항목: 로깅을 참조하세요.

시스템 정의 로그 기반 측정항목은 프로젝트 수준에 적용됩니다.

다음 조건이 모두 참이면 로그 라우터에서 로그 항목을 집계합니다.

  • 로그 항목은 로그 기반 측정항목이 정의된 프로젝트의 로그 싱크를 통과합니다.
  • 로그 항목은 로그 버킷에 저장됩니다. 로그 버킷은 모든 프로젝트에 있을 수 있습니다.

    예를 들어 프로젝트 A에 대상이 프로젝트 B인 로그 싱크가 있다고 가정해 보겠습니다. 또한 프로젝트 B의 로그 싱크가 로그 항목을 로그 버킷으로 라우팅한다고 가정합니다. 이 시나리오에서는 프로젝트 A에서 프로젝트 B로 라우팅된 로그 항목은 프로젝트 A의 시스템 정의 로그 기반 측정항목에 반영됩니다. 이러한 로그 항목은 프로젝트 B의 시스템 정의 로그 기반 측정항목에도 반영됩니다.

사용자 정의 측정항목

프로젝트에 중요한 다른 측정항목을 추적하도록 사용자 정의된 로그 기반 측정항목을 만들 수 있습니다. 예를 들어 로그 기반 측정항목을 만들어 특정 필터와 일치하는 로그 항목의 개수를 셀 수 있습니다.

기본적으로 사용자 정의 로그 기반 측정항목은 Google Cloud 프로젝트에 적용될 수 있는 포함 필터 또는 제외 필터에 관계없이Google Cloud 프로젝트의 Logging API에서 수신한 모든 로그에서 계산됩니다.

Google Cloud 프로젝트의 특정 로그 버킷에 대한 사용자 정의 로그 기반 측정항목을 만들 수도 있습니다. 버킷 범위 로그 기반 측정항목은 로그의 출처와 관계없이 버킷을 대상으로 하는 모든 로그에서 계산됩니다. 자세한 내용은 로그 버킷의 로그 기반 측정항목을 참조하세요.

다음 조건이 모두 참이면 로그 라우터에서 로그 항목을 집계합니다.

  • 로그 기반 측정항목이 정의된 프로젝트에서 결제가 사용 설정되어 있습니다.
  • 버킷 범위 측정항목의 경우 로그 항목은 로그 기반 측정항목이 정의된 로그 버킷에 저장됩니다.
  • 프로젝트 범위 측정항목의 경우 로그 항목은 로그 기반 측정항목이 정의된 프로젝트의 로그 싱크를 통과합니다.

로그 기반 측정항목의 데이터 유형

로그 기반 측정항목은 로그에서 데이터를 추출하여 다음 유형의 측정항목을 만들 수 있습니다.

  • 카운터: 이 측정항목은 특정 기간 내에 지정된 필터와 일치하는 로그 항목 개수를 카운트합니다. 값 또는 문자열이 로그에 표시되는 횟수를 추적하고 싶으면 카운터를 사용합니다.
  • 분포: 이 측정항목도 값의 수를 세지만 값 범위(히스토그램 버킷)로 개수를 수집합니다. 지연 시간과 같은 값을 추출하려고 할 때 분포를 사용합니다.
  • 불리언: 이 측정항목은 로그 항목이 지정된 필터와 일치하는지 여부를 캡처합니다.

사용자 정의 로그 기반 측정항목은 카운터 또는 분포 측정항목 유형일 수 있습니다. 대부분의 시스템 정의 로그 기반 측정항목은 카운터 유형이지만 불리언 유형도 일부 존재합니다. 카운터와 분산의 특징에 대해서는 이후 섹션에서 자세히 설명합니다.

사용자 정의 로그 기반 측정항목의 데이터는 측정항목이 생성된 후 수신된 로그 항목에서만 가져옵니다. 측정항목은 이미 Logging에 존재하는 로그 항목의 데이터로 소급하여 채워지지 않습니다.

시스템 로그 기반 측정항목은 포함된 로그에서만 계산됩니다. 사용자 정의 로그 기반 측정항목은 포함 및 제외되는 로그 모두에서 계산됩니다.

다음 섹션에서는 카운터 유형 및 분포 유형 측정항목의 특징을 설명합니다.

카운터 측정항목

카운터 측정항목은 특정 필터와 일치하는 로그 항목의 개수를 셉니다. 예를 들어 다음을 수행할 수 있습니다.

  • 특정 오류 메시지를 포함하는 로그 항목의 개수를 셉니다.
  • 이 패턴과 일치하는 로그 메시지를 찾아 각 사용자가 작업을 호출하는 횟수를 계산합니다.

    ... user USERNAME called OPERATION ...

    USERNAMEOPERATION 추출하고 2개 라벨 값에 사용하여 나중에 'sallyupdate 작업을 몇 번 호출했나요?', '몇 명이 read 작업을 호출했나요?', 'george가 작업을 몇 번 호출했나요?' 등과 같이 질문할 수 있습니다.

자세한 내용은 카운터 측정항목 구성을 참조하세요.

분산 측정항목

분산 측정항목은 특정 필터와 일치하는 로그 항목의 숫자 데이터를 누적합니다. 이 측정항목은 분포 객체의 시계열을 포함하며, 각각 다음을 포함합니다.

  • 분산에 있는 값의 수.
  • 여러 값의 평균
  • 편차 제곱 합계: 합계i=1..n(xi–평균)2
  • 각 버킷 값의 수가 기록된 히스토그램 버킷 집합. 기본 버킷 레이아웃을 사용하거나 직접 선택할 수 있습니다.

분산 측정항목의 일반적인 용도는 지연 시간을 추적하는 것입니다. 각 로그 항목이 수신될 때 로그 항목의 특정 위치에서 지연 시간 값이 추출되어 분산에 추가됩니다. 누적된 분산이 일정한 간격으로 Cloud Monitoring에 기록됩니다.

시계열 내의 형식 및 시각화 방법을 포함한 분산에 대한 자세한 내용은 분산 측정항목 차트 작성을 참조하세요.

분산 로그 기반 측정항목 만들기에 대한 자세한 내용은 분산 측정항목 구성을 참조하세요.

리소스 유형

로그 기반 측정항목은 단일 리소스 유형을 지정하는 것이 좋습니다. 이 사양을 통해 로그 기반 측정항목에 대해 생성된 시계열이 Cloud Monitoring에서 예상하는 데이터 모델과 일치하도록 합니다. 또한 차트 및 알림 정책을 만드는 프로세스도 단순화됩니다. 시계열 데이터의 차트 작성 또는 모니터링에 모호성이 없기 때문입니다.

다음 필터가 있는 로그 기반 측정항목을 고려합니다.

severity>="ERROR"
resource.type="gce_instance"

Cloud Monitoring은 이 데이터가 Compute Engine VM 인스턴스용임을 인식합니다. 따라서 VM 인스턴스의 차트를 만들면 로그 기반 측정항목이 메뉴에 옵션으로 나열됩니다. 다른 리소스 유형에 대한 차트를 만들면 로그 기반 측정항목이 옵션으로 나열되지 않습니다.

리소스 유형을 지정하지 않고 로그 기반 측정항목을 만들면 Monitoring은 로그 기반 측정항목을 여러 리소스(이러한 리소스의 항목은 계산하지 않더라도) 유형의 옵션으로 나열합니다.

라벨

로그 기반 측정항목에는 측정항목에서 여러 시계열을 수집하는 라벨이 있을 수 있습니다. 이 라벨의 값은 일치하는 로그 항목의 필드에서 추출됩니다. Logging은 라벨 값의 조합마다 별도의 시계열을 기록합니다.

대부분의 로그 기반 측정항목은 기본 log 라벨을 제공합니다. 이 라벨은 로그 항목의 logName 필드에 있는 LOG_ID 부분의 값을 포함합니다(예: cloudresourcemanager.googleapis.com%2Factivity).

시스템 로그 기반 측정항목에는 변경할 수 없는 사전 정의된 라벨이 있습니다.

사용자 정의 로그 기반 측정항목에는 사용자가 정의한 라벨이 포함될 수 있습니다. 일반적으로 이러한 라벨은 로그 기반 측정항목에 기여하는 로그 항목에서 값을 추출합니다.

예를 들어 폴더 또는 조직의 버킷 범위 로그 기반 측정항목을 만들 수 없더라도 로그 기반 측정항목의 라벨을 사용하여 로그 항목이 시작된 폴더 또는 조직을 기록할 수 있습니다. 자세한 내용은 로그 기반 측정항목 라벨을 참조하세요.

Cloud Monitoring의 차트 및 알림 정책

Cloud Monitoring에서 시스템 정의 로그 기반 측정항목과 사용자 정의 로그 기반 측정항목을 모두 사용하여 차트와 알림 정책을 만들 수 있습니다. 이러한 차트 및 알림 정책의 경우 라벨을 사용하여 시계열을 필터링하거나 결합할 수 있습니다. 예를 들어 특정 시계열만 표시하도록 필터를 설정할 수 있습니다. 자세한 내용은 로그 기반 측정항목 나열 및 차트 작성로그 기반 측정항목 알림을 참조하세요.

Cloud Monitoring에서 로그 기반 측정항목은 다음과 같은 이름 지정 패턴을 사용합니다.

  • 시스템: logging.googleapis.com/SYSTEM_METRIC_NAME
  • 사용자 정의: logging.googleapis.com/user/USER_METRIC_NAME

사용자 정의 로그 기반 측정항목에는 user 문자열이 포함됩니다.

Monitoring 측정항목 범위의 가시성

로그 기반 측정항목은 Cloud Monitoring에서 수집되며, Google Cloud 프로젝트의 측정항목 데이터 가시성은 측정항목 범위에 따라 결정됩니다. 측정항목 범위는 측정항목 범위를 호스팅하는 프로젝트에서 모니터링하는 프로젝트의 목록이며, 호스팅 프로젝트를 범위 지정 프로젝트라고 합니다.

기본적으로 각 프로젝트는 자신만을 포함하는 측정항목 범위를 호스팅하므로 프로젝트는 자기 자신의 범위 지정 프로젝트입니다. 따라서 로그 기반 측정항목을 포함한 측정항목은 해당 클라우드Google Cloud 프로젝트에만 표시됩니다.

범위 지정 프로젝트에 대한 다중 프로젝트 측정항목 범위를 만들 수도 있습니다. 다중 프로젝트 측정항목 범위를 사용하면 범위 지정 프로젝트가 측정항목 범위에 속한 모든 프로젝트의 측정항목을 볼 수 있습니다. 다중 프로젝트 측정항목 범위의 개별 프로젝트에 표시되는 내용은 이러한 프로젝트 각각에서 호스팅하는 측정항목 범위에 따라 결정됩니다. 두 프로젝트가 다중 프로젝트 측정항목 범위에 속하더라도 각 프로젝트가 다른 프로젝트의 측정항목 또는 구성 데이터에 액세스하지 못할 수 있습니다.

단일 프로젝트가 여러 측정항목 범위에 나타날 수도 있습니다. 이러한 프로젝트의 측정항목은 각 측정항목 범위의 범위 지정 프로젝트에 표시됩니다.

로그 기반 측정항목을 포함한 측정항목은 특정 프로젝트 내에 정의됩니다. 프로젝트가 여러 측정항목 범위에 표시되면 측정항목이 정의된 프로젝트가 아닌 다른 프로젝트에 표시됩니다. 측정항목 범위와 버킷 범위 로그 기반 측정항목의 상호작용 방법에 대한 자세한 내용은 프로젝트 및 측정항목 범위를 참조하세요.

멀티 프로젝트 측정항목 범위를 포함한 측정항목 범위와 범위 지정 프로젝트에 대한 자세한 내용은 다음을 참조하세요.

제한사항

오류 그룹이 포함된 로그 항목 수를 계산하는 로그 기반 측정항목은 만들 수 없습니다. 오류 그룹의 ID를 로그 기반 측정항목에 연결된 라벨로 추출할 수도 없습니다.

가격 책정

모든 사용자 정의 로그 기반 측정항목은 Cloud Monitoring 커스텀 측정항목의 클래스로서 요금이 부과됩니다. 가격 책정 정보는 로그 기반 측정항목 가격 책정을 참조하세요.

할당량

사용자 정의 로그 기반 측정항목과 관련된 할당량 및 한도에 대해서는 할당량 및 한도를 참조하세요.

문제 해결

로그 기반 측정항목을 사용할 때 문제가 발생하면 로그 기반 측정항목 문제 해결을 참조하세요.