Membuat dan membaca laporan
App Optimize API memungkinkan Anda membuat laporan tentang Google Cloud biaya dan penggunaan resource untuk membantu Anda mengoptimalkan pembelanjaan. Dalam panduan memulai ini, Anda akan membuat laporan, memantau pembuatannya, dan membaca data laporan menggunakan Google Cloud CLI, library klien Python, atau REST API.
Sebelum memulai
Contoh dalam panduan ini memerlukan Google Cloud project dengan resource aktif 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.
Dalam panduan ini, project yang diidentifikasi sebagai
PROJECT_IDmenyediakan cakupan data dan menghosting resource laporan.App Optimize API mendukung pembuatan laporan dalam satu project yang menganalisis data dari project lain atau dari aplikasi dalam batas tingkat folder atau project tunggal. Untuk membuat laporan tentang aplikasi App Hub, yang dapat terdiri dari beberapa project, Anda harus memiliki izin penagihan dan pemantauan 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.
-
Verify that you have the permissions required to complete this guide.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh dalam dokumen ini:
gcloud
Instal Google Cloud CLI.
Konfigurasi gcloud CLI agar menggunakan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Login ke gcloud CLI dengan identitas gabungan Anda.
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud initSetelah menginisialisasi gcloud CLI, update gcloud CLI dan instal komponen yang diperlukan:
gcloud components update gcloud components install beta
Untuk mengetahui informasi tentang cara menyiapkan autentikasi bagi lingkungan produksi, lihat Menyiapkan Kredensial Default Aplikasi untuk kode yang berjalan di Google Cloud dalam dokumentasi autentikasi Google Cloud .
Python
- Instal library klien Python untuk App Optimize API.
-
Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
-
Instal Google Cloud CLI.
-
Konfigurasi gcloud CLI agar menggunakan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Login ke gcloud CLI dengan identitas gabungan Anda.
-
Buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Jika error autentikasi ditampilkan, pastikan Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .
Untuk mengetahui informasi tentang cara menyiapkan autentikasi bagi lingkungan produksi, lihat Menyiapkan Kredensial Default Aplikasi untuk kode yang berjalan di Google Cloud dalam dokumentasi autentikasi Google Cloud .
-
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Untuk mengetahui informasi tentang cara menyiapkan autentikasi bagi lingkungan produksi, lihat Menyiapkan Kredensial Default Aplikasi untuk kode yang berjalan di Google Cloud dalam dokumentasi autentikasi Google Cloud .
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna membuat dan membaca laporan menggunakan panduan memulai ini, minta administrator untuk memberi Anda peran IAM berikut di project Anda dengan resource aktif:
- App Optimize Admin (
roles/appoptimize.admin) - Pelihat (
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 pembelanjaan dalam PROJECT_ID yang Anda pilih. Laporan ini mengelompokkan 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, ikuti petunjuk sesuai metode pilihan Anda:
gcloud
Gunakan perintah gcloud beta app-optimize reports create untuk membuat laporan.
gcloud beta app-optimize reports create REPORT_ID \
--project=PROJECT_ID \
--location=global \
--dimensions=location,product_display_name,project,sku \
--metrics=cost \
--report-filter='hour >= now - duration("72h")' \
--scopes=project=projects/PROJECT_ID
Ganti kode berikut:
PROJECT_ID: Google Cloud Project ID Anda.REPORT_ID: ID unik untuk laporan baru Anda—misalnya,my-first-report
Perintah ini menunggu hingga operasi pembuatan laporan selesai, lalu menampilkan resource laporan yang dibuat.
Python
Kode Python berikut menggunakan AppOptimizeClient.create_report()
untuk membuat laporan.
from google.cloud import appoptimize_v1beta
project_id = "PROJECT_ID"
report_id = "REPORT_ID"
# Create the App Optimize client and prepare a request for a new report
client = appoptimize_v1beta.AppOptimizeClient()
report = appoptimize_v1beta.Report(
dimensions=['location', 'product_display_name', 'project', 'sku'],
metrics=['cost'],
filter='hour >= now - duration("72h")',
scopes=[
appoptimize_v1beta.Scope(project=f"projects/{project_id}"),
],
)
request = appoptimize_v1beta.CreateReportRequest(
parent=f"projects/{project_id}/locations/global",
report=report,
report_id=report_id,
)
# Request the creation of the report and wait until the process is done
operation = client.create_report(request=request)
print("Waiting for report creation operation to complete...")
response = operation.result()
print(response)
Ganti kode berikut:
PROJECT_ID: Google Cloud Project ID Anda.REPORT_ID: ID unik untuk laporan baru Anda—misalnya,my-first-report.
Metode operation.result() menunggu hingga operasi pembuatan laporan selesai.
REST
Kirim permintaan HTTP POST ke jalur resource
projects.locations.reports REST API.
Untuk mengirim permintaan, gunakan perintah
curlberikut: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: Google Cloud Project ID Anda.REPORT_ID: ID unik untuk laporan baru Anda—misalnya,my-first-report
API menampilkan objek Operasi yang Berjalan Lama (LRO), yang merepresentasikan 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 dalam proses pembuatan. CatatOPERATION_IDkarena Anda akan menggunakannya pada langkah berikutnya.Karena pembuatan laporan dapat memerlukan waktu, Anda perlu melakukan polling LRO hingga LRO menunjukkan bahwa proses pembuatan telah selesai dan data laporan siap didownload.
Untuk memeriksa status proses pembuatan, kirim permintaan HTTP
GETke 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 dan ulangi langkah ini. Jika"done"adalahtrue, maka 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, ikuti petunjuk sesuai metode pilihan Anda:
gcloud
Gunakan perintah gcloud beta app-optimize reports read berikut untuk mengambil data laporan.
gcloud beta app-optimize reports read REPORT_ID \
--project=PROJECT_ID \
--location=global
Python
Kode Python berikut menggunakan AppOptimizeClient.read_report() untuk
mengambil data laporan.
from google.cloud import appoptimize_v1beta
project_id = "PROJECT_ID"
report_id = "REPORT_ID"
name = f"projects/{project_id}/locations/global/reports/{report_id}"
# Create the App Optimize client and read your report's data
client = appoptimize_v1beta.AppOptimizeClient()
request = appoptimize_v1beta.ReadReportRequest(
name=name,
)
result = client.read_report(request=request)
# Display the report's data
print(result)
REST
Setelah LRO selesai, gunakan metode kustom :read REST API:
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 dari API 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
Menafsirkan metrik biaya.
Untuk mengetahui informasi selengkapnya tentang data dan memahami batasannya, lihat
Memahami data.
Pembersihan
App Optimize API akan otomatis menghapus laporan Anda 24 jam setelah laporan tersebut dibuat. Untuk menghapus laporan lebih awal, ikuti petunjuk sesuai metode pilihan Anda:
gcloud
Gunakan perintah gcloud beta app-optimize reports delete untuk menghapus laporan.
gcloud beta app-optimize reports delete REPORT_ID \
--project=PROJECT_ID \
--location=global
Python
Kode berikut menggunakan AppOptimizeClient.delete_report() untuk menghapus laporan.
from google.cloud import appoptimize_v1beta
project_id = "PROJECT_ID"
report_id = "REPORT_ID"
name = f"projects/{project_id}/locations/global/reports/{report_id}"
client = appoptimize_v1beta.AppOptimizeClient()
request = appoptimize_v1beta.DeleteReportRequest(name=name)
client.delete_report(request=request)
print(f"Deleted report: {name}")
REST
Kirim permintaan HTTP DELETE 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.