Dokumen ini menjelaskan cara membaca data metrik, yang juga disebut data deret waktu, menggunakan metode timeSeries.list
di Monitoring API.
Ada beberapa cara untuk memanggil metode timeSeries.list
:
- Anda dapat menggunakan tab Protokol di halaman ini untuk menggunakan APIs Explorer berbasis formulir.
- Anda dapat menggunakan library klien khusus bahasa.
- Anda dapat menggunakan Metrics Explorer.
Cara lain untuk membaca data metrik adalah dengan mengirim perintah ke metode timeSeries.query
, yang memerlukan Monitoring Query Language (MQL). Dokumen ini tidak menjelaskan
MQL atau metode timeSeries.query
. Untuk mengetahui informasi tentang
topik tersebut, lihat
Mengambil data dengan timeSeries.query
.
Ringkasan
Setiap panggilan ke metode timeSeries.list
dapat menampilkan
sejumlah deret waktu dari satu jenis metrik. Misalnya, jika Anda menggunakan Compute Engine, jenis metrik compute.googleapis.com/instance/cpu/usage_time
akan memiliki deret waktu terpisah untuk setiap instance VM Anda.
Untuk pengantar metrik dan deret waktu,
lihat Metrik, deret waktu, dan resource.
Anda menentukan data deret waktu yang diinginkan dengan memberikan informasi berikut ke metode timeSeries.list
:
- Ekspresi filter yang menentukan jenis metrik. Secara opsional, filter memilih sebagian deret waktu metrik dengan menentukan resource yang menghasilkan deret waktu atau menentukan nilai untuk label tertentu dalam deret waktu.
- Interval waktu yang membatasi jumlah data yang ditampilkan.
- Secara opsional, spesifikasi cara menggabungkan beberapa deret waktu untuk menghasilkan ringkasan gabungan data. Untuk mengetahui informasi dan contoh selengkapnya, lihat Menggabungkan data.
Filter deret waktu
Anda menentukan deret waktu yang akan diambil dengan meneruskan
filter deret waktu ke
metode timeSeries.list
.
Berikut adalah daftar komponen filter umum:
Filter harus menentukan satu jenis metrik. Contoh:
metric.type = "compute.googleapis.com/instance/cpu/usage_time"
Untuk mengambil metrik yang ditentukan pengguna, ubah awalan metric.type di filter menjadi
custom.googleapis.com
atau awalan lain jika digunakan;external.googleapis.com
sering digunakan.Filter dapat menentukan nilai untuk label dimensi metrik. Jenis metrik menentukan label yang ada. Contoh:
(metric.label.instance_name = "your-instance-id" OR metric.label.instance_name = "your-other-instance-id")
Dalam ekspresi sebelumnya,
label
sudah benar meskipun objek metrik sebenarnya menggunakanlabels
sebagai kuncinya.Filter hanya dapat memilih deret waktu yang berisi jenis resource tertentu yang dipantau:
resource.type = "gce_instance"
Komponen filter dapat digabungkan menjadi satu filter deret waktu, seperti berikut:
metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND
(metric.label.instance_name = "your-instance-id" OR
metric.label.instance_name = "your-other-instance-id")
Jika Anda tidak menentukan nilai untuk semua label metrik, metode list
akan menampilkan deret waktu untuk setiap kombinasi nilai dalam label yang tidak ditentukan. Metode ini hanya menampilkan deret waktu yang memiliki data.
Interval waktu
Saat menggunakan API untuk membaca data, Anda menentukan interval waktu
yang ingin diambil datanya dengan menetapkan waktu mulai dan waktu berakhir.
API mengambil data dari interval (start, end]
, yaitu,
dari setelah waktu mulai hingga waktu berakhir.
Waktu mulai tidak boleh setelah waktu berakhir. Jika Anda menentukan waktu mulai yang lebih lambat dari waktu berakhir, API akan menampilkan error.
Jika Anda hanya ingin mengambil data dengan stempel waktu tertentu, tetapkan waktu mulai sama dengan waktu berakhir, atau setara, jangan tetapkan waktu mulai.
Format waktu
Waktu mulai dan waktu berakhir harus ditentukan sebagai string dalam format RFC 3339. Contoh:
2024-03-01T12:34:56+04:00 2024-03-01T12:34:56.992Z
Perintah date -Iseconds
di Linux berguna untuk membuat stempel waktu.
Operasi daftar dasar
Metode timeSeries.list
dapat digunakan untuk menampilkan data mentah yang sederhana, atau dapat digunakan untuk menampilkan data yang diproses secara intensif. Bagian ini mengilustrasikan cara mencantumkan deret waktu yang tersedia dan cara mendapatkan nilai dalam deret waktu tertentu.
Contoh: Mencantumkan deret waktu yang tersedia
Contoh ini menunjukkan cara hanya mencantumkan nama dan deskripsi deret waktu yang cocok dengan filter, bukan menampilkan semua data yang tersedia:
Protokol
Buka halaman referensi
timeSeries.list
.Di panel berlabel Coba metode ini, masukkan kode berikut:
-
name: Masukkan jalur ke project Anda.
projects/PROJECT_ID
-
filter: Tentukan jenis metrik.
metric.type = "compute.googleapis.com/instance/cpu/utilization"
- interval.endTime: Masukkan waktu berakhir.
- interval.startTime: Masukkan waktu mulai dan pastikan waktunya 20 menit lebih awal dari waktu berakhir.
Klik Tampilkan parameter standar, dan di kolom, masukkan hal berikut:
timeSeries.metric
-
name: Masukkan jalur ke project Anda.
Klik Jalankan.
Contoh output menunjukkan deret waktu untuk dua instance VM yang berbeda:
{
"timeSeries": [
{
"metric": {
"labels": {
"instance_name": "your-first-instance"
},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
},
{
"metric": {
"labels": {
"instance_name": "your-second-instance"
},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
}
]
}
Untuk melihat permintaan sebagai perintah curl
, sebagai
permintaan HTTP, atau dalam JavaScript, klik fullscreen Layar penuh
di API Explorer.
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.
Jika Anda mengalami kesulitan, lihat Memecahkan masalah Monitoring API.
Contoh: Mendapatkan data deret waktu
Contoh ini menampilkan pengukuran penggunaan CPU yang dicatat selama interval 20 menit untuk instance Compute Engine tertentu. Jumlah data yang ditampilkan bergantung pada frekuensi sampling metrik. Karena pemakaian CPU diambil sampelnya setiap menit, hasil kueri ini adalah sekitar 20 titik data. Jika beberapa titik data ditampilkan untuk deret waktu, API akan menampilkan titik data di setiap deret waktu dalam urutan waktu terbalik; tidak ada penggantian untuk pengurutan titik ini.
Protokol
Contoh protokol lebih lanjut membatasi output, untuk membuat data yang ditampilkan lebih mudah dikelola di kotak respons:
- Nilai filter membatasi deret waktu ke satu instance VM.
- Nilai fields hanya menentukan waktu dan nilai pengukuran.
Setelan ini membatasi jumlah data deret waktu yang ditampilkan dalam hasil.
Buka halaman referensi
timeSeries.list
.Di panel berlabel Coba metode ini, masukkan kode berikut:
-
name: Masukkan jalur ke project Anda.
projects/PROJECT_ID
filter: Tentukan jenis metrik.
metric.type = "compute.googleapis.com/instance/cpu/utilization" AND metric.label.instance_name = "INSTANCE_NAME"
interval.endTime: Masukkan waktu berakhir.
interval.startTime: Masukkan waktu mulai dan pastikan waktunya 20 menit lebih awal dari waktu berakhir.
Klik Tampilkan parameter standar, dan di kolom, masukkan hal berikut:
timeSeries.points.interval.endTime,timeSeries.points.value
-
name: Masukkan jalur ke project Anda.
Klik Jalankan.
Permintaan ini menampilkan hasil seperti berikut:
{
"timeSeries": [
{
"points": [
{
"interval": {
"endTime": "2024-03-01T00:19:01Z"
},
"value": {
"doubleValue": 0.06763074536575005
}
},
{
"interval": {
"endTime": "2024-03-01T00:18:01Z"
},
"value": {
"doubleValue": 0.06886174467702706
}
},
...
{
"interval": {
"endTime": "2024-03-01T00:17:01Z"
},
"value": {
"doubleValue": 0.06929610064253211
}
}
]
}
]
}
Untuk melihat permintaan sebagai perintah curl
, sebagai
permintaan HTTP, atau dalam JavaScript, klik fullscreen Layar penuh
di API Explorer.
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.
Jika Anda mengalami kesulitan, lihat Memecahkan masalah Monitoring API.
Menggabungkan data
Metode timeSeries.list
dapat melakukan agregasi dan pengurangan statistik pada data deret waktu yang ditampilkan. Bagian berikut menunjukkan dua contoh.
Untuk mempelajari lebih lanjut, lihat
Pemfilteran dan agregasi: memanipulasi deret waktu.
Contoh: Menyelaraskan deret waktu
Contoh ini mengurangi 20 pengukuran penggunaan individual dalam setiap deret waktu menjadi 2 pengukuran: penggunaan rata-rata untuk dua periode 10 menit dalam interval 20 menit. Data dari setiap deret waktu pertama-tama diselaraskan ke dalam periode 10 menit, lalu nilai dalam setiap periode 10 menit dirata-ratakan.
Operasi perataan memiliki dua keunggulan: operasi ini meratakan data, dan menyesuaikan data dari semua data deret waktu pada batas 10 menit yang tepat. Data yang telah disejajarkan kemudian dapat diproses lebih lanjut.
Protokol
Buka halaman referensi
timeSeries.list
.Di panel berlabel Coba metode ini, masukkan kode berikut:
-
name: Masukkan jalur ke project Anda.
projects/PROJECT_ID
-
aggregation.alignmentPeriod: Masukkan
600s
-
aggregation.perSeriesAligner: Pilih
ALIGN_MEAN
-
filter: Tentukan jenis metrik.
metric.type = "compute.googleapis.com/instance/cpu/utilization"
- interval.endTime: Masukkan waktu berakhir.
- interval.startTime: Masukkan waktu mulai dan pastikan waktunya 20 menit lebih awal dari waktu berakhir.
-
Klik Tampilkan parameter standar, dan di kolom, masukkan
hal berikut:
timeSeries.metric,timeSeries.points
-
name: Masukkan jalur ke project Anda.
Klik Jalankan.
Filter untuk satu instance yang ditampilkan dalam contoh sebelumnya dihapus: kueri ini menampilkan data yang jauh lebih sedikit, sehingga tidak perlu membatasinya ke satu instance VM.
Contoh hasil berikut memiliki deret waktu untuk setiap dari tiga instance VM. Setiap deret waktu memiliki dua titik data, yaitu penggunaan rata-rata untuk periode penyelarasan 10 menit:
{
"timeSeries": [
{
"metric": {
"labels": {"instance_name": "your-first-instance"},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.06688481346044381 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": {"doubleValue": 0.06786652821310177 }
}
]
},
{
"metric": {
"labels": { "instance_name": "your-second-instance" },
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.04144239874207415 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": { "doubleValue": 0.04045793689050091 }
}
]
},
{
"metric": {
"labels": { "instance_name": "your-third-instance" },
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.029650046587339607 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": { "doubleValue": 0.03053874224715402 }
}
]
}
]
}
Untuk melihat permintaan sebagai perintah curl
, sebagai
permintaan HTTP, atau dalam JavaScript, klik fullscreen Layar penuh
di API Explorer.
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.
Jika Anda mengalami kesulitan, lihat Memecahkan masalah Monitoring API.
Contoh: Mengurangi di seluruh deret waktu
Contoh ini memperluas contoh sebelumnya dengan menggabungkan deret waktu yang diselaraskan dari tiga instance VM menjadi satu deret waktu yang mengukur penggunaan rata-rata semua instance.
Protokol
Buka halaman referensi
timeSeries.list
.Di panel berlabel Coba metode ini, masukkan kode berikut:
-
name: Masukkan jalur ke project Anda.
projects/PROJECT_ID
-
aggregation.alignmentPeriod: Masukkan
600s
-
aggregation.perSeriesAligner: Pilih
ALIGN_MEAN
-
aggregation.crossSeriesReducer: Pilih
REDUCE_MEAN
-
filter: Tentukan jenis metrik.
metric.type = "compute.googleapis.com/instance/cpu/utilization"
- interval.endTime: Masukkan waktu berakhir.
- interval.startTime: Masukkan waktu mulai dan pastikan waktunya 20 menit lebih awal dari waktu berakhir.
-
Klik Tampilkan parameter standar, dan di kolom, masukkan
hal berikut:
timeSeries.metric,timeSeries.points
-
name: Masukkan jalur ke project Anda.
Klik Jalankan.
Contoh hasil berikut hanya memiliki satu deret waktu dan dua titik data. Setiap titik adalah rata-rata penggunaan di antara tiga instance VM selama jangka waktu:
{
"timeSeries": [
{
"metric": {
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": {
"doubleValue": 0.045992419596619184
}
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": {
"doubleValue": 0.04628773578358556
}
}
]
}
]
}
Untuk melihat permintaan sebagai perintah curl
, sebagai
permintaan HTTP, atau dalam JavaScript, klik fullscreen Layar penuh
di API Explorer.
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.
Jika Anda mengalami kesulitan, lihat Memecahkan masalah Monitoring API.
Langkah selanjutnya
- Pelajari Retensi dan latensi data metrik.
- Pelajari Pemfilteran dan agregasi: memanipulasi deret waktu.