Menyiapkan notifikasi terprogram

Dokumen ini menjelaskan cara menyiapkan notifikasi anomali biaya dan anggaran terprogram (Pratinjau) menggunakan Pub/Sub.

Anggaran dan anomali biaya biasanya dikonfigurasi untuk mengirim notifikasi email. Jika Anda menggunakan anggaran atau deteksi anomali biaya sebagai alat kontrol biaya, notifikasi email mungkin bukan metode terbaik untuk digunakan guna memastikan tindakan yang tepat waktu untuk mengontrol biaya Anda. Anda dapat menyiapkan dan menggunakan notifikasi terprogram untuk mengotomatiskan respons pengendalian biaya. Contoh respons kontrol biaya otomatis meliputi:

Batasan

Izin yang diperlukan untuk langkah ini

Untuk menyiapkan notifikasi anggaran terprogram, Anda memerlukan izin untuk membuat atau mengubah anggaran dan topik Pub/Sub. Anda memerlukan kumpulan izin yang berbeda, bergantung pada tingkat akses Anda.

Pengguna dengan izin Akun Penagihan Cloud Hanya pengguna yang memiliki izin level project (Pratinjau)

Jika organisasi Anda menggunakan peran khusus untuk autentikasi, Anda memerlukan izin berikut dalam peran khusus:

Agar peran kustom dapat mengubah anggaran Penagihan Cloud yang ada untuk menghubungkannya ke topik Pub/Sub yang ada, Anda memerlukan izin berikut:

Untuk mendapatkan izin yang diperlukan menggunakan peran bawaan, minta administrator untuk memberi Anda salah satu peran Cloud Billing IAM bawaan berikut di akun Penagihan Cloud Anda:

Dan minta administrator untuk memberi Anda peran berikut di project target yang berisi topik Pub/Sub:

Jika organisasi Anda menggunakan peran khusus untuk autentikasi, Anda memerlukan izin berikut dalam peran khusus:

Untuk mendapatkan izin yang diperlukan menggunakan peran yang telah ditentukan, minta administrator untuk memberi Anda salah satu peran Cloud Billing IAM yang telah ditentukan berikut di project:

Dan minta administrator untuk memberi Anda peran berikut di project target yang berisi topik Pub/Sub:

Untuk menyiapkan notifikasi anomali terprogram, Anda memerlukan izin untuk membuat atau mengubah anomali dan topik Pub/Sub. Anda harus memiliki izin akun Penagihan Cloud.

Pengguna dengan izin akun Penagihan Cloud (Pratinjau)

Untuk mendapatkan izin yang diperlukan menggunakan peran bawaan, minta administrator untuk memberi Anda salah satu peran Cloud Billing IAM bawaan berikut di akun Penagihan Cloud Anda:

Dan minta administrator untuk memberi Anda peran berikut di project target yang berisi topik Pub/Sub:

Membuat topik Pub/Sub

Untuk menyiapkan notifikasi anggaran terprogram atau anomali, Anda harus membuat topik Pub/Sub terlebih dahulu. Jika sudah mengonfigurasi topik Pub/Sub untuk anggaran atau anomali biaya, Anda dapat melewati langkah ini.

  1. Buka halaman Pub/Sub di konsol Google Cloud.

    Login ke Pub/Sub konsol Google Cloud

  2. Pilih project yang akan berisi topik Pub/Sub.

    Saat mengonfigurasi topik Pub/Sub untuk notifikasi penagihan, sebaiknya gunakan project administrasi FinOps untuk menampung topik Pub/Sub terkait penagihan.

  3. Klik CREATE TOPIC.

  4. Di kolom Topic ID, berikan nama topik.

  5. Pertahankan setelan langganan dan enkripsi default, lalu klik Create.

Menghubungkan topik Pub/Sub

Untuk mengaktifkan notifikasi terprogram guna menerima pesan Pub/Sub dengan status anggaran atau anomali saat ini, Anda harus menghubungkan anggaran atau anomali ke topik Pub/Sub.

Untuk menghubungkan topik Pub/Sub ke anggaran Penagihan Cloud, selesaikan langkah-langkah berikut:

Pengguna dengan izin Akun Penagihan Cloud Hanya pengguna yang memiliki izin level project (Pratinjau)
  1. Login ke halaman Anggaran & pemberitahuan di Konsol Google Cloud.

    Buka Anggaran & pemberitahuan
  2. Ketika diminta, pilih akun Penagihan Cloud yang ingin Anda kelola anggarannya.

    Halaman Anggaran & pemberitahuan akan terbuka untuk akun penagihan yang dipilih.

  3. Pilih anggaran yang ingin Anda hubungkan, atau buat anggaran baru.
  4. Di bagian Tindakan, di Kelola notifikasi, pilih Hubungkan topik Pub/Sub ke anggaran ini.
  5. Di kolom Project, klik Select a project, lalu pilih project yang berisi topik Pub/Sub yang Anda siapkan.
  6. Di bagian Select a Pub/Sub topic, pilih topik yang ada, atau buat topik baru dengan mengklik Create a topic.
    • Jika Anda membuat topik baru, di kolom Topic ID, berikan nama topik, lalu klik Create topic.
    • Setelah Anda membuat topik, topik tersebut akan otomatis dipilih.
  7. Klik Simpan.
  1. Login ke dasbor Konsol Google Cloud lalu pilih project.

    Buka konsol Google Cloud
  2. Pilih project yang anggarannya ingin Anda kelola.
  3. Buka bagian Billing: Buka Menu navigasi di konsol Google Cloud, lalu pilih Billing.

    Jika diminta untuk memilih akun penagihan yang ingin Anda lihat dan kelola, klik Buka akun penagihan tertaut untuk melihat akun penagihan yang ditautkan ke project yang Anda pilih.

    Halaman Ringkasan Penagihan akan terbuka untuk akun penagihan yang dipilih.

  4. Di bagian Pengelolaan biaya pada menu navigasi Penagihan, pilih Anggaran & pemberitahuan.
  5. Pilih anggaran yang ingin Anda hubungkan, atau buat anggaran baru.
  6. Di bagian Tindakan, di Kelola notifikasi, pilih Hubungkan topik Pub/Sub ke anggaran ini.
  7. Di kolom Project, klik Select a project, lalu pilih project yang berisi topik Pub/Sub yang Anda siapkan.
  8. Di bagian Select a Pub/Sub topic, pilih topik yang ada, atau buat topik baru dengan mengklik Create a topic.
    • Jika Anda membuat topik baru, di kolom Topic ID, berikan nama topik, lalu klik Create topic.
    • Setelah dibuat, topik akan dipilih.
  9. Klik Simpan.

Untuk menghubungkan topik Pub/Sub ke anomali biaya, selesaikan langkah-langkah berikut:

Pengguna dengan izin akun Penagihan Cloud (Pratinjau)
  1. Login ke halaman Anomalies di konsol Google Cloud.

    Buka Anomali
  2. Ketika diminta, pilih akun Penagihan Cloud yang ingin Anda kelola anomalinya.

    Halaman Anomalies akan terbuka untuk akun penagihan yang dipilih.

  3. Klik Kelola anomali.
  4. Masukkan nilai Nilai minimum anomali untuk Dampak biaya. Jumlah ini adalah nilai minimum yang memicu notifikasi. Jika Anda tidak memberikan nilai, nilai minimum akan ditetapkan ke nol, dan notifikasi akan dikirim untuk semua anomali.
  5. Di bagian Notifikasi Pub/Sub, pilih Hubungkan topik Pub/Sub untuk menerima pembaruan terprogram tentang anomali.
  6. Dari menu drop-down yang muncul, pilih topik Pub/Sub yang ingin Anda hubungkan untuk menerima notifikasi.
    • Topik dicantumkan menurut project. Anda mungkin perlu beralih project yang sedang dilihat untuk menemukan topik yang ingin dipilih.
    • Jika Anda ingin membuat topik baru, beralihlah ke project pilihan Anda sebelum mengklik Create a topic.
  7. Klik Simpan.

Format notifikasi

Notifikasi yang dikirim ke topik Pub/Sub terdiri dari dua bagian:

  • Atribut: Kumpulan key-value pair yang mendeskripsikan acara.
  • Data: String yang berisi objek JSON yang menjelaskan detail pemberitahuan anggaran.

Atribut

Atribut adalah key-value pair yang terdapat dalam semua notifikasi yang dikirim oleh Penagihan Cloud ke topik Pub/Sub Anda. Notifikasi selalu berisi serangkaian key-value pair berikut, terlepas dari payload notifikasi.

Nama atribut Contoh Deskripsi
billingAccountId 01D4EE-079462-DFD6EC ID untuk akun Penagihan Cloud yang memiliki anggaran.
budgetId de72f49d-779b-4945-a127-4d6ce8def0bb ID untuk pemberitahuan anggaran dalam akun Penyajian Tagihan Cloud.
schemaVersion 1.0 Versi skema notifikasi.

Data

Detail pemberitahuan anggaran ditampilkan dalam string UTF-8 yang dienkode base64 yang berisi objek JSON dengan properti berikut:

Data Contoh Deskripsi
budgetDisplayName "My Personal Budget" Nama yang dapat dibaca manusia yang ditetapkan ke anggaran.
costAmount 140.321 Jumlah biaya yang terakumulasi. Jenis biaya yang dilacak bergantung pada filter & setelan anggaran.
costIntervalStart "2021-02-01T08:00:00Z" Awal periode pemberitahuan anggaran. `costAmount` mencakup biaya untuk penggunaan yang dimulai pada saat ini. Ini adalah hari pertama jangka waktu anggaran (bulan, kuartal, tahun, atau rentang tanggal kustom) selama penggunaan anggaran terjadi.
budgetAmount 152.557 Jumlah yang dialokasikan dalam anggaran.
budgetAmountType "SPECIFIED_AMOUNT" Jenis jumlah anggaran. Ini dapat berupa salah satu dari nilai berikut:
  • "SPECIFIED_AMOUNT": Jumlah tetap.
  • "LAST_MONTH_COST": Total biaya yang dikeluarkan selama bulan kalender terakhir.
  • "LAST_PERIODS_COST": Biaya yang dikeluarkan selama periode kalender non-bulanan terakhir, seperti kuartal atau tahun.
alertThresholdExceeded 0.9 Batas pemberitahuan biaya aktual tertinggi yang dikonfigurasi terlampaui. Nilai adalah persen dalam format desimal (misalnya, 0,9 adalah 90%). Kunci ini tidak ada jika biaya sebenarnya tidak melebihi nilai minimum.
forecastThresholdExceeded 0.2 Batas pemberitahuan biaya perkiraan tertinggi terlampaui. Nilai adalah persen dalam format desimal (misalnya, 0,2 adalah 20%). Kunci ini tidak ada jika perkiraan biaya tidak melebihi nilai minimum.
currencyCode "USD" Mata uang pemberitahuan anggaran. Semua biaya dan jumlah pemberitahuan anggaran dalam mata uang ini.

Atribut

Atribut adalah key-value pair yang terdapat dalam semua notifikasi yang dikirim oleh Cloud Billing ke topik Pub/Sub Anda. Notifikasi selalu berisi serangkaian key-value pair berikut, terlepas dari payload notifikasi.

Nama atribut Contoh Deskripsi
scope scope_project Cakupan anomali.
billingAccountName billingAccounts/01D4EE-079462-DFD6EC ID akun Penagihan Cloud tempat anomali terjadi.
resourceDisplayName My project Nama tampilan resource tempat anomali terjadi.
resourceName projects/123456 ID resource tempat anomali terjadi.
SchemaVersion 1.0 Versi skema Pub/Sub.

Data

Detail pemberitahuan anomali ditampilkan dalam string UTF-8 berenkode base64 yang berisi objek JSON dengan properti berikut:

Data Contoh Deskripsi
anomalyName billingAccounts/01D4EE-079462-DFD6EC/anomalies/aaa Nama resource untuk anomali.
billingAccountName billingAccounts/01D4EE-079462-DFD6EC ID akun penagihan.
resourceName "projects/12345" ID resource tempat anomali terjadi.
resourceDisplayName "My project" Nama tampilan resource tempat anomali terjadi.
detectionDate "2024-02-01T08:00:00Z" Tanggal anomali biaya terdeteksi.
Scope SCOPE_PROJECT Menunjukkan cakupan anomali.
expectedSpendAmount {
"currencyCode": "USD",
"units": "8",
"nanos": 988106832
}
Perkiraan pembelanjaan untuk resource.
actualSpendAmount 196.22 Pembelanjaan aktual untuk resource.
deviationAmount 31.01 Perbedaan antara pembelanjaan aktual dan pembelanjaan yang diharapkan.
deviationPercentage 18.77 Persentase jumlah deviasi dari pembelanjaan yang diharapkan.
Root cause
root_causes {
resource: "services/XXX-XXXX-XXX"
display_name: "BigQuery"
cause_type: CAUSE_TYPE_SERVICE
deviation {
  expected_spend {
    currency_code: "USD"
    units: "5000"
  }
  actual_spend {
    currency_code: "USD"
    units: "5000"
  }
  deviation_amount {
    currency_code: "USD"
    units: "5000"
  }
  deviation_percentage: "Infinity"
}
sub_causes {
  resource: "locations/us-west1",
  display_name: "us-west1",
  cause_type: CAUSE_TYPE_LOCATION,
  deviation {
    expected_spend {
      currency_code: "USD",
    }
    actual_spend {
      currency_code: "USD",
      units:"5000"
    }
    deviation_amount {
      currency_code: "USD",
      units: "5000"
    }
    deviation_percentage: "Infinity"
  }
  sub_causes {
    resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX"
    display_name: "Some display name"
    cause_type: CAUSE_TYPE_SKU
    deviation {
      expected_spend {
        currency_code: "USD"
      }
      actual_spend {
        currency_code: "USD"
        units: 5000
      }
      deviation_amount {
        currency_code: "USD"
        units: 5000
      }
      deviation_percentage: "Infinity"
    }
  }
  sub_causes {
    resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX"
    display_name: "Some display name"
    cause_type: CAUSE_TYPE_SKU
    deviation {
      expected_spend {
        currency_code: "USD"
        units: "1"
        nanos: 5413077
      }
      actual_spend {
        currency_code: "USD"
        units: "1",
        nanos: 122606000
      }
      deviation_amount {
        currency_code: "USD"
        nanos: 117192923
      }
      deviation_percentage:11.656196419841217
    }
  }
}
}
Kolom berulang yang berisi informasi tentang akar masalah anomali.

Jaminan pengiriman notifikasi ke Pub/Sub

Setelah menghubungkan anggaran atau anomali ke topik Pub/Sub, Anda akan menerima notifikasi terprogram sebagai berikut:

  • Notifikasi anggaran dikirim ke topik Pub/Sub beberapa kali per hari dengan status anggaran Anda saat ini. Ritme ini berbeda dengan ritme untuk email pemberitahuan anggaran, yang hanya dikirim saat nilai minimum anggaran terpenuhi.
  • Notifikasi Pub/Sub dikirim meskipun akun Penagihan Cloud tidak memiliki penggunaan.
  • Mungkin perlu waktu beberapa jam sebelum Anda menerima notifikasi Pub/Sub pertama.
  • Pub/Sub hanya menjamin pengiriman minimal satu kali. Anda mungkin menerima pesan beberapa kali, dan pesan mungkin tiba secara tidak berurutan.
  • Jika pengiriman gagal karena kesalahan konfigurasi topik Pub/Sub, Anda tidak akan menerima notifikasi.

Pengiriman mungkin gagal karena salah satu alasan berikut:

  • Notifikasi anomali hanya dikirim ke topik Pub/Sub saat nilai minimum tercapai.
  • Pub/Sub hanya menjamin pengiriman minimal satu kali. Anda mungkin menerima pesan beberapa kali, dan pesan mungkin tiba secara tidak berurutan.
  • Jika pengiriman gagal karena kesalahan konfigurasi topik Pub/Sub, Anda tidak akan menerima notifikasi.

Pengiriman mungkin gagal karena salah satu alasan berikut:

Untuk mengetahui informasi selengkapnya, lihat Memublikasikan dan menerima pesan di Pub/Sub.

Langkah berikutnya

Untuk mempelajari lebih lanjut cara menggunakan notifikasi terprogram, tinjau contoh respons kontrol biaya terprogram berikut: