측정항목 모델의 구성요소

Cloud Monitoring의 모니터링 데이터 모델은 다음 세 가지 기본 개념으로 구성됩니다.

  • 모니터링 리소스 유형
  • 측정항목 유형
  • 시계열

측정항목 모델 문서에서는 이러한 일반적인 Cloud Monitoring 개념에 대해 설명합니다. 이러한 개념이 처음이라면 해당 페이지를 먼저 읽어보세요.

이 페이지에서는 측정항목 유형, 모니터링 리소스, 시계열 및 일부 관련된 개념을 자세히 설명합니다. 이러한 개념은 모든 Monitoring 측정항목의 기초가 됩니다.

다음 중 하나를 수행하려면 이 페이지의 정보를 이해해야 합니다.

이러한 개념과 Cloud Monitoring API에 매핑되는 방법에 대한 자세한 내용은 시계열의 구조(특히 Monitoring API 또는 커스텀 측정항목을 사용하려는 경우)를 참조하세요.

라벨에 대해

모니터링 리소스 유형과 측정항목 유형은 모두 분석 중에 데이터를 분류할 수 있도록 하는 라벨을 지원합니다. 예를 들면 다음과 같습니다.

  • 가상 머신의 모니터링 리소스 유형에는 머신 위치 및 머신과 연결된 프로젝트 ID의 라벨이 포함될 수 있습니다. 모니터링 리소스에 대한 정보가 기록되면 해당 정보에 라벨의 값이 포함됩니다. 모니터링 리소스에는 모니터링 리소스 유형에 정의된 라벨 외에도 시스템 또는 사용자 제공 메타데이터 라벨이 있을 수 있습니다.
  • API 요청 수를 계산하는 측정항목 유형에는 호출된 메서드의 이름과 요청 상태를 기록하는 라벨이 있을 수 있습니다.

라벨 사용에 대한 자세한 내용은 라벨을 참조하세요.

모니터링 리소스 유형

모니터링 리소스는 측정항목 데이터가 캡처되는 리소스입니다. Cloud Monitoring은 약 270가지 유형의 모니터링 리소스를 지원합니다.

모니터링 리소스 유형에는 일반 노드 및 태스크, Google Kubernetes Engine의 아키텍처 구성요소, Bigtable의 테이블, 다양한 AWS 리소스, 등이 포함됩니다.

모니터링 리소스의 각 유형은 모니터링 리소스 설명자라는 데이터 구조에 공식적으로 설명되어 있습니다. 자세한 내용은 모니터링 리소스 설명자를 참조하세요.

지원되는 모니터링 리소스 유형마다 모니터링 리소스 목록에 항목이 있습니다. 표의 항목은 모니터링 리소스 설명자에서 생성됩니다. 이 섹션에서는 모니터링 리소스 설명자에서 캡처된 정보를 설명하고 목록에 표시되는 방법을 보여줍니다.

모니터링 리소스 유형 샘플

다음 이미지는 Cloud Storage 버킷에 대한 목록 항목을 보여줍니다.

Cloud Storage 버킷의 목록

목록의 모든 항목에 다음 정보가 포함됩니다.

  • 유형: 항목의 헤더에는 모니터링 리소스 유형이 나열됩니다(예: gcs_bucket).
  • 표시 이름: 모니터링 리소스에 대한 간략한 설명입니다.
  • 설명: 모니터링 리소스에 대한 자세한 설명입니다.
  • 라벨: 데이터 분류를 위한 측정기준 집합입니다. 자세한 내용은 라벨을 참조하세요.

측정항목 유형

측정항목 유형은 모니터링 리소스에서 수집할 수 있는 측정값을 설명합니다. 측정항목 유형에는 측정 대상과 측정값을 해석하는 방법에 대한 설명이 포함됩니다. Cloud Monitoring은 약 6,500개의 측정항목 유형을 지원하며 새로운 유형을 정의할 수 있습니다.

측정항목 유형에는 API 호출 수, 디스크 사용량 통계, 스토리지 소비 등이 포함됩니다.

각 측정항목 유형은 측정항목 설명이라는 데이터 구조에 공식적으로 설명되어 있습니다. 자세한 내용은 측정항목 설명을 참조하세요.

각 기본 제공 측정항목 유형마다 측정항목 목록 페이지에 항목이 있습니다. 이 표의 항목은 측정항목 설명에서 생성됩니다. 이 섹션에서는 측정항목 유형으로 캡처된 정보를 설명하고 참조 자료에 표시되는 방법을 보여줍니다.

샘플 측정항목 유형

다음 이미지는 Cloud Storage 측정항목 유형의 항목을 보여줍니다.

Cloud Storage 측정항목 목록의 일부

측정항목 유형은 표에 표시되며 표 헤더는 정보의 레이아웃을 설명합니다. 이 섹션에서는 하나의 항목을 예시로 사용하지만 모든 표는 동일한 형식을 사용합니다.

샘플 Cloud Storage 표 항목은 하나의 측정항목 유형에 대한 다음 정보를 제공합니다.

  • 측정항목 유형: 측정항목 유형의 식별자입니다(예: storage.googleapis.com/api/request_count).

    프리픽스 storage.googleapis.com은 Cloud Storage의 네임스페이스 역할을 합니다. 특정 모니터링 리소스 유형과 연결된 모든 측정항목 유형은 동일한 네임스페이스를 사용합니다.

    네임스페이스는 표의 항목에서 생략됩니다.

    Cloud Storage와 연결된 모든 측정항목 유형은 Cloud Storage 측정항목 표에 나열됩니다.

  • 출시 단계: 측정항목 유형의 출시 단계를 알파, 베타, GA와 같은 값으로 나타내는 색상 블록입니다.

  • 표시 이름: 측정항목 유형을 설명하는 간단한 문자열입니다(예: '요청 수').

  • 종류, 유형, 단위 :이 줄은 데이터 값 해석을 위한 정보를 제공합니다. 이 예시에서는 단위가 없는 64비트 정수로 기록된 델타 측정항목을 보여줍니다(1 값).

    • 종류:이 예시는 일정 기간 동안의 변화를 기록하는 델타 측정항목입니다. 즉, 각 데이터 포인트는 이전 데이터 포인트가 작성된 이후의 API 호출 수를 기록합니다. 종류에 대한 자세한 내용은 값 유형 및 측정항목 종류를 참조하세요.

    • 유형:이 예시에서는 값을 64비트 정수로 기록합니다. 유형에 대한 자세한 내용은 값 유형 및 측정항목 종류를 참조하세요.

    • 단위: 이 측정항목은 수를 나타내므로 명시적인 단위가 필요하지 않습니다. 단위가 필요하지 않음을 나타내려면 숫자 1을 사용합니다.

  • 모니터링 리소스: 이 측정항목 유형을 사용할 수 있는 모니터링 리소스입니다. 여기의 값은 모니터링 리소스 유형에 설명된 값과 동일합니다.

  • 설명: 기록되는 내용과 방법에 대한 자세한 정보입니다. 기울임꼴로 설정하여 라벨과 구분합니다.

  • 라벨: 데이터 분류를 위한 측정기준 집합입니다. 자세한 내용은 라벨을 참조하세요.

Cloud Monitoring API를 통해 모니터링 데이터에 액세스할 때 API 호출에 Google Cloud 프로젝트를 포함합니다. Google Cloud 프로젝트에 표시되는 데이터만 검색할 수 있습니다. 예를 들어 측정항목 유형 storage.googleapis.com/api/request_count에 대해 프로젝트 데이터를 요청하면 프로젝트의 Cloud Storage 버킷에 대한 API 계정만 표시됩니다. 프로젝트에서 Cloud Storage 버킷을 사용하지 않는 경우 측정항목 데이터가 반환되지 않습니다.

기본 제공 측정항목 유형

기본 제공 측정항목 유형은 Cloud Monitoring을 포함한 Google Cloud 서비스에서 정의됩니다. 이러한 측정항목 유형은 다양한 공통 인프라에 대한 표준 측정값을 설명하며 누구나 사용할 수 있습니다.

기본 제공 측정항목 유형은 측정항목 목록에 모두 표시됩니다. 외부 측정항목 목록 페이지에 나열된 측정항목은 Cloud Monitoring에서 오픈소스 프로젝트 또는 서드 파티 제공업체와 제휴하여 정의한 기본 제공 측정항목의 특수 하위 집합입니다. 일반적으로 이러한 측정항목에는 프리픽스 external.googleapis.com이 있습니다.

커스텀 측정항목

애플리케이션을 빌드할 때 Cloud Monitoring에 측정항목이 기본 제공되지 않는 측정할 특정 속성이 있을 수 있습니다. Cloud Monitoring을 사용하면 자체 측정항목 유형을 정의하거나 외부 소스로부터 측정항목 유형을 가져올 수 있습니다. 이러한 측정항목 유형을 커스텀 측정항목이라고 합니다. 측정항목에 custom.googleapis.com 또는 prometheus.googleapis.com 프리픽스가 있는 경우, 커스텀 측정항목입니다. 후자의 측정항목은 일반적으로 Google Cloud Managed Service for Prometheus에서 가져옵니다.

예를 들어 매장에서 판매하는 위젯의 수를 추적하려면 커스텀 측정항목을 사용해야 합니다. 자세한 내용은 사용자 정의 측정항목 개요를 참조하세요.

라벨

라벨은 데이터 값에 관한 정보를 제공하는 데 사용할 수 있는 키-값 쌍입니다.

측정항목 및 모니터링 리소스 라벨

측정항목 및 모니터링 리소스 유형의 정의에는 라벨이 포함됩니다. 라벨은 수집되는 데이터의 분류 기준이며 심층 분석을 위해 데이터를 분류하는 데 도움이 됩니다. 예를 들면 다음과 같습니다.

  • Cloud Storage 측정항목 유형 storage.googleapis.com/api/request_count에는 response_codemethod라는 두 개의 라벨이 있습니다.
  • Cloud Storage 모니터링 리소스 유형 gcs_bucket에는 project_id, bucket_name, location의 세 가지 라벨이 있습니다. 라벨은 리소스 유형의 특정 인스턴스를 식별합니다.

따라서 Cloud Storage 버킷에서 API 요청에 대해 수집된 모든 데이터는 호출된 메서드, 호출의 응답 코드, 관련된 버킷의 이름, 위치, 프로젝트별로 분류됩니다. 라벨 집합은 측정항목 또는 모니터링 리소스 유형에 따라 다릅니다. 사용 가능한 라벨은 측정항목 목록모니터링 리소스 목록 페이지에 설명되어 있습니다.

API 호출 수를 계산할 때 응답 코드, 메서드 이름, 위치를 추적하면 특정 API 메서드에 대한 호출 수, 또는 메서드에 대한 실패한 호출 수, 또는 특정 위치에서 특정 메서드에 대한 실패한 호출 수를 가져올 수 있습니다.

라벨의 수와 각 라벨이 가지는 값의 수를 카디널리티라고 합니다. 카디널리티는 한 쌍의 측정항목 및 모니터링 리소스 유형에 대해 수집될 수 있는 시계열의 수입니다. 각 라벨 값 조합에는 한 개의 시계열이 있습니다. 자세한 내용은 카디널리티: 시계열 및 라벨을 참조하세요.

리소스 메타데이터 라벨

측정항목 및 모니터링 리소스 유형에 정의된 라벨 외에도 Monitoring은 내부적으로 모니터링 리소스에 대한 추가 정보를 수집하고 해당 정보를 시스템 메타데이터 라벨에 저장합니다. 이러한 시스템 메타데이터 라벨은 사용자에게 읽기 전용 값으로 제공됩니다. 일부 리소스에서는 사용자가 Google Cloud Console에서 VM 인스턴스와 같은 리소스를 구성할 때 자체 리소스 메타데이터 라벨을 만들 수도 있습니다.

시스템 및 사용자 메타데이터 라벨을 통칭하여 리소스 메타데이터 라벨이라고 합니다. 시계열 필터의 측정항목 및 모니터링 리소스 유형에 정의된 라벨과 같은 라벨을 사용할 수 있습니다. 필터링에 대한 자세한 내용은 Monitoring 필터를 참조하세요.

시계열: 모니터링 리소스의 데이터

이 섹션에서는 모니터링 데이터가 무엇인지와 시계열로 구성되는 방법을 설명합니다. 여기에서 측정항목 모델의 개념 구성요소가 구체적인 아티팩트가 됩니다.

Cloud Monitoring은 측정항목과 모니터링 리소스 유형의 쌍에 대한 정기적인 측정값을 저장합니다. 측정값은 시계열로 수집되며 각 시계열에는 다음 항목이 포함됩니다.

  • 시계열이 속한 측정항목 유형의 이름과 측정항목 라벨 값의 조합입니다.

  • 일련의 timestamptimestamp의 쌍입니다. value는 측정값이고 timestamp는 측정된 시간입니다.

  • 시계열 데이터의 소스인 모니터링 리소스와 리소스 라벨 값의 조합입니다.

데이터를 생성하는 측정항목과 리소스 라벨의 각 조합마다 시계열이 생성됩니다.

스타일화된 예시: 측정항목 유형 storage.googleapis.com/api/request_count에는 프로젝트의 Cloud Storage 버킷에 대한 많은 시계열이 있을 수 있습니다. 다음 이미지는 가능한 시계열을 보여줍니다.

이미지에서 bucket: xxxx 값은 모니터링 리소스 유형의 bucket_name 라벨 값을 나타내고 response_codemethod는 측정항목 유형의 라벨입니다. 리소스 및 측정항목 라벨의 값 조합마다 시계열이 하나씩 있습니다. 다음 그림을 참조하세요.

측정항목에 있는 여러 시계열을 보여주는 이미지

Cloud Monitoring은 '빈' 시계열을 기록하지 않습니다. Cloud Storage 버킷 예시에서 특정 버킷을 사용하지 않거나 특정 API 메서드를 호출하지 않으면 해당 라벨에 대한 데이터가 수집되지 않으며 시계열에서 이를 언급하지 않습니다. 즉, 프로젝트에 특정 측정항목에 대한 데이터가 전혀 없는 경우 측정항목 유형이 표시되지 않습니다.

측정항목 유형은 측정항목의 시계열에 있는 모니터링 리소스 유형을 나타내지 않습니다. Cloud Storage의 경우 모니터링 리소스 유형이 하나뿐입니다(gcs_bucket). 일부 측정항목 유형은 둘 이상의 모니터링 리소스와 페어링됩니다.

실시간 예시: Google Cloud 프로젝트가 있는 경우 Monitoring API의 timeSeries.list 메서드에 대한 참조 페이지에서 API 탐색기 위젯을 사용해 볼 수 있습니다.

  1. timeSeries.list 참조 페이지를 엽니다.

  2. 이 메서드 사용해 보기 라벨이 지정된 창에 다음을 입력합니다.

    • name: projects/PROJECT_ID PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿉니다.
    • 필터: metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
    • interval.start_time: 시작 시간을 입력하고 종료 시간보다 20분 전인지 확인합니다.
    • interval.end_time: 종료 시간을 입력합니다.

요청이 성공하면 요청과 일치하는 시계열 데이터가 반환됩니다. 이는 다음 스니펫과 같습니다.

{
  "timeSeries": [
    {
      "metric": {
        "labels": {
          "severity": "INFO",
          "log": "compute.googleapis.com/activity_log"
        },
        "type": "logging.googleapis.com/log_entry_count"
      },
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "0",
          "zone": "us-central1",
          "project_id": "your-project-id"
        }
      },
      "metricKind": "DELTA",
      "valueType": "INT64",
      "points": [
        {
        "interval": {
            "startTime": "2024-03-29T13:53:00Z",
            "endTime": "2024-03-29T13:54:00Z"
          },
          "value": {
            "int64Value": "0"
          }
        },
        ...
      ]
    },
    ...
  ]
}

문제 해결을 포함하여 API 탐색기 위젯 사용 방법에 대한 자세한 내용은 API 탐색기를 참조하세요.

카디널리티: 시계열 및 라벨

모든 시계열은 측정항목 및 모니터링 리소스 유형의 특정 쌍과 연결됩니다. 측정항목 및 모니터링 리소스 유형은 각각 여러 개의 라벨을 제공합니다. Cloud Monitoring에서 라벨 집합의 고유한 값 조합 수는 측정항목 유형 또는 모니터링 리소스 유형의 카디널리티입니다. 이러한 값을 측정항목 카디널리티리소스 카디널리티라고 하며 생성 가능한 시계열 수인 총 카디널리티를 결정합니다.

측정항목, 리소스, 총 카디널리티

colorzone이라는 두 개의 라벨을 지정하는 측정항목 유형이 있다고 가정해 보겠습니다. 측정항목 카디널리티는 해당 라벨이 가지는 가능한 값의 수에 따라 다릅니다.

  • 가능한 색상이 '빨간색', '녹색', '파란색'인 경우 color 라벨은 최대 3개의 고유 값을 가질 수 있습니다.
  • 가능한 영역이 '동부'와 '서부'인 경우 zone 라벨은 최대 2개의 고유 값을 가질 수 있습니다.

이 측정항목의 카디널리티는 6(3×2)입니다. color 라벨에 값이 1,000개까지 있을 수 있으면서 모든 영역에서 모든 색상이 나타날 수 있으면 측정항목 카디널리티는 2,000(1,000×2)입니다. 측정항목 유형이 아닌 모니터링 리소스 유형의 라벨인 경우에도 동일한 계산이 적용됩니다.

이 카디널리티 값은 가능한 라벨 값 조합의 수에 따라 최댓값입니다. 라벨 값의 모든 조합이 실제로 발생하지 않으면 유효한 실제 값은 상당히 낮을 수 있습니다. 예를 들어 각 색상이 두 영역이 아닌 하나의 영역에만 나타날 경우 실행 중인 시스템에 표시되는 최대 시계열 수는 1,000입니다. 그러나 유효 카디널리티의 유용성은 특정 조합이 표시되지 않는 이유와 향후 발생 가능 여부에 따라 다릅니다.

카디널리티는 라벨에 있을 수 있는 값에 따라 다릅니다.

시계열 데이터가 기록되면 측정항목 및 모니터링 리소스 유형별로 분류됩니다. 모든 측정항목 및 리소스 유형 쌍에서 총 카디널리티는 측정항목 카디널리티와 리소스 카디널리티의 곱입니다. 측정항목의 카디널리티가 1,000이고 리소스의 카디널리티가 100이며 모든 라벨 값이 표시되면 100,000개의 시계열(1,000×100)이 있는 것입니다.

자체 측정항목을 설계할 때는 라벨에 가능한 값 세트를 제한해야 합니다. '빨간색', '녹색', '파란색'과 같은 개별 값의 작은 집합을 사용하는 것이 좋습니다. 예를 들어 color 라벨에 8비트 RGB 값을 사용할 경우 1,600만 개 이상의 서로 다른 값을 가질 수 있습니다. 측정항목 라벨에는 타임스탬프, 모든 종류의 고유 식별자, 사용자 ID, IP 주소, 매개변수화되지 않은 URL 등의 고해상도 값을 사용하지 마세요.

쿼리 성능 및 카디널리티

데이터에 대한 쿼리를 실행할 때 요청하는 데이터 볼륨은 쿼리 성능에 가장 큰 영향을 미치는 요소입니다. 1시간 동안의 데이터에 대한 쿼리는 일반적으로 6개월 동안의 데이터에 대한 동일한 쿼리보다 빠릅니다. 하지만 요청으로 반환되는 데이터 볼륨은 요청에 있는 시계열 수에 민감합니다. 카디널리티가 낮은 측정항목에 대해 2개월 분량의 데이터를 검색하는 쿼리는 카디널리티가 매우 높은 측정항목에 대해 2개월 분량의 데이터를 검색하는 쿼리보다 가져오는 데이터 양 때문에 더 빠릅니다.

카디널리티는 라벨 수가 아니라 주로 라벨에 포함될 수 있는 값 수에 따라 달라집니다. 일반적으로 비즈니스 요구사항에 따라 포드 또는 VM 수가 변경될 때와 같이 리소스의 카디널리티를 제어할 수 없습니다. 하지만 시스템 측정항목을 사용하는 대신 Cloud Monitoring으로 측정항목을 수집할 때 측정항목 카디널리티를 제어할 수 있는 경우가 많습니다. 예를 들어 사용자 정의 커스텀 측정항목을 사용하여 라벨과 사용 가능한 값을 결정합니다. Prometheus 측정항목을 수집하는 경우 라벨 재지정을 사용하여 라벨 집합을 수정하고 수집하지 않을 시계열을 삭제할 수 있습니다.

Cloud Monitoring 측정항목 관리 페이지를 사용하여 카디널리티 문제가 있을 수 있는 측정항목을 식별할 수 있습니다. 측정항목 관리 페이지를 보려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서  측정항목 관리 페이지로 이동합니다.

    측정항목 관리로 이동

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

  2. 툴바에서 기간을 선택합니다. 기본적으로 측정항목 관리 페이지에는 이전 1일 동안 수집된 측정항목에 대한 정보가 표시됩니다.

측정항목 관리 페이지에 대한 자세한 내용은 측정항목 사용량 보기 및 관리를 참조하세요.

Cloud Monitoring이 시계열 데이터를 저장하고 검색하는 방법에 대한 기술적 배경은 Monarch: Google의 전 세계적 규모 인메모리 시계열 데이터베이스를 참조하세요.

Cloud Monitoring에서 사용자 정의된 측정항목의 한도에 대한 자세한 내용은 사용자 정의된 측정항목을 참조하세요.