할당량 측정항목 사용

이 페이지에서는 Google Cloud에서 할당한 할당량을 모니터링하는 알림 정책과 차트를 만드는 방법을 설명합니다. Google Cloud는 프로젝트 또는 조직에서 사용하는 리소스를 추적하고 제한하는 데 사용할 수 있는 여러 할당량을 설정합니다. 할당량 및 요금 할당량에 대한 정보를 비롯하여 할당량에 대한 일반적인 정보는 할당량 작업을 참조하세요.

시작하기 전에

이 페이지에서는 시계열 데이터 및 조작에 익숙하다고 가정합니다. 다음 페이지에서는 추가 정보를 제공합니다.

  • 시계열 데이터 작업에 대한 자세한 내용은 필터링 및 집계를 참조하세요.
  • 게이지, 델타, 누적이라는 용어의 정의는 측정항목의 종류를 참조하세요.
  • 시계열 결합에 사용되는 함수에 대한 자세한 내용은 AlignerReducer를 참조하세요.

할당량 측정항목 작업

Cloud Monitoring은 다음 두 가지 방법으로 할당량을 관리합니다.

  1. 소비자 할당량입니다. 이 유형의 할당량에서 모니터링 리소스는 consumer_quota입니다. 이 리소스의 측정항목은 serviceruntime 측정항목 하위 집합입니다.

    이 페이지에 있는 대부분의 예시는 소비자 할당량 예시입니다.

  2. 리소스별 할당량입니다. 일부 서비스는 할당량의 리소스별 측정항목이 있는 모니터링 리소스를 제공합니다. 이러한 측정항목 유형은 다음 패턴에 따라 3가지 그룹으로 표시됩니다.

    • service/quota/quota-type/exceeded
    • service/quota/quota-type/limit
    • service/quota/quota-type/usage

    예를 들어 Compute Engine에는 compute.googleapis.com/VpcNetwork 리소스가 있습니다. 이 리소스와 연결된 할당량 관련 측정항목은 compute 측정항목compute.googleapis.com/quota 하위 집합입니다. 'VPC 네트워크당 인스턴스' 할당량과 관련된 3가지 측정항목 유형은 다음과 같습니다.

할당량 측정항목 및 한도 이름 식별

할당량 소비에 대한 원시 데이터(특히 소비자 할당량의 경우)에는 여러 다른 할당량에 대한 정보가 포함될 수 있습니다. 차트 또는 알림 정책의 특정 할당량에 대한 정보를 추출하려면 할당량 데이터의 하위 집합을 식별해야 합니다.

소스에 따라 할당량 데이터에는 원하는 정보를 격리하는 데 사용할 수 있는 라벨이 포함될 수 있습니다. 이러한 라벨은 다음과 같습니다.

  • 할당량 측정항목: 할당량 측정항목은 할당량 유형의 식별자이며, 측정항목 목록에 설명된 측정항목 유형 중 하나가 아닙니다. 예를 들어 모든 소비자 할당량 데이터는 quota/allocation/usage와 같은 serviceruntime.googleapis.com 측정항목 유형으로 기록됩니다. 이 측정항목 유형에는 특정 할당량을 필터링하는 데 사용할 수 있는 quota_metric 라벨이 있습니다(예: 할당 사용량 데이터).
  • 한도 이름: 한도 이름은 특정 유형의 할당량 한도를 식별합니다. 할당량에 연결된 한도가 둘 이상일 수 있습니다. 예를 들어 읽기 호출 할당량의 한도는 분당 100개, 일일 한도는 1,000개이며 2개의 제한 이름인 readsPerMinutereadsPerDay가 있습니다. 할당량 관련 측정항목 유형에는 이 값에 limit_name 필드가 있을 수 있습니다.

모든 serviceruntime.googleapis.com/quota 측정항목 유형quota_metric 라벨을 제공하지만 일부만 limit_name 라벨을 포함합니다. 할당량의 리소스별 측정항목 유형에는 limit_name 라벨이 포함됩니다.

특정 할당량 측정항목 및 한도 이름을 식별하려면 다음 절차를 사용할 수 있습니다.

  1. Google Cloud Console에서 관리자 할당량 페이지로 이동합니다.

    할당량으로 이동

  2. 원하는 할당량을 찾은 다음 모든 할당량을 클릭합니다.

  3. 서비스에서 할당량 측정항목을 지원하는 경우 할당량 측정항목한도 이름 필드가 표시됩니다. 예를 들어 다음 Compute Engine API 서브네트워크 할당량에 대한 스크린샷은 할당량 측정항목이 compute.googleapis.com/subnetworks이고 한도 이름이 SUBNETWORKS-per-project인 것을 보여줍니다.

    할당량 측정항목 세부정보 페이지의 예시

세부정보에 할당량 측정항목 또는 한도 이름이 나열되지 않으면 서비스는 할당량 측정항목을 지원하지 않습니다.

세부정보에 모니터링 리소스가 포함되지 않은 경우 모니터링 리소스는 consumer_quota입니다. 그렇지 않으면 세부정보 페이지에 표시되는 이 할당량은 이름이 지정된 모니터링 리소스에 대한 리소스별 할당량입니다. 앞의 스크린샷에는 모니터링 리소스가 명시적으로 나열되어 있지 않으므로 할당량이 consumer_quota 모니터링 리소스를 사용합니다.

예시: 특정 소비자 할당량 측정항목에 대한 사용량 보기

목표는 Compute Engine의 총 디스크 스토리지 할당량을 리전별로 표시하는 차트를 만드는 것입니다. 이 소비자 할당량 예시에서는 quota/allocation/usage 데이터를 검색한 다음 데이터를 필터링하여 특정 할당량 측정항목에 대한 할당량 사용량이 표시되도록 합니다.

  1. Google Cloud Console에서 Cloud Monitoring을 선택한 후 측정항목 탐색기를 선택합니다.

  2. 구성 탭을 선택합니다.

  3. 리소스 유형을 소비자 할당량으로 설정하고 측정항목 유형을 할당량 사용량으로 설정하여 할당량 사용량을 표시하도록 측정항목 탐색기를 구성합니다.

    소비자 할당량 선택

    차트에는 6주 동안의 할당 사용량이 막대 그래프로 표시됩니다. 범례를 보면 차트에 여러 서비스에 대한 할당량 사용량이 표시됩니다.

    Cloud Monitoring API를 사용하는 경우 동등한 필터 값은 다음과 같습니다.

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota"
    

    리소스 유형 메뉴를 펼친 후 직접 필터 모드를 선택하여 이 필터 값을 볼 수 있습니다.

  4. 차트를 Compute Engine 서비스로 제한하려면 service = "compute.googleapis.com" 필터를 추가합니다.

    컴퓨팅 서비스를 기준으로 소비자 할당량을 필터링합니다.

    Cloud Monitoring API를 사용하는 경우 동등한 필터 값은 다음과 같습니다.

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" resource.label.service="compute.googleapis.com"
    

    이제 차트에 Compute Engine 할당량의 할당량 사용량 시계열이 표시됩니다. 범례에는 표시된 각 시계열의 quota_metric 라벨 값이 표시됩니다. 이 값은 특정 할당량을 식별합니다. 예를 들어 compute.googleapis.com/disks_total_storage는 Compute Engine의 총 디스크 스토리지 할당량에 대한 시계열을 식별합니다.

    차트에는 사용량이 기록된 할당량의 할당량 사용량만 표시됩니다. 예를 들어 프로젝트에 Compute Engine 리소스가 없는 경우 compute.googleapis.com 서비스를 필터링하면 데이터가 없는 차트가 생성됩니다.

  5. Compute Engine의 총 디스크 스토리지 할당량 사용량을 표시하는 차트를 만들려면 quota_metric = "compute.googleapis.com/disks_total_storage" 필터를 사용하세요.

    할당량 측정항목을 기준으로 소비자 할당량을 필터링합니다.

    Cloud Monitoring API를 사용하는 경우 동등한 필터 값은 다음과 같습니다.

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" metric.label.quota_metric="compute.googleapis.com/disks_total_storage"
    
  6. 이전 차트는 리전 us-centra1us-east1us-central1-a 영역을 포함한 여러 영역의 시계열을 표시합니다.

    영역이 없는 지역의 데이터만 표시하도록 차트를 미세 조정하려면 location 라벨을 기반으로 필터를 추가합니다. 두 리전 모두 us- 프리픽스가 붙고 1로 끝나는 이 예시에서 정규 표현식 location =~"^us.*1$"을 사용하는 필터가 효과적으로 작동합니다.

    할당량 측정항목 및 리전별로 필터링합니다.

소비자 할당량의 경우 quota_metric 라벨은 모니터링되는 서비스와 특정 할당량 사용량을 모두 식별합니다. 이 정보를 사용하여 특정 할당량 측정항목을 모니터링하는 차트 또는 알림 정책을 만들 수 있습니다.

Cloud Monitoring의 알림 정책

알림 정책은 할당량의 85%에 도달하는 등의 경우가 발생할 경우 알림을 받도록 Cloud Monitoring을 구성하는 방법 입니다.

알림 정책은 조건 및 알림 정보의 모음입니다.

  • 조건은 모니터링 대상, 해당 리소스의 시계열 데이터가 결합되는 방식, 알림이 생성되어야 하는 시기를 설명합니다. 알림 정책은 하나 이상의 조건을 지정해야 합니다.
  • 알림 채널은 알림이 발생할 때 알림을 받는 사람과 알림 방법을 지정합니다. 예를 들어 특정 사용자 또는 사용자 그룹에 이메일을 보내도록 알림 정책을 구성할 수 있습니다.

알림 정책 조건을 만드는 데 사용할 수 있는 두 가지 기술이 있습니다.

  • 모니터링 필터를 사용하여 데이터를 선택하고 조작합니다. 예를 들어 그래픽 인터페이스를 사용하여 알림 정책 조건을 만들면 필터가 생성됩니다. 할당량 측정항목 작업에 표시된 예시는 필터를 사용하여 차트의 데이터를 선택합니다. Monitoring API에 대한 요청에 필터를 사용할 수도 있습니다.

  • Monitoring 쿼리 언어 (MQL)를 사용하여 데이터를 선택 및 조작합니다. MQL은 텍스트 기반 쿼리 언어입니다. MQL 쿼리 편집기를 사용하면 필터 기반 기술로 만들 수 없는 쿼리를 만들 수 있습니다. 비율 기반 알림 정책을 만들려면 MQL을 사용하는 것이 좋습니다. 자세한 내용은 MQL 알림 정책 예시를 참조하세요.

이 페이지에서는 두 방법에 대해 모두 설명합니다. 두 기술 중 하나를 사용하여 차트를 만들 수도 있습니다.

필터 알림 정책 예시

이 섹션에서는 각 하위 섹션에 알림 정책의 JSON 표현과 Google Cloud Console에서 정책을 구성하는 방법을 설명하는 테이블 쌍이 포함되어 있습니다.

  • 첫 번째 테이블은 모니터링 대상과 데이터의 결합 방식을 설명합니다.
  • 두 번째 테이블은 알림이 생성되는 시기를 설명합니다.

다음은 필터 기반의 접근 방식을 보여주는 예시입니다.

이러한 정책 중 어느 것도 비율을 계산하지 않습니다. 비율 기반 예시는 MQL 알림 정책 예시를 참조하세요.

quota/exceeded 오류 알림

Google Cloud 프로젝트에서 할당량 초과 오류를 보고하는 서비스가 있으면 알림 정책을 만들 수 있습니다. 이러한 유형의 정책은 Google Cloud Console 또는 Cloud Monitoring API를 사용하여 만들 수 있습니다.

Google Cloud Console 사용

본 하위 섹션은 이제부터 알림 정책의 조건 대화상자에 대한 것입니다.

다음 표의 설정을 사용하여 목표 대화상자를 완성합니다. 이 설정을 사용하면 Google Cloud 프로젝트 내 모든 서비스의 serviceruntime측정항목/quota/exceeded에 대한 시계열 데이터를 모니터링하고 데이터를 할당량 한도별로 분류할 수 있습니다.

목표
필드

리소스 유형 consumer_quota 입력
측정항목 serviceruntime.googleapis.com/quota/exceeded 선택
필터

필터를 추가하면 모니터링할 서비스의 데이터만 차트에 표시됩니다. 예를 들어 Identity and Access Management 서비스를 모니터링하려면 service = iam.googleapis.com 필터를 추가합니다.

필터 필드가 비어 있으면 사용 가능한 모든 측정항목 데이터가 차트에 포함됩니다.

그룹화 기준

quota_metric을 선택합니다.

이 옵션은 데이터를 quota_metric 이름 유형별로 분류합니다.

애그리게이터

sum을 선택합니다.

집계 필드는 데이터가 그룹화될 때 자동으로 sum으로 설정됩니다. 이 설정은 개별 시계열의 데이터가 결합되는 방식을 정의합니다.

기간 1 m 선택
고급 집계 정렬기: count true

이 측정항목은 GAUGE 유형으로 시계열의 각 데이터 포인트가 즉각적으로 측정되는 것을 의미합니다. 값 유형은 BOOL입니다. true 값은 할당량이 초과되었음을 나타냅니다.

이 측정항목의 경우 count truecount 정렬자 설정은 동일합니다.

다음 설정을 사용하여 구성 대화상자를 완성하세요. 이렇게 설정하면 할당량 초과 오류 수가 1백만당 0을 초과하면 알림 정책에서 알림을 생성합니다. 여기에서 할당량 초과 오류가 예기치 않게 발생하고 할당량을 늘려야 하거나 API 요청을 줄이기 위해 서비스를 수정해야 하기 때문에 값 0이 선택됩니다. 더 높은 기준을 사용하는 것이 좋습니다.

구성
필드

Condition triggers if Any time series violates
Condition is above
Threshold 0
For 1 m

Cloud Monitoring API 사용

API 메서드 alertPolicies.create를 사용하여 이 알림 정책을 만들 수 있습니다. gcloud 명령줄 도구를 사용하거나 클라이언트 라이브러리를 사용하여 Cloud Monitoring API를 직접 호출할 수 있습니다. 자세한 내용은 정책 만들기를 참조하세요.

JSON 또는 YAML의 알림 정책 표현에 대한 자세한 내용은 샘플 정책을 참조하세요.

JSON 형식으로 작성된 이 알림 정책은 다음과 같이 표현됩니다.


{
    "combiner": "OR",
    "conditions": [
      {
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "60s",
              "crossSeriesReducer": "REDUCE_SUM",
              "groupByFields": [
                "metric.label.quota_metric"
              ],
              "perSeriesAligner": "ALIGN_COUNT_TRUE"
            }
          ],
          "comparison": "COMPARISON_GT",
          "duration": "60s",
          "filter": "metric.type=\"serviceruntime.googleapis.com/quota/exceeded\" resource.type=\"consumer_quota\"",
          "trigger": {
            "count": 1
          }
        },
        "displayName": "Quota exceeded error by label.quota_metric SUM",
      }
    ],
    "displayName": "Quota exceeded policy",
  }

절대 quota/allocation/usage에 대한 알림

알림 정책을 만들어 Google Cloud 프로젝트의 특정 서비스에 대한 할당량 사용량이 사용자 지정 임곗값을 초과하는 경우 알림을 보낼 수 있습니다. 이러한 유형의 정책은 Google Cloud Console 또는 Cloud Monitoring API를 사용하여 만들 수 있습니다.

Google Cloud Console 사용

본 하위 섹션은 이제부터 알림 정책의 조건 대화상자에 대한 것입니다.

다음 표의 설정을 사용하여 목표 대화상자를 완성합니다. 이 설정을 사용하면 Google Cloud 프로젝트 내 하나의 서비스의 serviceruntime측정항목/quota/allocation/usage에 대한 시계열 데이터를 모니터링하고 데이터를 할당량 한도별로 분류할 수 있습니다.

목표
필드

리소스 유형 consumer_quota 입력
측정항목 serviceruntime.googleapis.com/quota/allocation/usage 선택
필터

필터를 추가하면 모니터링할 서비스의 데이터만 차트에 표시됩니다. 예를 들어 Identity and Access Management 서비스를 모니터링하려면 service = iam.googleapis.com 필터를 추가합니다.

필터 필드가 비어 있으면 사용 가능한 모든 측정항목 데이터가 차트에 포함됩니다.

그룹화 기준

quota_metric을 선택합니다.

이 옵션은 데이터를 quota_metric 이름 유형별로 분류합니다.

애그리게이터

sum을 선택합니다.

집계 필드는 데이터가 그룹화될 때 자동으로 sum으로 설정됩니다. 이 설정은 개별 시계열의 데이터가 결합되는 방식을 정의합니다.

기간 1440 m 선택

기간 일치는 이 측정항목의 샘플링 간격입니다.

고급 집계 정렬기: next older

정렬자가 next older로 설정되어 이 GAUGE 측정항목의 측정값을 포함합니다.

다음 설정을 사용하여 구성 대화상자를 완성하세요. 이렇게 설정하면 시계열 값이 14억 4천만당 2.5를 초과하는 경우 알림 정책을 통해 알림을 만듭니다. 14억 4천만의 값은 정렬 기간과 일치합니다. 2.5라는 값은 테스트 시스템의 정상 값보다 약간 높으므로 본 예시에서는 값 2.5를 선택했습니다. 모니터링할 서비스를 기준으로 임곗값을 선택하고 측정항목의 예상 값 범위를 파악해야 합니다.

구성
필드

Condition triggers if Any time series violates
Condition is above
Threshold 2.5
For 1440 m

Cloud Monitoring API 사용

API 메서드 alertPolicies.create를 사용하여 이 알림 정책을 만들 수 있습니다. gcloud 명령줄 도구를 사용하거나 클라이언트 라이브러리를 사용하여 Cloud Monitoring API를 직접 호출할 수 있습니다. 자세한 내용은 정책 만들기를 참조하세요.

JSON 또는 YAML의 알림 정책 표현에 대한 자세한 내용은 샘플 정책을 참조하세요.

JSON 형식으로 작성된 이 알림 정책은 다음과 같이 표현됩니다.


{
    "combiner": "OR",
    "conditions": [
      {
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "86400s",
              "crossSeriesReducer": "REDUCE_SUM",
              "groupByFields": [
                "metric.label.quota_metric"
              ],
              "perSeriesAligner": "ALIGN_NEXT_OLDER"
            }
          ],
          "comparison": "COMPARISON_GT",
          "duration": "86400s",
          "filter": "metric.type=\"serviceruntime.googleapis.com/quota/allocation/usage\" resource.type=\"consumer_quota\" resource.label.\"service\"=\"iam.googleapis.com\"",
          "thresholdValue": 2.5,
          "trigger": {
            "count": 1
          }
        },
        "displayName": "Allocation quota usage for iam.googleapis.com by label.quota_metric SUM",
      }
    ],
    "displayName": "Absolute quota usage policy",
  }

MQL 알림 정책 예시

MQL은 파이프로 연결된 일련의 작업을 사용하는 텍스트 기반 쿼리 언어입니다. MQL을 사용하면 Monitoring 필터로 빌드할 때보다 더 강력하고 유연한 쿼리를 작성할 수 있습니다. 비율 기반 알림 정책을 설정할 때는 MQL을 사용하는 것이 좋습니다. 예를 들어 MQL을 사용하면 비율-할당량 사용에 대한 비율을 설정할 수 있습니다. 이 겨경우 게이지 측정항목 (한도)과 델타 측정항목 (비율)의 비율을 계산해야 합니다.

Cloud Console 또는 Monitoring API를 사용하여 MQL 기반 알림 정책을 만들 수 있습니다.

  • Cloud Console: 알림 조건을 만들 때 MQL 쿼리 편집기를 사용합니다. 쿼리 편집기를 표시하려면 조건 패널의 측정항목 탭에서 쿼리 편집기를 클릭합니다. 이 편집기 사용에 대한 자세한 내용은 쿼리 편집기 사용을 참조하세요.

  • Monitoring API: alertPolicies.create 메서드를 사용하고 MonitoringQueryLanguageCondition 유형의 조건을 제공합니다. 이 조건 유형은 MQL 쿼리를 필드 값으로 사용합니다. Monitoring API를 MQL과 함께 사용하는 방법에 대한 자세한 내용은 MQL 알림 정책의 조건 만들기를 참조하세요.

MQL 관련 정보는 Monitoring 쿼리 언어 사용을 참조하세요. MQL 기반 알림 정책에 대한 자세한 내용은 MQL을 사용한 알림 정책을 참조하세요.

한도 한 개의 비율 할당량 사용량에 대한 비율 알림

다음 MQL 쿼리 패턴은 특정 리소스 서비스의 분당 비율 사용량이 특정 한도의 80%를 초과하는 경우를 모니터링하는 알림에 대해 설명합니다.

    fetch consumer_quota
    | filter resource.service == 'sample.googleapis.com'
    | { metric serviceruntime.googleapis.com/quota/rate/net_usage
        | align delta_gauge(1m)
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            sum(value.net_usage)
      ; metric serviceruntime.googleapis.com/quota/limit
        | filter metric.limit_name == 'myApiLimitPerDay'
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            sliding(1m), max(val()) }
    | ratio
    | every 1m
    | condition gt(val(), 0.8 '1')

이 쿼리 패턴을 사용하려면 다음과 같이 변경합니다.

  • sample.googleapis.com을 모니터링할 서비스로 바꿉니다.
  • metric.limit_namemyApiLimitPerDay를 추적하려는 한도로 바꿉니다. 한도 이름 찾기에 대한 자세한 내용은 할당량 측정항목 및 한도 이름 식별을 참조하세요.
  • delta_gaugesliding 함수의 1m를 한도에 맞는 적절한 기간으로 바꿉니다.

조건 확인 빈도를 결정하는 every 1m 작업을 수정하지 마세요.

필터로 이 쿼리를 만들 수 없습니다.

와일드 카드로 비율 할당량 사용량 비율 알림

MQL은 와일드 카드, 정규 표현식, 부울 논리를 사용한 필터링을 지원합니다. 예를 들어 MQL을 사용하여 여러 한도를 추적하고 임곗값이 초과되면 경고하는 알림을 생성할 수 있습니다.

다음 MQL 쿼리 패턴은 리소스 서비스의 분당 또는 일일 비율 사용량이 80%를 초과하는 경우를 모니터링하는 알림을 설명합니다.

    fetch consumer_quota
    | filter resource.service =~ '.*'
    | { { metric serviceruntime.googleapis.com/quota/rate/net_usage
          | align delta_gauge(1m)
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sum(value.net_usage)
        ; metric serviceruntime.googleapis.com/quota/limit
          | filter metric.limit_name =~ '.*PerMinute.*'
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sliding(1m), max(val()) }
        | ratio
      ; { metric serviceruntime.googleapis.com/quota/rate/net_usage
          | align delta_gauge(1d)
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sum(value.net_usage)
        ; metric serviceruntime.googleapis.com/quota/limit
          | filter metric.limit_name =~ '.*PerDay.*'
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sliding(1d), max(val()) }
        | ratio }
    | union
    | every 1m
    | condition gt(val(), 0.8 '1')

이 쿼리 패턴을 사용하려면 다음과 같이 변경합니다.

  • resource.service의 정규 표현식을 추적하려는 서비스의 정규 표현식으로 바꿉니다.
  • 첫 번째 비율:
    • metric.limit_name.*PerMinute.*를 추적하려는 한도의 첫 번째 그룹에 대한 정규 표현식으로 바꿉니다. 한도 이름 찾기에 대한 자세한 내용은 할당량 측정항목 및 한도 이름 식별을 참조하세요.
    • delta_gaugesliding 함수의 1m를 한도에 적합한 기간으로 바꿉니다.
  • 두 번째 비율:
    • metric.limit_name.*PerDay.*를 추적하려는 한도의 두 번째 그룹에 대한 정규 표현식으로 바꿉니다.
    • delta_gaugesliding 함수의 1d를 한도에 적합한 기간으로 바꿉니다.

조건 확인 빈도를 결정하는 every 1m 작업을 수정하지 마세요.

필터로 이 쿼리를 만들 수 없습니다.

한도 한 개의 할당 할당량 사용량에 대한 비율 알림

다음 MQL 쿼리 패턴은 특정 리소스 서비스의 일일 할당 사용량이 특정 한도의 80%를 초과하는 경우를 모니터링하는 알림에 대해 설명합니다.

    fetch consumer_quota
    | filter resource.service == 'sample.googleapis.com'
    | { metric serviceruntime.googleapis.com/quota/allocation/usage
        | align next_older(1d)
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            max(val())
      ; metric serviceruntime.googleapis.com/quota/limit
        | filter metric.limit_name == 'CPUs-per-project'
        | align next_older(1d)
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            min(val())
      }
    | ratio
    | every 1m
    | condition gt(val(), 0.8 '1')

이 쿼리 패턴을 사용하려면 다음과 같이 변경합니다.

  • sample.googleapis.com을 모니터링할 서비스로 바꿉니다.
  • metric.limit_nameCPUs-per-project를 추적하려는 한도로 바꿉니다. 한도 이름 찾기에 대한 자세한 내용은 할당량 측정항목 및 한도 이름 식별을 참조하세요.

조건 확인 빈도를 결정하는 every 1m 작업을 수정하지 마세요.

예: 모든 리전의 CPU 사용량 75%

다음 쿼리는 Compute Engine VM 인스턴스의 CPU 사용량이 모든 리전의 한도 75%를 초과할 때 트리거되는 알림 정책을 만듭니다.

fetch consumer_quota
| filter resource.service == 'compute.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | filter metric.limit_name == 'CPUS-per-project-region'
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.75 '1')

이 소비자 할당량 정책은 Compute Engine API 'CPU' 할당량의 CPUS-per-project-region 한도 이름을 사용합니다. 한도 이름 찾기에 대한 자세한 내용은 할당량 측정항목 및 한도 이름 식별을 참조하세요.

모든 서비스의 할당량 사용량에 대한 비율 알림

MQL은 와일드 카드, 정규 표현식, 부울 논리를 사용한 필터링을 지원합니다. 예를 들어 MQL을 사용하여 여러 한도나 서비스를 추적하고 임곗값이 초과되면 경고하는 알림을 생성할 수 있습니다.

다음 MQL 쿼리는 모든 리소스 서비스의 일일 할당 사용량이 할당량 한도의 80%를 초과하는 경우를 모니터링하는 알림을 설명합니다.

fetch consumer_quota
| filter resource.service =~ '.*'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.8 '1')

이 쿼리를 표시된 대로 사용하거나 resource.service의 정규 표현식을 추적하고자 하는 서비스의 정규 표현식으로 바꿀 수 있습니다. 특정 서비스를 필터링하고 제한 필터에서 와일드 카드를 사용할 수도 있습니다.

조건 확인 빈도를 결정하는 every 1m 작업을 수정하지 마세요.

예: 특정 영역에서 CPU 사용량이 50%를 넘는 경우

다음 쿼리는 Compute Engine VM 인스턴스의 CPU 사용량이 us-central1 영역의 한도 50%를 초과할 때 트리거되는 알림 정책을 만듭니다. 이 쿼리는 한도 이름과 리소스 위치를 기준으로 limit 데이터를 필터링합니다.

fetch consumer_quota
| filter resource.service == 'compute.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | filter metric.limit_name == 'CPUS-per-project-zone' &&
             resource.location =~ 'us-central1-.*'
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.50 '1')

이 소비자 할당량 정책은 Compute Engine API 'CPU' 할당량의 CPUS-per-project-zone 한도 이름을 사용합니다. 한도 이름 찾기에 대한 자세한 내용은 할당량 측정항목 및 한도 이름 식별을 참조하세요.

리소스별 할당량을 사용한 비율 알림

MQL을 사용하여 리소스별 할당량 관련 측정항목의 비율을 설정할 수 있습니다. 이 경우에는 서비스별 모니터링 리소스를 지정하고 리소스별 할당량 관련 측정항목의 쌍에 대한 비율을 계산합니다.

다음 쿼리 패턴은 할당량 사용량이 한도의 80%를 초과하는 경우를 모니터링하는 알림을 설명합니다.

    fetch sample.googleapis.com/SampleResource
    | { metric sample.googleapis.com/quota/samplemetric/usage
        | align next_older(1d)
        | group_by [resource.label_1, ... , resource.label_n,
                    metric.label_1, ... , metric.label_n],
            max(val())
      ; metric sample.googleapis.com/quota/samplemetric/limit
        | align next_older(1d)
        | group_by [resource.label_1, ... , resource.label_n,
                    metric.label_1, ... , metric.label_n],
            min(val())
      }
    | ratio
    | every 1m
    | condition gt(val(), 0.8 '1')

이 쿼리 패턴을 사용하려면 다음과 같이 변경합니다.

  • sample.googleapis.com을 모니터링할 서비스로 바꿉니다.
  • sampleResource를 연결된 모니터링 리소스로 바꿉니다.
  • samplemetric을 측정항목 유형 그룹의 문자열로 바꿉니다.
  • group_by 작업에서 각 리소스와 측정항목 라벨을 나열합니다.

예: 모든 리전의 CPU 사용량 75%

예를 들어 다음 MQL 쿼리는 Compute Engine instances_per_vpc_network 할당량의 사용이 네트워크 ID의 80%를 초과할 때를 모니터링하는 알림을 설정합니다.

fetch compute.googleapis.com/VpcNetwork
| { metric compute.googleapis.com/quota/instances_per_vpc_network/usage
    | align next_older(1d)
    | group_by [resource.resource_container, metric.limit_name,
                resource.location, resource.network_id],
        max(val())
  ; metric compute.googleapis.com/quota/instances_per_vpc_network/limit
    | align next_older(1d)
    | group_by [resource.resource_container, metric.limit_name,
                resource.location, resource.network_id],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.80 '1')

이 쿼리는 consumer_quota가 아닌 리소스 유형 compute.googleapis.com/VpcNetwork를 사용하며 두 가지 compute.googleapis.com/quota/instances_per_vpc_network 측정항목인 usagelimit의 비율을 가져옵니다.

차트 예시

차트는 시계열 데이터를 표시합니다. 측정항목 탐색기를 사용하여 차트를 만들 수 있습니다. 측정항목 탐색기를 사용하면 더 이상 필요하지 않은 차트를 삭제하거나 대시보드에 저장할 수 있습니다. 대시보드 보기에서 대시보드에 차트를 추가할 수 있습니다.

차트를 만들려면 조회할 데이터와 그 방식을 지정합니다. 이 섹션의 나머지 부분에서는 소비자 할당량과 리소스별 할당량의 차트를 만드는 데 사용할 수 있는 설정이 포함됩니다. 알림 정책의 목표 대화상자 설정을 사용하여 차트를 만들 수도 있습니다.

quota/allocation/usage 간격의 최대 사용량

데이터가 할당량 측정항목 이름별로 그룹화되고 25시간 단위의 측정항목 최댓값이 표시되는 Google Cloud 프로젝트의 모든 서비스에 대해 serviceruntime 측정항목 quota/allocation/usage의 시계열 데이터를 보려면 다음 설정을 사용합니다.

목표
필드

리소스 유형 consumer_quota 입력
측정항목 serviceruntime.googleapis.com/quota/allocation/usage 선택
필터

필터를 추가하면 모니터링할 서비스의 데이터만 차트에 표시됩니다. 예를 들어 Identity and Access Management 서비스를 모니터링하려면 service = iam.googleapis.com 필터를 추가합니다.

필터 필드가 비어 있으면 사용 가능한 모든 측정항목 데이터가 차트에 포함됩니다.

그룹화 기준

quota_metric을 선택합니다.

이 옵션은 데이터를 quota_metric 이름 유형별로 분류합니다.

애그리게이터

sum을 선택합니다.

집계 필드는 데이터가 그룹화될 때 자동으로 sum으로 설정됩니다. 이 설정은 개별 시계열의 데이터가 결합되는 방식을 정의합니다.

기간 1500 m 선택

기간(25시간)은 이 측정항목의 샘플링 간격보다 약간 더 깁니다.

고급 집계 정렬기: max
보조 애그리게이터:sum

정렬자는 정렬 기간 동안 측정된 측정항목의 최댓값을 표시하도록 설정됩니다. 보조 애그리게이터는 여러 서비스에 대한 시계열을 단일 시계열로 결합합니다.

quota/rate/net_usage 시계열

데이터가 할당량 측정항목 이름별로 그룹화되고 사용량 요금이 표시되는 Google Cloud 프로젝트의 모든 서비스에 대해 serviceruntime 측정항목 quota/rate/net_usage의 시계열 데이터를 보려면 다음 설정을 사용합니다.

목표
필드

리소스 유형 consumer_quota 입력
측정항목 serviceruntime.googleapis.com/quota/rate/net_usage 선택
필터

필터를 추가하면 모니터링할 서비스의 데이터만 차트에 표시됩니다. 예를 들어 Identity and Access Management 서비스를 모니터링하려면 service = iam.googleapis.com 필터를 추가합니다.

필터 필드가 비어 있으면 사용 가능한 모든 측정항목 데이터가 차트에 포함됩니다.

그룹화 기준

quota_metric을 선택합니다.

이 옵션은 데이터를 quota_metric 이름 유형별로 분류합니다.

애그리게이터

sum을 선택합니다.

집계 필드는 데이터가 그룹화될 때 자동으로 sum으로 설정됩니다. 이 설정은 개별 시계열의 데이터가 결합되는 방식을 정의합니다.

기간 1 m 선택

기간(1분)은 이 측정항목의 샘플링 간격과 일치합니다.

고급 집계 정렬기: rate

정렬자를 rate의 값으로 설정하면 이 DELTA 측정항목의 시계열에 저장된 값이 요금 데이터를 저장하는 새로운 시계열로 변환됩니다. 차트의 Y축에는 초당 할당량 단위가 있습니다.

quota/limit 시계열

데이터가 25시간동안 집계되는 Google Cloud 프로젝트의 모든 서비스에 대해 serviceruntime 측정항목 quota/limit의 시계열 데이터를 보려면 다음 설정을 사용합니다.

목표
필드

리소스 유형 consumer_quota 입력
측정항목 serviceruntime.googleapis.com/quota/limit 선택
필터

필터를 추가하면 모니터링할 서비스의 데이터만 차트에 표시됩니다. 예를 들어 Identity and Access Management 서비스를 모니터링하려면 service = iam.googleapis.com 필터를 추가합니다.

필터 필드가 비어 있으면 사용 가능한 모든 측정항목 데이터가 차트에 포함됩니다.

그룹화 기준 비워 두기
애그리게이터 none
기간 1500 m 선택
고급 집계 정렬기: next older

정렬자가 next older로 설정되어 이 GAUGE 측정항목의 측정값을 표시합니다. 정렬 기간인 25시간은 이 측정항목의 샘플링 간격보다 약간 깁니다.

quota/instances_per_vpc_network/limit 시계열

Google Cloud 프로젝트의 모든 네트워크에 대해 compute.googleapis.com 측정항목 quota/instances_per_vpc_network/limit의 시계열 데이터를 보려면 다음 설정을 사용하세요.

목표
필드

리소스 유형 compute.googleapis.com/VpcNetwork 입력
측정항목 compute.googleapis.com/quota/instances_per_vpc_network/limit 선택
필터 비워 두기
그룹화 기준 비워 두기
애그리게이터 none으로 두기
기간 1 m 선택

기간 일치는 이 측정항목의 샘플링 간격입니다.

고급 집계 무시

quota/instances_per_vpc_network/usage 시계열

Google Cloud 프로젝트의 네트워크 중 하나의 compute.googleapis.com 측정항목 quota/instances_per_vpc_network/usage에 대한 시계열 데이터를 보려면 다음 설정을 사용하세요.

목표
필드

리소스 유형 compute.googleapis.com/VpcNetwork 입력
측정항목 compute.googleapis.com/quota/instances_per_vpc_network/usage 선택
필터

차트에 모든 데이터의 하위 집합만 표시되도록 필터를 추가합니다. 예를 들어 특정 네트워크의 사용량을 확인하려면 network_id = 식별자 필터를 추가합니다.

필터 필드가 비어 있으면 사용 가능한 모든 측정항목 데이터가 차트에 포함됩니다.

그룹화 기준 비워 두기
애그리게이터 none으로 두기
기간 1 m 선택
고급 집계 무시

MQL 차트

MQL 쿼리 편집기를 사용하면 MQL 쿼리를 사용하여 차트를 만들 수 있습니다. 예를 들어 MQL 알림 정책 예시에 표시된 모든 쿼리를 쿼리 편집기에 입력할 수 있습니다. 각 쿼리에서 마지막 작업 condition를 생략할 수 있습니다. 이 작업은 알림 정책 조건을 만들 때는 적용되지 않습니다. 차트에서는 condition 연산이 아무 작업도 수행하지 않습니다.

자세한 내용은 쿼리 편집기 사용MQL 예시를 참조하세요.