할당량 측정항목 차트 생성 및 모니터링

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

시작하기 전에

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

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

할당량 관리

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

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

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

  • 리소스별 할당량: 일부 서비스는 할당량의 리소스별 측정항목이 있는 모니터링 리소스를 제공합니다. 이러한 측정항목 유형은 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 라벨이 포함됩니다.

모든 Google Cloud 서비스가 할당량 측정항목을 지원하지는 않습니다. 서비스가 할당량 측정항목을 지원하는지 확인하고 할당량별 라벨 값을 확인하려면 다음 절차를 따르세요.

  1. Google Cloud 콘솔의 탐색 패널에서 IAM 및 관리자를 선택한 후 할당량을 선택합니다.

    할당량으로 이동

  2. 열 보기를 클릭하고 다음 열을 할당량 표시에 추가합니다.

    • 측정항목: 이 열에는 quota_metric 라벨 값이 표시됩니다.
    • 한도 이름: 이 열에는 limit_name 라벨 값이 표시됩니다.
    • 모니터링 리소스: 채워진 경우 나열된 모니터링 리소스가 할당량에 사용됩니다. 비어 있으면 할당량의 모니터링 리소스가 consumer_quota입니다.
  3. 원하는 할당량을 찾습니다.

    예를 들어 Compute Engine API 서브네트워크 할당량에는 측정항목compute.googleapis.com/subnetworks로, 한도 이름SUBNETWORKS-per-project로 표시되고, 모니터링 리소스는 표시되지 않습니다. 따라서 이 할당량의 모니터링 리소스는 consumer_quota입니다.

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

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

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

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

  3. 툴바에서 1M을 선택하여 기간을 월로 설정합니다.

  4. 선 차트 메뉴를 확장하고 누적 막대 차트를 선택합니다.

  5. 배정 할당량 사용을 표시하도록 측정항목 탐색기를 구성합니다.

    1. 측정항목 선택을 클릭하고 필터 막대allocation을 입력합니다.
    2. 리소스의 소비자 할당량을 선택합니다.
    3. 측정항목 카테고리의 할당량을 선택합니다.
    4. 측정항목의 배정 할당량 사용을 선택하고 적용을 클릭합니다.

    소비자 할당량 선택

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

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

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

    리소스 유형 메뉴를 확장한 후 직접 필터 모드를 선택하면 이 필터 값을 확인할 수 있습니다.

  6. 차트를 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 서비스를 필터링하면 데이터가 없는 차트가 생성됩니다.

  7. 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"
    
  8. 이전 차트는 리전 us-central1us-east1us-central1-a 영역을 포함한 여러 영역의 시계열을 표시합니다.

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

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

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

Cloud Monitoring의 알림 정책

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

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

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

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

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

  • 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에 대한 시계열 데이터를 모니터링하고 데이터를 할당량 한도별로 분류할 수 있습니다.

새 조건 대화상자
필드

리소스 및 측정항목 리소스 메뉴에서 소비자 할당량을 선택합니다.
측정항목 카테고리 메뉴에서 할당량을 선택합니다.
측정항목 메뉴에서 할당량 초과 오류를 선택합니다.

(metric.typeserviceruntime.googleapis.com/quota/exceeded이고,
resource.typeconsumer_quota입니다.)
필터

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

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

순환 기간 1 m 선택
순환 기간 함수 count true 선택

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

이 측정항목에서 count truecount의 순환 기간 함수는 동일합니다.

시계열
시계열 집계

sum를 선택합니다.

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

시계열
시계열 그룹화 기준

quota_metric를 선택합니다.

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

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

트리거 구성 대화상자
필드

조건 유형 Threshold
알림 트리거 Any time series violates
기준 위치 Above threshold
기준 값 0
재테스트 범위 1 m

Cloud Monitoring API 사용

API 메서드 alertPolicies.create를 사용하여 이 알림 정책을 만들 수 있습니다. Google Cloud CLI 또는 클라이언트 라이브러리를 사용하여 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에 대한 시계열 데이터를 모니터링하고 데이터를 할당량 한도별로 분류할 수 있습니다.

새 조건 대화상자
필드

리소스 및 측정항목 리소스 메뉴에서 소비자 할당량을 선택합니다.
측정항목 카테고리 메뉴에서 할당량을 선택합니다.
측정항목 메뉴에서 배정 할당량 사용을 선택합니다.

(metric.typeserviceruntime.googleapis.com/quota/allocation/usage이고,
resource.typeconsumer_quota입니다.)
필터

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

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

순환 기간 1440 m 선택

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

순환 기간 함수 next older 선택

순환 기간 함수는 최근에 측정된 이 GAUGE 측정항목 값이 포함되도록 next older으로 설정됩니다.

시계열
시계열 집계

sum를 선택합니다.

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

시계열
시계열 그룹화 기준

quota_metric를 선택합니다.

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

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

트리거 구성 대화상자
필드

조건 유형 Threshold
알림 트리거 Any time series violates
기준 위치 Above threshold
기준 값 2.5
재테스트 범위 1440 m

Cloud Monitoring API 사용

API 메서드 alertPolicies.create를 사용하여 이 알림 정책을 만들 수 있습니다. Google Cloud CLI 또는 클라이언트 라이브러리를 사용하여 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을 사용하면 비율-할당량 사용에 대한 비율을 설정할 수 있습니다. 이 경우 게이지 측정항목(한도)과 델타 측정항목(비율)의 비율을 계산해야 합니다.

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

  • Google Cloud 콘솔: 알림 조건을 만들 때 MQL 코드 편집기를 사용합니다. 알림 정책 만들기 대화상자의 툴바에서 코드 편집기를 표시하려면 쿼리 편집기를 클릭합니다. 이 편집기 사용에 대한 자세한 내용은 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 == 'Limit'
    | 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_nameLimit를 추적하려는 한도로 바꿉니다. 한도 이름 찾기에 대한 자세한 내용은 할당량 측정항목 및 한도 이름 식별을 참조하세요.
  • 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(23hr)
      | 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(23hr), max(val()) }
    | ratio }
| union
| every 1m
| condition gt(val(), 0.8 '1')

이전 쿼리에서 delta_gauge 정렬기의 인수는 1일이 아닌 23시간으로 설정됩니다. MQL은 23시간 30분 분량의 데이터만 필요할 수 있고 계산을 위해 delta_gauge 정렬기가 정렬 기간에 1시간을 추가합니다. delta_gauge(1d)를 사용하는 경우 조건에 25시간의 데이터가 필요하므로 조건을 저장할 수 없습니다. 이 동작은 정렬 창을 패딩하지 않는 next_older 정렬기와는 다릅니다.

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

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

쿼리 결과에서 데이터 포인트가 서로 얼마나 떨어져 있는지 확인하는 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 == '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')

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

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

쿼리 결과에서 데이터 포인트가 서로 얼마나 떨어져 있는지 확인하는 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의 비율을 가져옵니다.

차트 예시

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

할당량 데이터를 표시하는 차트만 구성하려면 새 조건 테이블의 설정을 사용하면 됩니다. 알림 조건은 차트 도구와 다른 표기법을 사용합니다. 차트 도구에는 측정항목 탐색기커스텀 대시보드의 차트 구성이 포함됩니다.
새 조건 대화상자
필드 이름
차트
순환 윈도우 함수

선택한 측정항목 및 집계 설정에 따라 최적으로 구성됩니다.

정렬 함수를 지정하려면 다음을 수행합니다.

  1. 집계 요소에서 첫 번째 메뉴를 확장하고 정렬기 구성을 선택합니다. 정렬 함수그룹화 요소가 추가됩니다.
  2. 정렬 함수 요소를 확장하고 항목을 선택합니다.

순환 기간 최소 간격
(액세스하려면 쿼리 요소 추가 클릭)
시계열 그룹화 기준
(시계열 섹션)
집계 요소의 두 번째 메뉴
시계열 집계
(시계열 섹션)
집계 요소의 첫 번째 메뉴

quota/rate/net_usage 시계열

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

새 조건 대화상자
필드

리소스 및 측정항목 리소스 메뉴에서 소비자 할당량을 선택합니다.
측정항목 카테고리 메뉴에서 할당량을 선택합니다.
측정항목 메뉴에서 비율 할당량 사용을 선택합니다.

(metric.typeserviceruntime.googleapis.com/quota/rate/net_usage이고,
resource.typeconsumer_quota입니다.)
필터

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

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

순환 기간 1 m 선택

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

순환 기간 함수 rate 선택

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

시계열
시계열 집계

sum를 선택합니다.

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

시계열
시계열 그룹화 기준

quota_metric를 선택합니다.

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

quota/instances_per_vpc_network/limit 시계열

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

새 조건 대화상자
필드

리소스 및 측정항목 리소스 유형 메뉴에서 VPC 네트워크를 선택합니다.
측정항목 카테고리 메뉴에서 할당량을 선택합니다.
측정항목 메뉴에서 VPC 네트워크별 인스턴스 할당량 한도를 선택합니다.

(metric.typecompute.googleapis.com/quota/instances_per_vpc_network/limit이고,
resource.typecompute.googleapis.com/VpcNetwork입니다.)
필터 비워 두기
순환 기간 1 m 선택

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

순환 기간 함수 mean 선택
시계열
시계열 집계
none으로 두기
시계열
시계열 그룹화 기준
비워 두기

quota/instances_per_vpc_network/usage 시계열

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

새 조건 대화상자
필드

리소스 및 측정항목 리소스 유형 메뉴에서 VPC 네트워크를 선택합니다.
측정항목 카테고리 메뉴에서 할당량을 선택합니다.
측정항목 메뉴에서 VPC 네트워크별 인스턴스 할당량 사용을 선택합니다.

(metric.typecompute.googleapis.com/quota/instances_per_vpc_network/usage이고,
resource.typecompute.googleapis.com/VpcNetwork입니다.)
측정항목 측정항목 메뉴에서 compute.googleapis.com/quota/instances_per_vpc_network/usage를 선택합니다.
필터

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

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

순환 기간 1 m 선택

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

순환 기간 함수 mean 선택
시계열
시계열 집계
none으로 두기
시계열
시계열 그룹화 기준
비워 두기

MQL 차트

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

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