Membuat laporan

App Optimize API membantu Anda menganalisis data biaya dan pemanfaatan resource dengan membuat laporan. Untuk mendapatkan informasi ini, Anda harus membuat laporan terlebih dahulu dengan mengirim permintaan API. Dalam permintaan ini, Anda menentukan cakupan data, cara data tersebut harus diagregasi atau dikelompokkan, dan filter yang akan diterapkan.

Setelah laporan siap, Anda dapat membaca data.

Untuk mengetahui informasi tentang cakupan, dimensi, metrik, dan filter yang tersedia, serta kombinasi setelan yang valid, lihat Tentang laporan.

Sebelum memulai

  1. 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.

    Project ini dipilih oleh Anda dan diidentifikasi berdasarkan 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 batas tingkat project tunggal atau folder. Jika Anda membuat laporan tentang 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.

  2. 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.
  3. Login ke akun Google Cloud Anda. 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.
  4. Instal Google Cloud CLI.

  5. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  6. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  7. Pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini.

  8. Instal Google Cloud CLI.

  9. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  10. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  11. Pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan guna membuat laporan menggunakan panduan ini, minta administrator untuk memberi Anda peran IAM berikut di project Anda dengan resource aktif:

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

Langkah-langkah berikut menjelaskan cara memulai pembuatan laporan. Contoh ini membuat laporan untuk membantu Anda memahami biaya project yang dipilih dan penggunaan CPU rata-rata selama seminggu terakhir. Laporan ini menguraikan informasi ini berdasarkan setiap resource, termasuk jenis resource, produk yang menjadi bagiannya, dan lokasinya. Google Cloud

Untuk membuat resource laporan, kirim permintaan HTTP POST ke jalur resource projects.locations.reports REST API.

Ikuti langkah-langkah berikut untuk membuat laporan.

  1. Gunakan perintah curl berikut untuk mengirim permintaan. Isi permintaan berisi definisi laporan, termasuk cakupan, dimensi, metrik, dan filter yang diminta.

    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",
          "resource",
          "resource_type"
        ],
        "metrics": [
          "cost",
          "cpu_mean_utilization"
        ],
        "filter": "hour >= now - duration(\"168h\")"
      }' \
      "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-resource-cost-report-1.

    API menampilkan objek operasi yang berjalan lama (LRO). Perhatikan kolom name dalam respons, yang akan Anda gunakan untuk memeriksa status operasi:

    {
      "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata"
      },
      "done": false
    }
    

    Dalam respons, kolom done adalah false, yang menunjukkan bahwa pembuatan laporan sedang berlangsung.

  2. Untuk memeriksa apakah laporan sudah siap, kirim permintaan HTTP GET ke operasi name yang ditampilkan pada langkah sebelumnya:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"
    

    Ganti PROJECT_ID dan OPERATION_ID dengan nilai dari respons LRO.

    Periksa respons untuk menentukan status operasi:

    • Jika laporan masih dibuat, respons akan terlihat mirip dengan respons LRO awal, dengan done ditetapkan ke false. Anda harus menunggu sebentar, seperti 5 hingga 15 detik, dan melakukan polling lagi dengan mengulangi langkah ini.
    • Setelah pembuatan laporan selesai, respons akan memiliki "done": true dan menyertakan resource laporan di kolom response:

      {
        "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",
          "dimensions": [
            "location",
            "product_display_name",
            "project",
            "resource",
            "resource_type"
          ],
          "scopes": [
            {
              "project": "projects/PROJECT_ID"
            }
          ],
          "filter": "hour >= now - duration(\"168h\")",
          "expireTime": "2026-02-05T18:50:25.273833857Z",
          "metrics": [
            "cost",
            "cpu_mean_utilization"
          ]
        }
      }
      
    • Jika LRO mengalami error, respons akan berisi kolom error, bukan kolom response, yang memberikan detail tentang kegagalan.

Setelah operasi berhasil diselesaikan, Anda dapat membaca data laporan.

Batas serentak

Saat Anda membuat laporan, App Optimize API akan mendapatkan data biaya dari Cloud Billing dan data penggunaan dari Cloud Monitoring untuk setiap target_project laporan.

  • Untuk laporan yang dicakup ke satu project, project tersebut adalah project target.
  • Untuk aplikasi App Hub, setiap project yang berisi layanan atau workload dalam aplikasi adalah project target.

App Optimize API menerapkan kuota konkurensi yang disebut Operasi CreateReport Serentak, yang memungkinkan maksimum 10 permintaan serentak untuk data laporan per project target. Saat Anda membuat laporan, App Optimize API menghitung jumlah project target dalam laporan dan mengunci jumlah unit kuota yang diperlukan hingga LRO untuk membuat laporan selesai.

Laporan yang selesai dalam waktu kurang dari beberapa menit mungkin tidak dihitung terhadap batas serentak Anda karena pengaturan waktu pengukuran tingkat sistem.

Anda dapat melihat aktivitas API saat ini dan mengelola batas ini di halaman Kuota & Batas Sistem di konsol Google Cloud .

Jika Anda berencana membuat beberapa laporan secara bersamaan, pertimbangkan kapan tim Anda menjalankan laporan dan bagaimana struktur aplikasi App Hub Anda:

  • Jika beberapa tim menjalankan laporan yang menyertakan project target yang sama, Anda dapat mengatur waktu mulai pembuatan laporan untuk setiap tim.
  • Aplikasi dapat menyertakan resource dari beberapa project, dan lebih dari satu aplikasi dapat menggunakan resource dari satu project. Membuat laporan secara bersamaan untuk jenis aplikasi ini akan menghasilkan beberapa permintaan ke project target.

Misalnya, pertimbangkan tim yang mengerjakan serangkaian aplikasi untuk mempelajari seni kreatif, dengan varian standar dan premium. Tabel berikut menampilkan daftar aplikasi di kolom pertama. Di kolom yang tersisa, ikon tanda centang () menunjukkan bahwa project berisi layanan atau beban kerja untuk aplikasi yang tercantum.

Aplikasi common-project dance-project draw-project animate-project music-project
dance-app
draw-app
music-app
animate-app
choreograph-app
storyteller-app
dance-premium-app
draw-premium-app
aplikasi music-premium
animate-premium-app
choreograph-premium-app
storyteller-premium-app

Jika Anda membuat laporan untuk data biaya dan penggunaan semua aplikasi yang tercantum secara bersamaan, App Optimize API menggunakan lebih dari satu unit batas serentak di beberapa project. Secara khusus, project bersama common-project menerima 12 permintaan untuk data biaya dan pemakaian. Karena jumlah ini melebihi batas serentak, 2 permintaan data akan gagal.

Untuk mencegah masalah ini, tim dapat menjalankan laporan untuk aplikasi versi standar terlebih dahulu, lalu menjalankan laporan untuk versi premium.

Langkah berikutnya