Dokumen ini menjelaskan cara membuat metrik yang ditentukan pengguna dan cara menulis data metrik ini menggunakan Cloud Monitoring API. Metrik yang ditentukan pengguna menggunakan elemen yang sama dengan metrik Cloud Monitoring bawaan:
- Sekumpulan titik data.
 - Informasi jenis metrik, yang memberi tahu Anda apa yang diwakili oleh titik data.
 - Informasi resource yang dipantau, yang memberi tahu Anda asal titik data.
 
Metrik buatan pengguna, terkadang disebut metrik kustom, dapat digunakan dengan cara yang sama seperti metrik bawaan. Artinya, Anda dapat membuat diagram dan pemberitahuan untuk data metrik ini.
Metrik berbasis log adalah class metrik yang ditentukan pengguna, tetapi Anda tidak dapat membuatnya menggunakan Cloud Monitoring API. Metrik berbasis log mendapatkan data metrik dari entri log, tetapi Monitoring API tidak menyediakan cara untuk menentukan cara mengekstrak data metrik dari entri log. Sebagai gantinya, gunakan Cloud Logging untuk membuat metrik berbasis log. Saat Anda membuat metrik berbasis log, Logging akan membuat struktur yang dijelaskan dalam dokumen ini dan mengirimkan data metrik ke Cloud Monitoring untuk Anda. Untuk mengetahui informasi tentang cara membuat metrik berbasis log, lihat dokumen berikut:
Untuk menginstrumentasi aplikasi, sebaiknya gunakan framework instrumentasi netral vendor yang bersifat open source, seperti OpenTelemetry, bukan API atau library klien khusus produk dan vendor. Untuk mengetahui informasi tentang menginstrumentasikan aplikasi Anda, lihat Instrumentasi dan kemampuan observasi.
Sebelum memulai
Untuk mempelajari struktur yang mendasari semua metrik, lihat Metrik, deret waktu, dan resource.
Untuk menggunakan Cloud Monitoring, Anda harus memiliki project Google Cloud dengan penagihan diaktifkan. Jika perlu, lakukan hal berikut:
- 
    
    
      
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
 - 
      Create a project: To create a project, you need the Project Creator
      (
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. 
 - 
  
    
Verify that billing is enabled for your Google Cloud project.
 - Pastikan Monitoring API diaktifkan. Untuk mengetahui detailnya, lihat Mengaktifkan Monitoring API.
 - Untuk aplikasi yang berjalan di luar Google Cloud, project Google Cloud Anda harus mengautentikasi aplikasi menggunakan Kredensial Default Aplikasi (ADC) lokal. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk penyedia lokal atau penyedia cloud lainnya.
 
Membuat jenis metrik yang ditentukan pengguna
Untuk membuat metrik buatan pengguna, Anda dapat menentukan objek
MetricDescriptor yang menentukan berbagai informasi tentang metrik,
atau Anda dapat menulis data metrik. Saat Anda menulis data metrik, Monitoring akan membuat deskriptor metrik untuk Anda berdasarkan struktur data yang Anda berikan.
Untuk mengetahui informasi tentang mendesain deskriptor metrik, lihat
Deskriptor metrik untuk metrik yang ditentukan pengguna.
Pembuatan deskriptor metrik otomatis
Jika Anda menulis data metrik saat deskriptor metrik untuk metrik yang ditentukan pengguna tersebut belum ada, maka deskriptor metrik akan dibuat secara otomatis. Namun, deskriptor metrik baru ini mungkin tidak persis seperti yang Anda inginkan; pembuatan deskriptor metrik secara otomatis melibatkan beberapa asumsi dan default.
Cloud Monitoring membuat MetricDescriptor baru saat objek TimeSeries yang disertakan dalam panggilan ke timeSeries.create mereferensikan objek Metric yang menentukan nama jenis metrik yang tidak ada.
Cloud Monitoring menggunakan aturan berikut untuk mengisi
MetricDescriptor:
type: Jenis disalin dari objekMetrictype.name: Nama dibuat dari project ID dalam panggilan metode dan nilaitypedalam objekMetric.labels: Label yang muncul di objekMetric. Setiap deskriptor label dalam deskriptor metrik baru memiliki kolom berikut:key: kunci label dalam objekMetric.valueType:STRINGdescription: tidak ditetapkan
metricKind: Jenis metrik ditetapkan keGAUGEkecuali jika Anda menentukan parametermetricKinddari objekTimeSeries. Saat Anda menentukanmetricKind, metrik baru memiliki jenis tersebut. Anda hanya dapat menentukan jenisGAUGEdanCUMULATIVE.valueType: Jenis nilai diambil dari nilai yang diketik dariPointyang sedang ditulis. Jenis nilai harus berupaBOOL,INT64,DOUBLE, atauDISTRIBUTION. Saat Anda menentukan jenis nilai di kolomvalueTypedariTimeSeries, jenis tersebut harus cocok dengan jenisPoint.unit: tidak ditetapkandescription:"Auto created custom metric.".displayName: tidak ditetapkan
Dalam satu panggilan timeSeries.create, Anda dapat menyertakan beberapa objek TimeSeries yang merujuk ke jenis metrik yang sama dan tidak ada. Dalam hal ini,
label dalam deskriptor metrik baru terdiri dari gabungan semua label
dalam objek Metric di semua deret waktu dalam panggilan ini ke
create.
Langkah berikutnya: Lihat Menulis metrik yang ditentukan pengguna.
Pembuatan deskriptor metrik secara manual
Untuk membuat deskriptor metrik, lakukan hal berikut:
Tentukan struktur deskriptor metrik Anda. Untuk mendapatkan bantuan dalam membuat pilihan ini, Anda dapat menjelajahi metrik bawaan dan melihat data deret waktu:
Pilih nama metrik untuk metrik yang ditentukan pengguna.
Pilih nama tampilan dan deskripsi untuk metrik Anda. Nama tampilan digunakan di konsol Google Cloud .
Pilih satu atau beberapa project tempat Anda akan menentukan metrik yang ditentukan pengguna dan menulis data deret waktunya. Saat Anda memerlukan metrik yang sama di beberapa project, buat definisi metrik yang identik di setiap project.
Tentukan jenis, jenis nilai, dan (opsional) satuan metrik. Tidak semua jenis nilai dan jenis metrik didukung untuk metrik yang ditentukan pengguna. Untuk mengetahui informasi selengkapnya tentang kolom ini, lihat Jenis nilai dan jenis metrik.
Pilih label metrik—nama, jenis nilai, dan deskripsinya.
Menentukan resource yang dipantau yang digunakan untuk menulis data metrik. Pilih dari daftar berikut:
aws_ec2_instance: Instance Amazon EC2.dataflow_job: Tugas Dataflow.gae_instance: Instance App Engine.gce_instance: Instance Compute Engine.generic_node: Node komputasi yang ditentukan pengguna.generic_task: Tugas yang ditentukan pengguna.gke_container: Instance container GKE.global: Gunakan resource ini jika tidak ada jenis resource lain yang sesuai. Untuk sebagian besar kasus penggunaan,generic_nodeataugeneric_taskadalah pilihan yang lebih baik daripadaglobal.k8s_cluster: Cluster Kubernetes.k8s_container: Container Kubernetes.k8s_node: Node Kubernetes.k8s_pod: Pod Kubernetes.
Buat objek
MetricDescriptor, lalu teruskan sebagai argumen ke panggilan ke metodemetricDescriptors.create.
Biasanya, memanggil
metricDescriptors.create menggunakan nama
jenis yang sama dengan deskriptor metrik yang ada merupakan error. Namun, jika semua kolom objek
MetricDescriptor baru cocok dengan kolom deskriptor
yang ada, maka itu bukan error, tetapi tidak akan berpengaruh.
Dalam contoh berikut, Anda membuat metrik pengukur.
Protokol
Untuk membuat deskriptor metrik, gunakan metode
metricDescriptors.create.
Anda dapat menjalankan metode ini menggunakan widget APIs Explorer di halaman referensi metode. Lihat APIs Explorer untuk
informasi selengkapnya.
Berikut adalah contoh parameter untuk
metricDescriptors.create:
- name (URL): 
projects/[PROJECT_ID] Isi permintaan: berikan objek
MetricDescriptorseperti berikut:{ "name": "", "description": "Daily sales records from all branch stores.", "displayName": "Sales", "type": "custom.googleapis.com/stores/sales", "metricKind": "GAUGE", "valueType": "DOUBLE", "unit": "{USD}", "labels": [ { "key": "store_id", "valueType": "STRING", "description": "The ID of the store." }, ], }
Berikan nilai ini ke kolom di widget, menggunakan ID project Anda
sebagai pengganti [PROJECT_ID]:
 
Klik tombol Execute untuk menjalankan metode.
Saat membuat metrik baru, kolom name di
MetricDescriptor diabaikan dan dapat dihilangkan. Metode create menampilkan deskriptor metrik baru dengan kolom name yang diisi, yang dalam contoh ini adalah sebagai berikut:
"name": "projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_sales"
Misalnya, jika Anda ingin mendapatkan deskriptor metrik, Anda menggunakan nama ini.
C#
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat Memecahkan masalah panggilan API jika Anda mengalami kesulitan.
Langkah berikutnya: Lihat Menulis metrik yang ditentukan pengguna.
Menulis metrik buatan pengguna
Anda hanya dapat menulis data ke jenis metrik untuk metrik yang ditentukan pengguna. Untuk menulis data Anda,
gunakan metode timeSeries.create.
Jika deret waktu ada, metode ini akan menambahkan titik data baru ke deret waktu yang ada. Jika deret waktu tidak ada, metode ini akan membuatnya dan menambahkan data.
Anda menulis titik data dengan meneruskan daftar objek TimeSeries ke
timeSeries.create.
Ukuran daftar maksimum adalah 200
dan setiap objek dalam daftar harus menentukan deret waktu yang berbeda:
- Nilai kolom 
metricdanresourcemengidentifikasi objekTimeSeriestertentu. Kolom ini merepresentasikan jenis metrik data dan resource yang dipantau dari mana data dikumpulkan. - Hilangkan kolom 
metricKinddanvalueType; kolom tersebut diabaikan saat menulis titik data. Setiap objek
TimeSerieshanya boleh berisi satu objekPoint:- Nilai dan interval waktu titik harus konsisten dengan definisi jenis metrik.  Untuk mengetahui informasi tentang interval waktu untuk berbagai
jenis metrik, lihat 
TimeInterval. - Interval waktu titik harus lebih lambat daripada titik mana pun yang sudah ada dalam deret waktu.
 - Waktu berakhir interval tidak boleh lebih dari 25 jam yang lalu atau lebih dari lima menit ke depan.
 
- Nilai dan interval waktu titik harus konsisten dengan definisi jenis metrik.  Untuk mengetahui informasi tentang interval waktu untuk berbagai
jenis metrik, lihat 
 Untuk menulis lebih dari satu titik ke deret waktu yang sama, gunakan panggilan terpisah ke metode
timeSeries.createuntuk setiap titik. Jangan menulis data ke deret waktu tunggal lebih cepat dari satu titik setiap 5 detik. Saat Anda menambahkan titik data ke deret waktu yang berbeda, tidak ada batasan kecepatan.
Protokol
Untuk menulis data metrik, gunakan metode timeSeries.create.
Anda dapat menjalankan metode ini menggunakan widget APIs Explorer di halaman referensi metode. Lihat APIs Explorer
untuk mengetahui informasi selengkapnya.
Untuk menulis titik ke metrik stores/daily_sales yang dibuat di
Pembuatan deskriptor metrik secara manual:
- Buka halaman referensi untuk 
timeSeries.create. - Berikan parameter di bawah ke widget API Explorer.
 - Klik tombol Execute.
 
Gunakan parameter contoh berikut:
- name: 
projects/[PROJECT_ID] isi permintaan: sertakan daftar objek
TimeSeries. Contoh berikut hanya memiliki satu deret waktu dalam daftar.{ "timeSeries": [ { "metric": { "type": "custom.googleapis.com/my_metric", "labels": { "my_label": "my_value" } }, "resource": { "type": "gce_instance", "labels": { "project_id": "[PROJECT_ID]", "instance_id": "1234567890123456789", "zone": "us-central1-f" } }, "points": [ { "interval": { "endTime": "2018-06-01T10:00:00-04:00" }, "value": { "doubleValue": 123.45 } } ] } ] }
C#
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat Memecahkan masalah panggilan API jika Anda mengalami kesulitan.
Menghapus metrik buatan pengguna
Untuk menghapus metrik yang ditentukan pengguna, hapus deskripsi metriknya. Anda tidak dapat menghapus data deret waktu yang disimpan di project Google Cloud ; namun, menghapus deskriptor metrik akan membuat data tidak dapat diakses. Data akan berakhir masa berlakunya dan dihapus sesuai dengan kebijakan retensi data.
Anda tidak dapat menghapus deskriptor metrik untuk metrik bawaan.
Untuk menghapus deskriptor metrik, panggil metode
metricDescriptors.delete.
Protokol
Untuk menghapus deskriptor metrik, gunakan metode
metricDescriptors.delete.
Anda dapat menjalankan metode ini menggunakan widget APIs Explorer di halaman referensi metode. Lihat APIs Explorer
untuk mengetahui informasi selengkapnya.
Untuk menghapus metrik stores/daily_sales yang dibuat di
Pembuatan deskriptor metrik secara manual:
- Buka
halaman referensi untuk 
metricDescriptors.delete: Berikan nama deskriptor metrik ke widget APIs Explorer:
name:
projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_salesKlik tombol Execute.
C#
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk melakukan autentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat Memecahkan masalah panggilan API jika Anda mengalami kesulitan.
Mengubah metrik yang ditentukan pengguna
Untuk mengubah metrik buatan pengguna, Anda harus memperbarui objek
MetricDescriptor yang menentukan metrik.
Satu-satunya modifikasi yang didukung adalah menambahkan label.
Untuk menambahkan label ke metrik yang ditentukan pengguna yang sudah ada, gunakan metode
timeSeries.create dan sertakan label
baru dengan data deret waktu. Label ditambahkan ke deskriptor metrik
saat label yang Anda coba tulis valid dan jumlah total
label kurang dari 30.
Data deret waktu kemudian ditulis seolah-olah label sudah ada sejak awal.
Jika Anda ingin melakukan lebih dari sekadar menambahkan label baru, Anda harus menghapus dan membuat ulang deskriptor metrik. Dalam hal ini, Anda akan kehilangan semua data deret waktu yang sebelumnya dikumpulkan untuk deskriptor metrik lama. Lihat Menghapus metrik yang ditentukan pengguna untuk mengetahui informasi selengkapnya.
Anda tidak dapat mengganti nama metrik.