Membuat dan membaca laporan
Pelajari cara membuat laporan App Optimize API tentang Google Cloud pengeluaran Anda, memantau pembuatan laporan, dan membaca data yang dihasilkan saat laporan siap untuk Anda. Dalam panduan memulai ini, Anda akan menggunakan REST API.
Sebelum memulai
-
Contoh dalam panduan ini memerlukan Google Cloud project dengan resource aktif resources untuk dianalisis. App Optimize API memerlukan data penagihan dan penggunaan untuk menghasilkan hasil yang bermakna; laporan yang dijalankan terhadap project baru atau kosong akan kosong.
Project ini dipilih oleh Anda dan diidentifikasi oleh PROJECT_ID. Untuk mempermudah, dalam panduan ini project Anda akan menghosting resource laporan dan menyediakan cakupan data.
App Optimize API mendukung pembuatan laporan dalam satu project yang menganalisis data dari project sumber yang berbeda atau dari aplikasi dalam project tunggal atau batas tingkat folder. Jika Anda membuat laporan di aplikasi App Hub, yang dapat terdiri dari beberapa project, Anda harus memiliki izin pemantauan dan penagihan yang diperlukan di semua project terkait aplikasi untuk membuat laporan.
-
Pastikan App Optimize API diaktifkan
untuk project yang akan Anda gunakan untuk membuat dan mengelola resource laporan. Dalam contoh di dokumentasi ini, ini adalah
project yang diidentifikasi oleh
PROJECT_ID. - Login keakun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat dan membaca laporan menggunakan panduan memulai ini, minta administrator untuk memberi Anda peran IAM berikut di project Anda dengan resource aktif:
-
Admin App Optimize (
roles/appoptimize.admin) -
Viewer (
roles/viewer) (atau peran lain yang memberikanbilling.resourceCosts.get)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi selengkapnya tentang izin dan peran yang diperlukan untuk App Optimize API, lihat Kontrol akses dengan IAM.
Membuat laporan
Contoh ini membuat laporan total pengeluaran dalam yang Anda pilih PROJECT_ID. Laporan ini menguraikan biaya berdasarkan setiap Google Cloud produk yang digunakan, seperti Compute Engine dan Cloud Storage, serta berdasarkan SKU dan lokasi tertentu. Laporan ini mencakup data tiga hari terakhir.
Untuk membuat resource laporan, kirim permintaan POST HTTP ke jalur resource projects.locations.reports REST API.
Ikuti langkah-langkah berikut untuk membuat laporan.
Gunakan perintah
curlberikut untuk mengirim permintaan:curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "scopes": [ { "project": "projects/PROJECT_ID" } ], "dimensions": [ "location", "product_display_name", "project", "sku" ], "metrics": [ "cost" ], "filter": "hour >= now - duration(\"72h\")" }' \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports?report_id=REPORT_ID"Ganti kode berikut:
PROJECT_ID: ID project Anda Google Cloud .REPORT_ID: ID unik untuk laporan baru Anda—misalnya,my-first-report
API menampilkan objek Operasi yang Berjalan Lama (LRO), yang mewakili proses pembuatan laporan. Berikut adalah contoh respons:
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": false }Status
"done": falsemenunjukkan bahwa laporan masih dibuat. PerhatikanOPERATION_IDkarena Anda akan menggunakannya pada langkah berikutnya.Karena pembuatan laporan dapat memerlukan waktu, Anda harus melakukan polling LRO hingga menunjukkan bahwa proses pembuatan telah selesai dan data laporan siap didownload.
Untuk memeriksa status proses pembuatan, kirim permintaan
GETHTTP ke nama resource operasi:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"Periksa responsnya. Jika
"done"adalahfalse, tunggu 5 hingga 15 detik, lalu ulangi langkah ini. Jika"done"adalahtrue, laporan sudah siap.Berikut adalah contoh respons saat operasi selesai:
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.Report", "name": "projects/PROJECT_ID/locations/global/reports/REPORT_ID", "scopes": [ { "project": "projects/PROJECT_ID" } ], "dimensions": [ "location", "product_display_name", "project", "sku" ], "metrics": [ "cost" ], "filter": "hour >= now - duration(\"72h\")", "expireTime": "2026-02-04T22:05:05Z" } }
Membaca data laporan
Untuk mengambil data laporan, gunakan metode kustom :read setelah LRO selesai:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
Respons berisi baris data laporan dan definisi kolom. Berikut adalah contoh respons yang berhasil:
{
"rows": [
[
"us-central1",
"Compute Engine",
"projects/PROJECT_ID",
"6EC2-384A-47D9",
{
"currency_code": "USD",
"units": "25",
"nanos": 750000000
}
],
[
"us-central1",
"Cloud Storage",
"projects/PROJECT_ID",
"9ADA-9ADC-2FBE",
{
"currency_code": "USD",
"units": "5",
"nanos": 100000000
}
],
[
"europe-west1",
"Compute Engine",
"projects/PROJECT_ID",
"6EC2-384A-47D9",
{
"currency_code": "USD",
"units": "18",
"nanos": 500000000
}
],
[
"us-central1",
"Compute Engine",
"projects/PROJECT_ID",
"F61D-4D51-AAFC",
{
"currency_code": "USD",
"units": "12",
"nanos": 200000000
}
]
],
"columns": [
{
"name": "location",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "product_display_name",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "project",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "sku",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "cost",
"type": "RECORD",
"mode": "NULLABLE",
"columns": [
{
"name": "currency_code",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "units",
"type": "INT64",
"mode": "NULLABLE"
},
{
"name": "nanos",
"type": "INT64",
"mode": "NULLABLE"
}
]
}
],
"next_page_token": ""
}
Laporan dengan banyak baris dipaginasi. Untuk menangani beberapa halaman, lihat Membaca data laporan.
Untuk memahami nilai di kolom cost, lihat
Menginterpretasikan metrik biaya.
Untuk mengetahui informasi selengkapnya tentang data dan memahami batasannya, lihat
Memahami data.
Pembersihan
App Optimize API otomatis menghapus laporan Anda 24 jam setelah dibuat. Untuk menghapus laporan lebih cepat, kirim permintaan DELETE HTTP ke endpoint resource laporan:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID"
Langkah berikutnya
- Pelajari laporan lebih lanjut.
- Pelajari cara lain untuk mengelola laporan:
- Lihat ringkasan App Optimize API.