Dokumen ini menjelaskan cara menggunakan Google Cloud CLI atau Cloud Monitoring API untuk mengonfigurasi cakupan metrik project Google Cloud . Halaman ini ditujukan untuk developer dan administrator sistem.
Cakupan metrik dan aplikasi App Hub
Anda mengelola cakupan metrik untuk project host App Hub. Anda dapat mengelola cakupan ini dengan menggunakan konsolGoogle Cloud atau Cloud Monitoring API.
Google Cloud mengelola cakupan metrik untuk folder yang mengaktifkan aplikasi, kecuali jika menambahkan project ke cakupan metrik gagal karena kuota cakupan metrik sudah habis. Dalam hal ini, Anda dapat meminta peningkatan kuota, lalu menambahkan project secara manual ke cakupan metrik project pengelolaan untuk folder yang mengaktifkan aplikasi. Untuk mempelajari lebih lanjut, lihat Cakupan metrik untuk folder yang mengaktifkan aplikasi.
Sebelum memulai
Jika Anda tidak memahami istilah cakupan metrik dan cakupan project, lihat Cakupan metrik.
Pastikan peran Identity and Access Management (IAM) Anda di project cakupan dan di setiap project yang ingin Anda tambahkan sebagai project yang dipantau menyertakan semua izin dalam peran Monitoring Admin (
roles/monitoring.admin
). Untuk mengetahui informasi selengkapnya, lihat Konfigurasi cakupan metrik.Metode cakupan metrik Cloud Monitoring API yang mengambil informasi bersifat sinkron; tetapi, API yang mengubah status bersifat asinkron. Perintah Google Cloud CLI akan diblokir hingga operasi asinkron selesai. Untuk informasi tentang cara menentukan saat metode API asinkron selesai dan cara menentukan statusnya, lihat Metode API asinkron.
Jika Anda berencana memanggil Cloud Monitoring API menggunakan
curl
atau jika Anda ingin menggunakan contoh di halaman ini, selesaikan langkah-langkah penyiapan perintahcurl
.
Menambahkan project ke cakupan metrik
gcloud
Untuk menambahkan project Google Cloud ke cakupan metrik, jalankan perintah gcloud beta monitoring metrics-scopes create
:
gcloud beta monitoring metrics-scopes create MONITORED_PROJECT_ID_OR_NUMBER --project=SCOPING_PROJECT_ID_OR_NUMBER
Sebelum menjalankan perintah sebelumnya, lakukan hal berikut:
Masukkan nama atau ID project Google Cloud yang cakupan metrikanya akan diubah menjadi variabel SCOPING_PROJECT_ID_OR_NUMBER. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder yang mengaktifkan aplikasi.
Masukkan ID project yang dipantau ke dalam variabel MONITORED_PROJECT_ID_OR_NUMBER. Formatnya adalah
projects/PROJECT_ID_OR_NUMBER
.
Misalnya, perintah berikut menambahkan project my-monitored-project
ke cakupan metrik project bernama my-staging-projects
:
gcloud beta monitoring metrics-scopes create projects/my-monitored-project --project=my-staging-projects
Respons terhadap perintah sebelumnya memberikan konfirmasi bahwa perintah berhasil diselesaikan:
Created monitored project [locations/global/metricsScopes/my-staging-projects/projects/my-monitored-project].
curl
Untuk menambahkan project Google Cloud ke cakupan metrik,
kirim permintaan POST
ke
endpoint locations.global.metricsScopes.projects.create
:
curl -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type: application/json" -X POST \ -d "{'name': 'locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}/projects/${MONITORED_PROJECT_ID_OR_NUMBER}'}" \ https://monitoring.googleapis.com/v1/locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}/projects
Dalam contoh sebelumnya, variabel lingkungan ditentukan sebagai berikut:
MONITORED_PROJECT_ID_OR_NUMBER
menyimpan ID project yang akan ditambahkan ke cakupan metrik.SCOPING_PROJECT_ID_OR_NUMBER
menyimpan ID project yang cakupan metrikanya sedang diperbarui.
Respons metode asinkron ini adalah
objek Operation
.
Aplikasi yang memanggil metode ini harus melakukan polling pada endpoint operation.get
hingga nilai kolom Operation.done
adalah true
.
Jika kolom Operation.done
ditetapkan ke false
, hal ini menunjukkan bahwa operasi
sedang berlangsung. Untuk informasi selengkapnya, lihat
Perintah API asinkron.
Berikut adalah contoh respons saat menambahkan project yang dipantau berhasil:
{ "name": "operations/6915efde-1915-400a-ad49-7b62041d9bd2", "metadata": { "@type": "type.googleapis.com/google.monitoring.metricsscope.v1.OperationMetadata", "state": "DONE", ... }, "done": true, "response": { "@type": "type.googleapis.com/google.monitoring.metricsscope.v1.MonitoredProject", "name": "locations/global/metricsScopes/012012012012/projects/678678678678", "provider": "GCP", "providerAccountId": "...", ... } }
Dalam respons sebelumnya, kolom Operation.done
ditetapkan ke true
. Nilai
ini menunjukkan bahwa perintah telah selesai. Karena perintah berhasil diselesaikan, kolom Operation.response
ditetapkan dan nilainya adalah objek MonitoredProject
.
Kolom response.name
menyertakan ID project cakupan dan project yang dipantau. Kolom providerAccountId
mencantumkan nama project yang dipantau.
Memanggil metode ini akan menghasilkan entri dalam log audit project cakupan. Konsol Google Cloud tidak memanggil metode API ini. Oleh karena itu, modifikasi yang dilakukan pada cakupan metrik saat menggunakan konsolGoogle Cloud tidak dicatat dalam log audit.
Menghapus project dari cakupan metrik
gcloud
Untuk menghapus project Google Cloud ,
dari cakupan metrik, jalankan perintah
gcloud beta monitoring metrics-scopes delete
:
gcloud beta monitoring metrics-scopes delete MONITORED_PROJECT_ID_OR_NUMBER --project=SCOPING_PROJECT_ID_OR_NUMBER
Sebelum menjalankan perintah sebelumnya, lakukan hal berikut:
Masukkan nama atau ID project Google Cloud yang cakupan metrikanya akan diubah menjadi variabel SCOPING_PROJECT_ID_OR_NUMBER. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder yang mengaktifkan aplikasi.
Masukkan ID project yang dipantau ke dalam variabel MONITORED_PROJECT_ID_OR_NUMBER. Formatnya adalah
projects/PROJECT_ID_OR_NUMBER
.
Misalnya, perintah berikut menghapus project my-monitored-project
dari cakupan metrik project bernama my-staging-projects
:
gcloud beta monitoring metrics-scopes delete projects/my-monitored-project --project=my-staging-projects
Respons terhadap perintah sebelumnya memberikan konfirmasi bahwa perintah berhasil diselesaikan:
Deleted monitored project [locations/global/metricsScopes/my-staging-projects/projects/my-monitored-project].
Error berikut dilaporkan saat project cakupan tidak memantau project yang ditentukan oleh variabel MONITORED_PROJECT_ID_OR_NUMBER:
NOT_FOUND: Requested entity was not found.
curl
Untuk menghapus project Google Cloud dari cakupan metrik,
kirim permintaan DELETE
ke
endpoint locations.global.metricsScopes.projects.delete
:
curl -H "Authorization: Bearer ${TOKEN}" -X DELETE \ https://monitoring.googleapis.com/v1/locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}/projects/${MONITORED_PROJECT_ID_OR_NUMBER}
Dalam contoh sebelumnya, variabel lingkungan ditentukan sebagai berikut:
MONITORED_PROJECT_ID_OR_NUMBER
menyimpan project ID yang akan dihapus dari cakupan metrik.SCOPING_PROJECT_ID_OR_NUMBER
menyimpan ID project yang cakupan metrikanya sedang diperbarui.
Respons terhadap metode asinkron ini adalah
objek Operation
.
Aplikasi yang memanggil metode ini harus melakukan polling pada endpoint operation.get
hingga nilai kolom Operation.done
adalah true
.
Jika kolom Operation.done
ditetapkan ke false
, hal ini menunjukkan bahwa operasi
sedang berlangsung. Untuk informasi selengkapnya, lihat
Perintah API asinkron.
Berikut adalah contoh respons saat penghapusan project yang dipantau berhasil:
{ "name": "operations/4367ff34-0ff0-4767-b8d3-0638e30f077c", "metadata": { "@type": "type.googleapis.com/google.monitoring.metricsscope.v1.OperationMetadata", "state": "DONE", ... }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Dalam respons sebelumnya, kolom Operation.done
ditetapkan ke true
. Nilai
ini menunjukkan bahwa perintah telah selesai. Karena perintah berhasil
selesai, kolom Operation.response
ditetapkan dan berisi
kolom @type
.
Memanggil metode ini akan menghasilkan entri dalam log audit project cakupan. Konsol Google Cloud tidak memanggil metode API ini. Oleh karena itu, modifikasi yang dilakukan pada cakupan metrik saat menggunakan konsolGoogle Cloud tidak dicatat dalam log audit.
Mencantumkan semua cakupan metrik yang menyertakan project
Jika ingin mengetahui resource mana yang dapat melihat data yang disimpan oleh projectGoogle Cloud , Anda dapat mencantumkan semua cakupan metrik yang menyertakan project, lalu menemukan detail tentang cakupan tersebut. Bagian ini memberikan informasi tentang cara mencantumkan cakupan metrik yang menyertakan project Google Cloud tertentu.
gcloud
Untuk mendapatkan daftar cakupan metrik yang dapat melihat metrik untuk projectGoogle Cloud , jalankan perintah gcloud beta monitoring metrics-scopes list
:
gcloud beta monitoring metrics-scopes list MONITORED_PROJECT_ID_OR_NUMBER
Sebelum menjalankan perintah, masukkan ID project yang dipantau ke dalam variabel MONITORED_PROJECT_ID_OR_NUMBER. Formatnya adalah projects/PROJECT_ID_OR_NUMBER
.
Misalnya, untuk mencantumkan cakupan metrik yang menyertakan project
my-project
, jalankan perintah berikut:
gcloud beta monitoring metrics-scopes list projects/my-project
Respons berikut menunjukkan bahwa project my-project
disertakan dalam dua cakupan metrik:
metricsScopes:
- createTime: '2018-08-06T17:13:42Z'
name: locations/global/metricsScopes/012345012345
updateTime: '2018-08-18T16:20:37.032928Z'
- createTime: '2021-04-13T15:37:26.869Z'
name: locations/global/metricsScopes/9876543210
updateTime: '2021-04-13T15:37:27.284239Z'
Untuk mendapatkan informasi mendetail tentang cakupan metrik, jalankan perintah gcloud beta monitoring metrics-scopes describe
.
curl
Untuk mendapatkan daftar cakupan metrik yang dapat melihat metrik untuk suatu project,
kirim permintaan GET
ke endpoint
locations.global.metricsScopes.listMetricsScopesByMonitoredProject
dan sertakan parameter kueri yang menentukan project.
curl -H "Authorization: Bearer ${TOKEN}" \ https://monitoring.googleapis.com/v1/locations/global/metricsScopes:listMetricsScopesByMonitoredProject?monitored_resource_container=projects/${PROJECT_ID_OR_NUMBER}
Pada contoh sebelumnya, variabel lingkungan PROJECT_ID_OR_NUMBER
menyimpan ID project yang penyertaannya dalam cakupan metrik
sedang dikueri.
Jika berhasil, responsnya adalah array objek
MetricsScope
.
Metode ini tidak menghasilkan entri yang ditulis ke log audit project cakupan. Agar tindakan ini dicatat dalam log audit, aktifkan Pembacaan Data untuk Cloud Resource Manager API. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi log audit Akses Data.
Mendapatkan detail tentang cakupan metrik
Bagian ini menunjukkan cara menemukan detail tentang cakupan metrik tertentu.
gcloud
Untuk mendapatkan informasi mendetail tentang cakupan metrik, jalankan perintah gcloud beta monitoring metrics-scopes describe
:
gcloud beta monitoring metrics-scopes describe METRICS_SCOPE_ID
Sebelum menjalankan perintah, masukkan nama nama yang sepenuhnya memenuhi syarat dari cakupan metrik ke dalam variabel METRICS_SCOPE_ID. Berikut adalah contoh nama yang sepenuhnya memenuhi syarat:
locations/global/metricsScopes/012345012345
Berikut adalah contoh respons. Dalam contoh ini, cakupan metrik berisi satu project, dan ID cakupan metrik dan project sama:
createTime: '2018-08-06T17:13:42Z'
monitoredProjects:
- createTime: '2018-08-06T17:13:42Z'
name: locations/global/metricsScopes/012345012345/projects/012345012345
name: locations/global/metricsScopes/012345012345
updateTime: '2018-08-18T16:20:37.032928Z'
Untuk mengidentifikasi project Google Cloud dari ID-nya, jalankan perintah gcloud projects list
dan filter menurut project ID. Misalnya, untuk
mendapatkan nama project 012345012345
, jalankan perintah berikut:
gcloud projects list --filter="012345012345" --format="value(NAME)"
curl
Untuk mendapatkan informasi tentang cakupan metrik,
kirim permintaan GET
ke
endpoint locations.global.metricsScopes.get
:
curl -H "Authorization: Bearer ${TOKEN}" \ https://monitoring.googleapis.com/v1/locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}
Pada contoh sebelumnya, variabel lingkungan SCOPING_PROJECT_ID_OR_NUMBER
menyimpan ID project yang cakupan metrikanya sedang dikueri.
Jika berhasil, responsnya adalah objek MetricsScope
.
Metode ini tidak menghasilkan entri yang ditulis ke log audit project cakupan. Agar tindakan ini dicatat dalam log audit, aktifkan Pembacaan Data untuk Cloud Resource Manager API. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi log audit Akses Data.
Metode API asinkron
Semua metode cakupan metrik Cloud Monitoring API yang mengubah status sistem, misalnya, perintah untuk menambahkan project yang dipantau ke cakupan metrik, bersifat asinkron.
Untuk perintah ini, respons perintah adalah
objek Operation
.
Aplikasi yang memanggil metode API asinkron harus melakukan polling
endpoint operation.get
hingga nilai
kolom Operation.done
adalah true
:
Jika
done
adalahfalse
, operasi sedang berlangsung.Untuk memuat ulang informasi status, kirim permintaan
GET
ke endpointoperation.get
:curl -H "Authorization: Bearer ${TOKEN}" \ https://monitoring.googleapis.com/v1/${OPERATION_NAME}
Pada perintah sebelumnya,
OPERATION_NAME
adalah variabel lingkungan yang menyimpan nilai kolomOperation.name
.Jika
done
adalahtrue
, operasi akan selesai dan kolomerror
atauresponse
ditetapkan:error
: Jika ditetapkan, operasi asinkron akan gagal. Nilai kolom ini adalah objekStatus
yang berisi kode error gRPC dan pesan error.response
: Jika ditetapkan, operasi asinkron berhasil diselesaikan, dan nilainya mencerminkan hasilnya.
Penyiapan perintah curl
Bagian ini menjelaskan penyiapan yang digunakan untuk membuat perintah curl dalam dokumen
ini. Setiap perintah curl
di halaman ini menyertakan kumpulan argumen yang diikuti dengan URL resource API:
curl -H "Authorization: Bearer ${TOKEN}" <other_args> \
https://monitoring.googleapis.com/v1/locations/global/metricsScopes/<resource>
Tetapkan variabel lingkungan ini untuk menyederhanakan pembuatan perintah curl
:
Buat variabel lingkungan untuk menyimpan ID atau nomor project cakupan. Jika Anda menggunakan App Hub, tetapkan variabel ini ke ID project host App Hub atau ke ID project pengelolaan folder yang mengaktifkan aplikasi Anda:
SCOPING_PROJECT_ID_OR_NUMBER=SCOPING_PROJECT_ID_OR_NUMBER
Opsional. Jika Anda berencana menambahkan atau menghapus project yang dipantau, konfigurasikan variabel lingkungan dengan project ID atau nomor project yang dipantau:
MONITORED_PROJECT_ID_OR_NUMBER=MONITORED_PROJECT_ID_OR_NUMBER
Lakukan autentikasi ke Google Cloud CLI:
gcloud auth login
Opsional. Agar tidak perlu menentukan project ID dengan setiap perintah
gcloud
, tetapkan project ID sebagai default menggunakan gcloud CLI:gcloud config set project ${SCOPING_PROJECT_ID_OR_NUMBER}
Buat token otorisasi dan ambil dalam variabel lingkungan:
TOKEN=`gcloud auth print-access-token`
Token berlaku untuk waktu terbatas. Jika perintah yang berfungsi tiba-tiba melaporkan bahwa Anda tidak diautentikasi, terbitkan ulang perintah ini.
Untuk memverifikasi bahwa Anda mendapatkan token akses, tampilkan variabel
TOKEN
:echo ${TOKEN} ya29.GluiBj8o....
Anda mungkin juga harus menentukan argumen lain, misalnya, untuk menentukan
jenis permintaan HTTP (misalnya, -X DELETE
). Permintaan default
adalah GET
, sehingga contoh tidak menentukannya.
Langkah berikutnya
Untuk informasi tentang cara menggunakan Google Cloud dengan Terraform, lihat referensi berikut: