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 yang digunakan metrik Cloud Monitoring bawaan:
- Sekumpulan titik data.
- Informasi jenis metrik, yang menunjukkan apa yang diwakili oleh titik data.
- Informasi resource yang dipantau, yang memberi tahu Anda tempat asal titik data.
Metrik yang ditentukan 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.
Untuk melengkapi aplikasi Anda, sebaiknya gunakan framework instrumentasi netral vendor yang merupakan open source, seperti OpenTelemetry, bukan API atau library klien khusus vendor dan produk. Untuk mengetahui informasi tentang instrumentasi aplikasi, 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 yang diaktifkan. Jika diperlukan, lakukan tindakan berikut:
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure 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 Anda. Biasanya, Anda mengonfigurasi autentikasi dengan membuat akun layanan untuk project dan mengonfigurasi variabel lingkungan.
Untuk aplikasi yang Anda jalankan pada instance Amazon Elastic Compute Cloud (Amazon EC2), buat akun layanan untuk project AWS Connector instance.
Untuk informasi tentang cara membuat akun layanan, lihat Mulai menggunakan autentikasi.
Membuat jenis metrik yang ditentukan pengguna
Untuk membuat metrik yang ditentukan pengguna, tentukan objek MetricDescriptor
yang menentukan berbagai informasi tentang metrik, atau tulis data metrik. Saat Anda menulis data metrik, Monitoring akan membuat deskripsi metrik berdasarkan struktur data yang Anda berikan.
Untuk informasi tentang mendesain deskriptor metrik, lihat
Deskripsi metrik untuk metrik yang ditentukan pengguna.
Pembuatan deskripsi metrik secara otomatis
Jika Anda menulis data metrik saat deskripsi metrik untuk metrik yang ditentukan pengguna tersebut belum ada, deskriptor metrik akan dibuat secara otomatis. Namun, deskripsi metrik baru ini mungkin tidak sama persis dengan yang Anda inginkan; pembuatan deskripsi 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 ini disalin dari kolomtype
objekMetric
.name
: Nama dibuat dari project ID dalam panggilan metode dan nilaitype
di objekMetric
.labels
: Label yang muncul di objekMetric
. Setiap deskripsi label dalam deskripsi metrik baru memiliki kolom berikut:key
: kunci label di objekMetric
.valueType
:STRING
description
: belum ditetapkan
metricKind
: Jenis metrik ditetapkan keGAUGE
kecuali jika Anda menentukan parametermetricKind
dari objekTimeSeries
. Saat Anda menentukanmetricKind
, metrik baru akan memiliki jenis tersebut. Anda hanya dapat menentukan jenisGAUGE
danCUMULATIVE
.valueType
: Jenis nilai diambil dari nilai yang diketik dariPoint
yang ditulis. Jenis nilai harus berupaBOOL
,INT64
,DOUBLE
, atauDISTRIBUTION
. Saat Anda menentukan jenis nilai di kolomvalueType
padaTimeSeries
, jenis tersebut harus cocok dengan jenisPoint
.unit
: belum ditetapkandescription
:"Auto created custom metric."
.displayName
: belum ditetapkan
Dalam satu panggilan timeSeries.create
, Anda dapat menyertakan beberapa objek TimeSeries
yang merujuk pada jenis metrik yang tidak ada dan sama. Dalam hal ini,
label dalam deskripsi metrik baru terdiri dari gabungan semua label
dalam objek Metric
di semua deret waktu dalam panggilan ke
create
ini.
Langkah berikutnya: Baca Menulis metrik yang ditentukan pengguna.
Pembuatan deskripsi metrik secara manual
Untuk membuat deskripsi metrik, lakukan tindakan berikut:
Tentukan struktur deskriptor metrik Anda. Untuk mendapatkan bantuan dalam membuat pilihan ini, Anda dapat menjelajahi metrik bawaan dan melihat data deret waktunya:
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 untuk menentukan metrik yang ditentukan pengguna dan menulis data deret waktunya. Jika Anda membutuhkan metrik yang sama di beberapa project, buat definisi metrik yang identik di setiap project.
Untuk menulis metrik yang ditentukan pengguna dari resource yang dikelola oleh akun AWS, buat deskripsi metrik di project konektor AWS untuk akun tersebut.
Tentukan jenis, jenis nilai, dan satuan (opsional) 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 dimonitor 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 saat tidak ada jenis resource lain yang cocok. Untuk sebagian besar kasus penggunaan,generic_node
ataugeneric_task
adalah 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, akan terjadi error saat memanggil
metricDescriptors.create
menggunakan nama jenis
yang sama dengan deskriptor metrik yang ada. Namun, jika semua kolom objek
MetricDescriptor
baru sama persis dengan kolom
deskripsi yang ada, maka itu bukan error, tetapi tidak berpengaruh.
Pada contoh berikut, Anda membuat metrik meteran.
Protokol
Untuk membuat deskripsi metrik, gunakan metode metricDescriptors.create
.
Anda dapat menjalankan metode ini menggunakan widget APIs Explorer di halaman referensi metode. Lihat Penjelajah API untuk mengetahui informasi
selengkapnya.
Berikut adalah contoh parameter untuk
metricDescriptors.create
:
- name (URL):
projects/[PROJECT_ID]
Request body: sediakan objek
MetricDescriptor
seperti 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
akan diabaikan dan dapat dihilangkan. Metode create
menampilkan deskripsi metrik baru dengan kolom name
yang terisi, 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, gunakan nama ini.
C#
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat Memecahkan masalah panggilan API jika Anda mengalami kesulitan.
Langkah berikutnya: Baca Menulis metrik yang ditentukan pengguna.
Menulis metrik yang ditentukan pengguna
Anda hanya dapat menulis data ke jenis metrik untuk metrik yang ditentukan pengguna. Untuk menulis data, 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
metric
danresource
mengidentifikasi objekTimeSeries
tertentu. Kolom ini mewakili jenis metrik data dan resource yang dimonitor tempat data dikumpulkan. - Hapus kolom
metricKind
danvalueType
; kolom tersebut akan diabaikan saat menulis titik data. Setiap objek
TimeSeries
hanya boleh berisi satu objekPoint
:- Nilai titik dan interval waktu harus konsisten dengan definisi jenis metrik. Untuk mengetahui informasi tentang interval waktu bagi
jenis metrik yang berbeda, lihat
TimeInterval
. - Interval waktu titik harus lebih lambat dari 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 yang lalu.
- Nilai titik dan interval waktu harus konsisten dengan definisi jenis metrik. Untuk mengetahui informasi tentang interval waktu bagi
jenis metrik yang berbeda, lihat
Untuk menulis lebih dari satu titik ke deret waktu yang sama, gunakan panggilan terpisah ke metode
timeSeries.create
untuk setiap titik. Jangan menulis data ke satu deret waktu lebih cepat dari satu poin setiap 5 detik. Saat Anda menambahkan titik data ke deret waktu yang berbeda, tidak ada pembatasan kapasitas.
Protokol
Untuk menulis data metrik, gunakan metode
timeSeries.create
.
Anda dapat menjalankan metode ini menggunakan widget APIs Explorer di halaman referensi metode. Lihat Penjelajah API untuk mengetahui informasi
selengkapnya.
Untuk menulis titik ke metrik stores/daily_sales
yang dibuat di
Pembuatan deskripsi metrik secara manual:
- Buka halaman referensi untuk
timeSeries.create
. - Sediakan parameter di bawah ini ke widget APIs Explorer.
- Klik tombol Execute.
Gunakan contoh parameter berikut:
- nama:
projects/[PROJECT_ID]
request body: menyertakan 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 mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat Memecahkan masalah panggilan API jika Anda mengalami kesulitan.
Menghapus metrik yang ditentukan pengguna
Untuk menghapus metrik yang ditentukan pengguna, hapus deskriptor metriknya. Anda tidak dapat menghapus data deret waktu yang disimpan di project Google Cloud; tetapi, menghapus deskriptor metrik akan membuat data tidak dapat diakses. Data akan berakhir masa berlakunya dan akan dihapus sesuai dengan kebijakan retensi data.
Anda tidak dapat menghapus deskripsi 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 Penjelajah API untuk mengetahui informasi
selengkapnya.
Untuk menghapus metrik stores/daily_sales
yang dibuat di
Pembuatan deskripsi metrik secara manual:
- Buka halaman referensi untuk
metricDescriptors.delete
: Berikan nama deskriptor metrik ke widget APIs Explorer:
nama:
projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_sales
Klik tombol Execute.
C#
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mengautentikasi ke Monitoring, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat Memecahkan masalah panggilan API jika Anda mengalami kesulitan.
Mengubah metrik yang ditentukan pengguna
Untuk mengubah metrik yang ditentukan pengguna, Anda harus memperbarui objek MetricDescriptor
yang menentukan metrik tersebut.
Satu-satunya perubahan yang didukung adalah menambahkan label.
Untuk menambahkan label ke metrik yang ditentukan pengguna yang ada, gunakan metode timeSeries.create
dan sertakan label baru dengan data deret waktu. Label ditambahkan ke deskriptif metrik jika label yang Anda coba tulis valid dan jumlah total label kurang dari 30.
Kemudian, data deret waktu ditulis seolah-olah label sudah ada sejak awal.
Jika ingin melakukan lebih dari sekadar menambahkan label baru, Anda harus menghapus dan membuat ulang deskriptor metrik. Dalam hal ini, Anda kehilangan semua data deret waktu yang sebelumnya dikumpulkan untuk deskriptor metrik lama. Lihat Menghapus metrik buatan pengguna untuk informasi selengkapnya.
Anda tidak dapat mengganti nama metrik.