시계열의 구조

이 페이지는 측정항목, 시계열, 리소스측정항목 모델의 구성요소에 제시된 토론과 예시를 심층적으로 계속해서 보여줍니다. 이 페이지를 최대한 활용하려면 먼저 해당 페이지를 읽어보세요.

이 페이지는 시계열과 Cloud Monitoring 측정항목 모델의 구현에 대한 심층적인 이해를 원하는 경우, 특히 Monitoring API를 사용하는 독자를 대상으로 합니다. 여기에는 커스텀(사용자 정의) 측정항목의 사용자가 포함됩니다.

  • 이 페이지에서는 일반 측정항목 모델을 Cloud Monitoring API에 매핑하므로 Monitoring API를 직접 사용하는 모든 사용자에게 유용합니다. Google Cloud Console과의 기본 상호작용이 있는 사용자는 이러한 수준의 세부정보가 필요하지 않을 수 있습니다.

  • 또한 OpenCensus와 같은 타사 통합을 사용하는 모든 사용자에게 유용합니다. 외부 소스의 데이터가 통합을 통해 Cloud Monitoring에 도달하면 Cloud Monitoring 측정항목 모델에 매핑되고 다른 측정항목 데이터와 같이 취급됩니다.

자체 측정항목 수집에 대한 자세한 내용은 커스텀 측정항목 사용을 참조하세요.

측정항목 모델 검토

시계열의 구조를 이해하기 위한 기본 요건은 Cloud Monitoring에서 사용되는 측정항목 모델에 대한 기본 지식입니다. 이 모델은 측정항목, 시계열, 리소스에 설명되어 있습니다. 이 섹션에서는 간단한 리뷰를 제공합니다.

일반적으로 모니터링 데이터는 시계열로 기록됩니다. 각 시계열에는 이 토론과 관련된 세 가지 정보가 포함됩니다.

  • 타임스탬프가 지정된 데이터 포인트의 집합
  • 데이터 포인트를 해석하는 방법을 알려주는 측정항목 유형에 대한 참조
  • 데이터가 시작된 모니터링 리소스에 대한 참조

    시계열의 구조

각 시계열에는 단일 물리적 또는 논리적 소스의 측정값이 포함됩니다. 환경에 수백 개의 리소스가 있는 경우 각 리소스는 하나 이상의 시계열에 기여합니다. 실제로 측정항목 유형과 모니터링 리소스 유형에 라벨이 있으면 라벨 값의 조합당 하나의 시계열이 생성됩니다. 자세한 내용은 카디널리티를 참조하세요.

샘플 시계열

다음은 단일 시계열의 완전한 인스턴스입니다(TimeSeries 유형).

    {
      "metric": {
        "labels": {
          "log": "kubelet",
          "severity": "DEFAULT"
        },
        "type": "logging.googleapis.com/log_entry_count"
      },
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "5106847938295940291",
          "zone": "us-central1-a",
          "project_id": "a-gcp-project"
        }
      },
      "metricKind": "DELTA",
      "valueType": "INT64",
      "points": [
        {
          "interval": {
            "startTime": "2019-12-20T20:25:38Z",
            "endTime": "2019-12-20T20:26:38Z"
          },
          "value": {
            "int64Value": "20"
          }
        }
      ]
    }

대부분의 시계열에는 훨씬 더 많은 데이터 포인트가 포함되어 있으며, 해당 시계열은 1분 간격입니다. 모든 시계열은 다음과 같은 필드를 가지는 동일한 구조를 가집니다.

  • metric 필드는 다음을 기록합니다.

    • 라벨 값의 한 조합을 나타내는 이 특정 시계열의 측정항목 라벨 값
    • 데이터가 연결된 측정항목 유형 측정항목 유형은 사용 가능한 라벨을 지정하고 데이터 포인트로 표시되는 항목을 설명합니다.

    이 필드의 정보는 측정항목에 자세히 설명되어 있습니다.

  • resource 필드는 다음을 기록합니다.

    • 라벨 값의 한 조합을 나타내는 이 특정 시계열의 리소스 라벨 값
    • 데이터가 수집된 특정 모니터링 리소스

    이 필드의 정보는 모니터링 리소스에 자세히 설명되어 있습니다.

  • metricKindvalueType 필드는 값을 해석하는 방법을 알려줍니다. 자세한 내용은 측정항목 종류 및 유형을 참조하세요.

  • points 필드는 타임스탬프가 지정된 값의 배열입니다. 측정항목 유형은 값이 무엇을 나타내는지 알려줍니다. 샘플 시계열에는 단일 데이터 포인트가 있는 배열이 있습니다. 대부분의 시계열에서는 배열에 더 많은 값이 있습니다.

시계열 데이터를 검색하는 라이브 예시는 시계열: 모니터링 리소스의 데이터를 참조하세요.

이 페이지의 나머지 부분에서는 metricresource 필드의 정보를 자세히 살펴봅니다.

모니터링 리소스

Cloud Monitoring은 모니터링 리소스에서 데이터를 수집하여 시계열에 기록합니다. 생성된 각 시계열에는 데이터가 수집된 모니터링 리소스에 대한 설명이 포함됩니다.

모니터링 리소스 객체

각 시계열은 데이터 포인트의 소스를 모니터링 리소스 객체(MonitoredResource 유형)로 기록합니다. 이 객체는 시계열에 삽입되며 Monitoring에 알려진 모니터링 리소스 유형의 특정 인스턴스를 식별합니다. 이는 물리적 또는 논리적 항목을 가리킵니다.

예를 들어 다음은 시계열 예시에서 추출된 특정 Compute Engine 인스턴스를 설명하는 모니터링 리소스 객체입니다.

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "5106847938295940291",
          "zone": "us-central1-a",
          "project_id": "a-gcp-project"
        }
      }

모니터링 리소스의 이 인스턴스는 gce_instance 유형이며, 프로젝트 a-gcp-project에 특정 instance_id 값(5106847938295940291)을 가집니다. 인스턴스는 미국에 위치합니다. 다른 시계열은 이 모니터링 리소스의 다른 인스턴스에서 시작될 수 있습니다. 라벨 값의 각 조합은 데이터가 수집되는 고유한 리소스를 식별합니다.

다른 라벨 집합은 리소스에 따라 다릅니다. 리소스의 라벨 집합은 해당 유형의 모니터링 리소스 설명자에 의해 결정됩니다.

모니터링 리소스 설명자

모니터링 리소스 유형에 대한 정보는 모니터링 리소스 설명자(MonitoredResourceDescriptor 유형)라는 데이터 구조에 보관됩니다.

모니터링 리소스 설명자는 레코드 구조의 스키마 또는 사양과 같습니다. 모니터링 리소스의 특정 인스턴스에 대한 데이터는 포함되지 않으며 특정 유형의 모니터링 리소스를 설명하는 방법을 설명합니다. 예를 들어 gce_instance 리소스의 모니터링 리소스 설명자는 다음과 같습니다.

{
  "type": "gce_instance",
  "displayName": "GCE VM Instance",
  "description": "A virtual machine instance hosted in Google Compute Engine (GCE).",
  "name": "projects/[PROJECT_ID]/monitoredResourceDescriptors/gce_instance"
  "labels": [
    {
      "key": "project_id",
      "description": "The identifier of the GCP project associated with this resource, such as \"my-project\"."
    },
    {
      "key": "instance_id",
      "description": "The numeric VM instance identifier assigned by Compute Engine."
    },
    {
      "key": "zone",
      "description": "The Compute Engine zone in which the VM is running."
    }
  ],
}

이 모니터링 리소스 설명자를 모니터링 리소스 객체에 표시된 gce_instance 리소스의 특정 인스턴스와 비교합니다. 이 설명자는 특정 모니터링 리소스를 설명하지 않습니다. 대신 설명자가 라벨을 지정하고 각 라벨 값 조합은 특정 모니터링 리소스를 식별합니다.

Cloud Monitoring API를 사용하여 Google Cloud 프로젝트에서 모니터링 리소스 설명자를 검색할 수 있습니다. 예를 들어 monitoredResourceDescriptors.listmonitoredResourceDescriptors.get 메서드의 참조 페이지를 확인하세요.

라이브 예시: Google Cloud 프로젝트가 있는 경우 Monitoring API의 monitoredResourceDescriptors.get 메서드의 참조 페이지에 있는 API 탐색기 위젯을 사용하여 설명자를 검색할 수 입니다.

이 예시를 실행하면 name 필드의 [PROJECT_ID]를 프로젝트 ID로 변경해야 합니다. 그런 다음 위젯 패널 하단의 실행 버튼을 클릭합니다. 요청은 위의 설명자를 반환합니다.

사용해 보기

Monitoring API 메서드를 사용하는 더 많은 예시는 측정항목 및 리소스 유형 찾아보기를 참조하세요.

마지막으로 Cloud Monitoring은 약 100개의 리소스 유형을 모니터링할 수 있습니다. 자세한 내용은 리소스 목록을 참조하세요. 이 목록은 사용 가능한 모니터링 리소스 설명자 집합에서 직접 가져옵니다.

측정항목

Cloud Monitoring에서 생성된 각 시계열은 데이터 포인트 집합과 이러한 데이터 포인트의 조직 및 의미에 대한 정보를 기록합니다.

측정항목 객체

각 시계열에는 측정항목 객체에 기록되는 데이터의 설명에 대한 참조가 포함됩니다.

측정항목 객체(Metric 유형)는 이 시계열의 데이터 포인트에 대한 측정항목 유형과 측정항목 유형의 라벨 값을 나타내는 정보의 모음입니다. 예를 들어 샘플 시계열의 시계열에서 추출된 측정항목 객체는 다음과 같습니다.

    {
      "metric": {
        "labels": {
          "log": "kubelet",
          "severity": "DEFAULT"
        },
        "type": "logging.googleapis.com/log_entry_count"
      }

이 객체는 시계열에 logging.googleapis.com/log_entry_count 측정항목 유형의 측정값이 포함되어 있음을 알려줍니다. 라벨 값은 이 특정 시계열이 kubelet라는 로그 파일의 심각도 DEFAULT의 로그 항목만 계산함을 나타냅니다.

라벨 값의 조합마다 시계열이 하나씩 있으므로 동일한 로그 파일의 INFO 항목이 다른 시계열에 나타납니다.

측정항목 객체에서 수집된 라벨 집합은 해당 측정항목 유형의 설명자에 지정됩니다.

측정항목 설명

측정항목 유형에 대한 정보는 측정항목 설명(MetricDescriptor 유형)이라는 데이터 구조에 보관됩니다.

측정항목 설명자는 레코드 구조의 스키마 또는 사양입니다. 특정 측정항목에 대한 데이터는 포함되지 않으며 대신 특정 측정항목 유형과 관련된 데이터를 해석하는 방법을 설명합니다.

다음은 측정항목 유형 logging.googleapis.com/log_entry_count의 측정항목 설명입니다.

{
  "type": "logging.googleapis.com/log_entry_count",
  "name": "projects/a-gcp-project/metricDescriptors/logging.googleapis.com/log_entry_count",
  "labels": [
    {
      "key": "log",
      "description": "Name of the log."
    },
    {
      "key": "severity",
      "description": "Severity of the log entry."
    }
  ],
  "metricKind": "DELTA",
  "valueType": "INT64",
  "unit": "1",
  "description": "Number of log entries that contributed to user-defined metrics.",
  "displayName": "Log entries",
  "metadata": {
    "launchStage": "GA",
    "samplePeriod": "60s"
  },
  "launchStage": "GA"
}

이 측정항목 설명을 측정항목 객체에 표시된 측정항목 객체와 비교합니다. 설명자는 라벨 값의 의미와 더불어 데이터 포인트의 값을 해석하는 방법을 알려줍니다.

Cloud Monitoring API를 사용하여 측정항목 설명자를 검색할 수 있습니다. 예를 들어 metricDescriptors.listmetricDescriptors.get 메서드의 참조 페이지를 확인하세요.

라이브 예시: Google Cloud 프로젝트가 있는 경우 Monitoring API의 metricDescriptors.get 메서드의 참조 페이지에 있는 API 탐색기 위젯을 사용하여 설명자를 검색할 수 있습니다.

이 예시를 실행하면 name 필드의 [PROJECT_ID]를 프로젝트 ID로 변경해야 합니다. 그런 다음 위젯 패널 하단의 실행 버튼을 클릭합니다. 요청은 위의 설명자를 반환합니다.

사용해 보기

Monitoring API 메서드를 사용하는 더 많은 예시는 측정항목 및 리소스 유형 찾아보기를 참조하세요.

측정항목 설명에 있는 대부분의 필드는 설명이 필요 없습니다. 추가 설명이 필요한 두 가지 유형은 측정항목 종류와 값 유형이며 측정항목 종류 및 유형에 자세히 설명되어 있습니다.

마지막으로 Cloud Monitoring에는 1,500개 가량의 기본 제공 측정항목 유형이 있습니다. 자세한 내용은 측정항목 목록을 참조하세요. 커스텀 측정항목을 캡처하기 위해 자체 측정항목 설명자를 만들 수도 있습니다. 자세한 내용은 커스텀 측정항목 사용을 참조하세요.