Struktur deret waktu

Cloud Monitoring API merepresentasikan model metrik Cloud Monitoring menggunakan TimeSeries, Metric, MonitoredResource, dan objek deskriptor. Memahami struktur ini akan membantu Anda menggunakan Monitoring API secara langsung, membuat metrik kustom, dan mengintegrasikan sumber eksternal seperti OpenTelemetry, yang datanya dipetakan ke model yang sama. Jika Anda berinteraksi dengan Monitoring terutama melalui konsol Google Cloud , Anda mungkin tidak memerlukan tingkat detail ini.

Sebelum membaca dokumen ini, pahami Metrik, deret waktu, dan resource serta Komponen model metrik. Untuk informasi selengkapnya tentang mengumpulkan metrik Anda sendiri, lihat Ringkasan metrik yang ditentukan pengguna.

Peninjauan model metrik

Prasyarat untuk memahami struktur deret waktu adalah pemahaman tentang model metrik yang digunakan oleh Cloud Monitoring. Model ini dijelaskan dalam Metrik, deret waktu, dan resource. Bagian ini memberikan ulasan singkat.

Secara umum, data pemantauan dicatat dalam deret waktu. Setiap deret waktu individual mencakup tiga informasi yang relevan dengan pembahasan ini:

  • Satu set titik data yang diberi stempel waktu.
  • Referensi ke jenis metrik yang memberi tahu Anda cara menafsirkan titik data.
  • Referensi ke resource yang dimonitor tempat data berasal.
Time series:

    Points: [(value1, time1), (value2, time2), ...]
    Metric type information: integer? incremental?
    Monitored resource: project? location? method?

Setiap deret waktu menyimpan pengukuran dari satu sumber fisik atau logis. Jika lingkungan Anda memiliki ratusan resource, masing-masing resource akan berkontribusi setidaknya satu deret waktu. Bahkan, jika jenis metrik dan jenis resource yang dimonitor memiliki label, Anda akan mendapatkan satu deret waktu per kombinasi nilai label; lihat Kardinalitas untuk mengetahui informasi selengkapnya.

Contoh deret waktu

Deret waktu direpresentasikan sebagai instance objek TimeSeries. Berikut adalah instance lengkap dari satu deret waktu:

    {
      "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"
          }
        }
      ]
    }

Sebagian besar deret waktu menyertakan lebih banyak titik data; deret waktu ini mencakup interval satu menit. Semua deret waktu memiliki struktur yang sama, dengan kolom berikut:

  • Kolom metric mencatat:

    • Nilai label metrik untuk deret waktu tertentu ini, yang mewakili satu kombinasi nilai label.
    • Jenis metrik yang terkait dengan data. Jenis metrik menentukan label yang tersedia dan menjelaskan apa yang diwakili oleh titik data.

    Informasi dalam kolom ini dijelaskan secara lebih mendetail di Metrik.

  • Kolom resource mencatat:

    • Nilai label resource untuk deret waktu tertentu ini, yang mewakili satu kombinasi nilai label.
    • Resource yang dimonitor tertentu tempat data dikumpulkan.

    Informasi dalam kolom ini dijelaskan secara lebih mendetail di Objek resource yang dimonitor.

  • Kolom metricKind dan valueType memberi tahu Anda cara menafsirkan nilai. Untuk informasi selengkapnya, lihat Jenis nilai dan jenis metrik.

  • Kolom points adalah array nilai yang diberi stempel waktu. Jenis metrik memberi tahu Anda apa yang diwakili oleh nilai. Deret waktu contoh memiliki array dengan satu titik data; di sebagian besar deret waktu, array memiliki lebih banyak nilai.

Untuk contoh langsung yang mengambil data deret waktu, lihat Deret waktu: data dari resource yang dimonitor.

Bagian selanjutnya dari halaman ini membahas informasi di kolom metric dan resource secara lebih mendetail.

Resource yang dimonitor

Cloud Monitoring mengumpulkan data dari resource yang dimonitor dan mencatatnya dalam deret waktu. Setiap deret waktu yang dibuat menyertakan deskripsi resource yang dimonitor tempat data dikumpulkan.

Objek resource yang dimonitor

Resource yang dimonitor diwakili oleh instance objek MonitoredResource. Resource yang dimonitor menjelaskan sumber nilai dalam deret waktu. Objek MonitoredResource disematkan ke dalam deret waktu dan mengidentifikasi instance tertentu dari jenis resource yang dimonitor yang diketahui oleh Monitoring: objek ini mengarah ke entitas fisik atau logis.

Misalnya, berikut adalah objek resource yang dimonitor yang menjelaskan instance Compute Engine tertentu, yang diekstrak dari contoh deret waktu:

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

Instance resource yang dimonitor ini berjenis gce_instance, dan memiliki nilai instance_id tertentu (5106847938295940291) dalam project a-gcp-project. Instance berada di Amerika Serikat. Deret waktu lain mungkin berasal dari instance yang berbeda dari resource yang dimonitor ini. Setiap kombinasi nilai label mengidentifikasi resource unik tempat data dikumpulkan.

Set label yang berbeda cocok untuk resource yang berbeda. Kumpulan label untuk resource ditentukan oleh deskriptor resource yang dimonitor untuk jenis tersebut.

Deskripsi resource yang dimonitor

Informasi tentang jenis resource yang dimonitor disimpan dalam struktur data yang disebut deskriptor resource yang dimonitor. Untuk mengetahui definisi struktur data ini, lihat MonitoredResourceDescriptor.

Deskripsi resource yang dimonitor seperti skema atau spesifikasi untuk struktur data. Deskripsi ini tidak berisi data tentang instance tertentu dari resource yang dimonitor; deskripsi ini memberi tahu Anda cara mendeskripsikan resource yang dimonitor dari jenis tertentu. Misalnya, berikut adalah deskripsi resource yang dimonitor untuk resource 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."
    }
  ]
}

Bandingkan deskripsi resource yang dimonitor ini dengan instance spesifik dari resource gce_instance yang ditampilkan di Objek resource yang dimonitor. Deskripsi ini tidak menjelaskan resource yang dimonitor tertentu; tetapi, deskripsi ini menentukan label, dan setiap kombinasi nilai label mengidentifikasi resource yang dimonitor tertentu.

Anda dapat mengambil deskriptor resource yang dimonitor di project Google Cloud Anda menggunakan Cloud Monitoring API. Misalnya, lihat halaman referensi untuk metode monitoredResourceDescriptors.list dan monitoredResourceDescriptors.get.

Contoh langsung: Jika memiliki project Google Cloud , Anda dapat mengambil deskriptor ini menggunakan widget APIs Explorer sebagai berikut:

  1. Buka halaman referensi monitoredResourceDescriptors.list.

  2. Di panel berlabel Try this method, untuk kolom name, masukkan kode berikut setelah mengganti PROJECT_ID dengan ID projectGoogle Cloud Anda:

    projects/PROJECT_ID/monitoredResourceDescriptors/gce_instance
    
  3. Klik Jalankan.

Permintaan akan menampilkan deskriptor sebelumnya.

Untuk contoh penggunaan metode Monitoring API, lihat Mencantumkan jenis metrik dan resource.

Metrik

Setiap deret waktu yang dibuat oleh Cloud Monitoring mencatat serangkaian titik data serta informasi tentang organisasi dan arti titik data tersebut.

Objek metrik

Setiap deret waktu menyertakan referensi ke deskripsi data yang dicatat dalam objek metrik.

Objek metrik yang terdapat dalam deret waktu menentukan jenis pengukuran dan informasi khusus metrik tentang pengukuran tersebut. Untuk mengetahui definisi struktur data objek metrik, lihat Metric. Misalnya, berikut adalah objek metrik yang diekstrak dari deret waktu di Contoh deret waktu:

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

Objek ini memberi tahu Anda bahwa deret waktu berisi pengukuran logging.googleapis.com/log_entry_count. Nilai label memberi tahu Anda bahwa deret waktu spesifik ini hanya menghitung entri log dengan tingkat keparahan DEFAULT dalam file log bernama kubelet.

Ada satu deret waktu untuk setiap kombinasi nilai label, sehingga entri INFO ke file log yang sama muncul dalam deret waktu yang berbeda.

Kumpulan label yang dikumpulkan dalam objek metrik ditentukan dalam deskriptor untuk jenis metrik tersebut.

Deskriptor metrik

Informasi tentang jenis metrik disimpan dalam struktur data yang disebut deskriptor metrik. Untuk mengetahui definisi struktur data ini, lihat MetricDescriptor.

Deskriptor metrik adalah skema atau spesifikasi untuk struktur data. Deskripsi ini tidak berisi data tentang metrik tertentu, melainkan memberi tahu Anda cara menafsirkan data yang terkait dengan jenis metrik tertentu.

Berikut adalah contoh deskriptor metrik:

{
  "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"
}

Bandingkan deskriptor metrik ini dengan objek metrik yang ditampilkan di Objek metrik. Deskripsi memberi tahu Anda arti nilai label, serta cara menafsirkan nilai titik data.

Anda dapat mengambil deskriptor metrik menggunakan Cloud Monitoring API. Misalnya, lihat halaman referensi untuk metode metricDescriptors.list dan metricDescriptors.get.

Contoh langsung: Jika memiliki project Google Cloud , Anda dapat mengambil deskriptor ini menggunakan widget APIs Explorer sebagai berikut:

  1. Buka halaman referensi metricDescriptors.list.

  2. Di panel berlabel Try this method, untuk kolom name, masukkan kode berikut setelah mengganti PROJECT_ID dengan ID projectGoogle Cloud Anda:

    projects/PROJECT_ID/metricDescriptors/logging.googleapis.com/log_entry_count
    
  3. Klik Jalankan.

Permintaan akan menampilkan deskriptor sebelumnya.

Untuk contoh penggunaan metode Monitoring API, lihat Mencantumkan jenis metrik dan resource.

Sebagian besar kolom dalam deskriptor metrik sudah jelas. Dua hal yang mungkin memerlukan penjelasan lebih lanjut adalah jenis metrik dan jenis nilai, yang dijelaskan lebih lanjut di Jenis nilai dan jenis metrik.

Cloud Monitoring memiliki sekitar 6.500 jenis metrik bawaan; lihat Daftar metrik untuk mengetahui detailnya. Anda juga dapat membuat deskriptor metrik sendiri untuk mengambil metrik kustom. Untuk mengetahui informasi selengkapnya, lihat Ringkasan metrik yang ditentukan pengguna.