측정항목 모델의 구성요소

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

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

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

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

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

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

라벨에 대해

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

  • 가상 머신의 모니터링 리소스 유형에는 머신 위치 및 머신과 연결된 프로젝트 ID의 라벨이 포함될 수 있습니다. 모니터링 리소스에 대한 정보가 기록되면 해당 정보에 라벨의 값이 포함됩니다.

    모니터링 리소스에는 모니터링 리소스 유형에 정의된 라벨 외에도 시스템 또는 사용자 제공 메타데이터 라벨이 있을 수 있습니다.

  • API 요청 수를 계산하는 측정항목 유형에는 호출된 메서드의 이름과 요청 상태를 기록하는 라벨이 있을 수 있습니다.

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

모니터링 리소스 유형

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

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

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

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

모니터링 리소스 유형 샘플

다음은 Cloud Storage 버킷의 목록에 있는 항목입니다.

Cloud Storage 버킷의 목록

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

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

측정항목 유형

측정항목 유형은 모니터링 리소스에서 수집할 수 있는 측정값을 설명합니다. 측정항목 유형에는 측정 대상과 측정값을 해석하는 방법에 대한 설명이 포함됩니다. 최근 기준으로 Cloud Monitoring은 약 1,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을 사용합니다.

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

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

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

현재 Google Cloud 프로젝트 또는 작업공간에 속하는 모니터링 데이터에만 액세스할 수 있습니다. 예를 들어 storage.googleapis.com/api/request_count 측정항목 유형에서 데이터를 요청하면 프로젝트의 Cloud Storage 버킷에 대해서만 API 수가 표시됩니다. 프로젝트에서 Cloud Storage 버킷을 사용하지 않는 경우 해당 버킷의 측정항목 데이터가 제공되지 않습니다.

기본 제공 측정항목 유형

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

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

커스텀 측정항목

애플리케이션을 빌드할 때 측정항목이 기본 제공되지 않은 측정할 특정 속성이 있을 수 있습니다. Cloud Monitoring을 사용하면 고유한 측정항목 유형을 정의할 수 있습니다. 이러한 측정항목 유형을 커스텀 측정항목이라고 합니다. 측정항목에 custom.googleapis.com 또는 external.googleapis.com/prometheus 프리픽스가 있는 경우, 커스텀 측정항목입니다. 후자의 측정항목은 일반적으로 Stackdriver Prometheus 사이드카에서 가져옵니다. 자세한 내용은 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은 측정항목과 모니터링 리소스 유형의 쌍에 대한 정기적인 측정값을 저장합니다. 측정값은 시계열로 수집되며 각 시계열에는 다음 항목이 포함됩니다.

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

  • 일련의 timestampvalue의 쌍입니다. 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 프로젝트가 있는 경우, 참조 페이지에 있는 API 탐색기 위젯을 Monitoring API의 timeSeries.list 메서드에 사용해볼 수 있습니다. 아래의 TRY IT(시도하기) 버튼은 timeSeries.list 메서드에 다음과 같은 기본 매개변수를 제공합니다.

  • 이름: projects/[PROJECT_ID]
  • 필터: metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
  • interval.start_time: 2019-11-11T00:00:00Z
  • interval.end_time: 2019-11-11T00:20:00Z
  • 필드: timeSeries.metric

이 예시를 실행하려면 name 필드의 [PROJECT_ID] 를 프로젝트 ID로 변경해야 합니다.

이 예시에서는 Cloud Logging 에이전트를 실행하는 Compute Engine 인스턴스가 있다고 가정합니다. 모니터링 리소스 유형은 gce_instance이고 측정항목 유형은 logging.googleapis.com/log_entry_count입니다. 이 값이 적용되지 않는 경우 변경할 수 있습니다.

시계열 데이터를 검색할 때 시작 및 종료 시간을 지정해야 합니다. 이 예시에서는 2019년 11월 11일의 기간을 사용합니다. 그러나 시계열 데이터는 6주 동안 저장되므로 요청을 실행하기 전에 날짜를 조정해야 할 수도 있습니다.

요청을 실행하려면 아래 버튼을 클릭하고 필요에 따라 매개변수를 조정한 다음 위젯 패널 하단의 실행 버튼을 클릭합니다.

사용해 보기

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

{
  "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": "2019-10-29T13:53:00Z",
            "endTime": "2019-10-29T13:54:00Z"
          },
          "value": {
            "int64Value": "0"
          }
        },
        ...
      ]
    },
    ...
  ]
}

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

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

각 시계열은 측정항목 및 모니터링 리소스 유형의 특정한 쌍과 연결되지만 각 쌍에는 많은 시계열이 있을 수 있습니다. 가능한 시계열 수는 쌍의 카디널리티(라벨 수 및 각 라벨이 가질 수 있는 값의 수)에 따라 결정됩니다.

예를 들어 하나의 라벨 color를 지정하는 간단한 측정항목 유형과, 다른 라벨 zone의 모니터링 리소스 유형이 있다고 가정해 보겠습니다. zonecolor 값의 각 조합에 대한 시계열을 가져옵니다.

라벨이 가질 수 있는 값의 개수는 중요합니다.

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

카디널리티는 라벨과 값에 따라 다릅니다.

이 측정항목의 카디널리티는 6(3×2)이지만 측정항목은 더 적은 시계열을 생성할 수 있습니다. 예를 들어 '서부' 영역에서 데이터를 가져오지 않으면 시계열이 3개를 넘지 않습니다.

측정항목 카디널리티는 차트 또는 다른 용도의 측정항목을 요청하는 경우 성능에 중요한 요소입니다. 카디널리티가 높을수록 쿼리 응답 시간이 느려질 수 있습니다.

카디널리티는 커스텀 측정항목을 설계할 때도 우려가 되며, 여기에서 라벨 집합과 가능한 값을 결정합니다. 측정항목 유형에서 라벨은 10개로 제한되지만 모든 라벨에 가능한 값 집합이 제한되어 있는지 확인해야 합니다. '빨간색', '녹색', '파란색'과 같은 개별 값의 작은 집합을 사용하는 것이 좋습니다. 타임스탬프와 같은 세부적인 값은 사용할 수 없습니다. 커스텀 측정항목에 대한 다른 제한사항도 있습니다. 자세한 내용은 커스텀 측정항목을 참조하세요.