시계열의 구조

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

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

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

  • 또한 OpenTelemetry와 같은 타사 통합을 사용하는 모든 사용자에게 유용합니다. 외부 소스의 데이터가 통합을 통해 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 객체의 인스턴스로 표시됩니다. 모니터링 리소스는 시계열의 값 소스를 설명합니다. 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": "VM Instance",
  "description": "A virtual machine instance hosted in Compute Engine.",
  "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 프로젝트가 있는 경우 다음과 같이 API 탐색기 위젯을 사용하여 설명어를 검색할 수 습니다.

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

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

    • 이름: projects/PROJECT_ID/monitoredResourceDescriptors/gce_instance

      PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.

  3. 실행을 클릭합니다.

요청은 앞의 설명어를 반환합니다.

Monitoring API 메서드 사용 예시는 측정항목 및 리소스 유형 나열을 참조하세요.

측정항목

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를 참조하세요.

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

다음은 측정항목 설명의 예시입니다.

{
  "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 프로젝트가 있는 경우 다음과 같이 API 탐색기 위젯을 사용하여 설명어를 검색할 수 습니다.

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

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

    • name: projects/PROJECT_ID/metricDescriptors/logging.googleapis.com/log_entry_count PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿉니다.
  3. 실행을 클릭합니다.

요청은 앞의 설명어를 반환합니다.

Monitoring API 메서드 사용 예시는 측정항목 및 리소스 유형 나열을 참조하세요.

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

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