Menyiapkan notifikasi terprogram

Dokumen ini menjelaskan cara menyiapkan notifikasi anggaran dan anomali biaya 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 memastikan tindakan tepat waktu dalam mengontrol biaya Anda. Anda dapat menyiapkan dan menggunakan notifikasi terprogram untuk mengotomatiskan respons kontrol biaya. Contoh respons kontrol biaya otomatis meliputi:

Batasan

Izin yang diperlukan untuk langkah ini

Notifikasi anggaran

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 khusus 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 yang telah ditetapkan, minta administrator untuk memberi Anda salah satu peran Cloud Billing IAM yang telah ditetapkan berikut di akun Penagihan Cloud Anda:

Dan minta administrator untuk memberi Anda peran berikut pada 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 bawaan, minta administrator untuk memberi Anda salah satu peran Penagihan Cloud IAM bawaan berikut di project:

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

Notifikasi anomali

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)

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

  • billing.accounts.get di akun Penagihan Cloud.
  • billing.accounts.getIamPolicy di akun Penagihan Cloud.
  • billing.anomalies.get di akun Penagihan Cloud.
  • billing.anomalies.list di akun Penagihan Cloud.
  • pubsub.topics.setIamPolicy pada project target yang berisi topik Pub/Sub yang ingin Anda gunakan.
  • pubsub.topics.list pada project target yang berisi topik Pub/Sub yang ingin Anda gunakan.
  • pubsub.subscriptions.consume pada project target (atau langganan) yang berisi langganan Pub/Sub yang ingin Anda gunakan.

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

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

Membuat topik Pub/Sub

Untuk menyiapkan notifikasi anggaran atau anomali terprogram, Anda harus membuat topik Pub/Sub terlebih dahulu. Jika Anda 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 untuk menampung topik Pub/Sub.

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

  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 agar menerima pesan Pub/Sub dengan status anggaran atau anomali saat ini, Anda harus menghubungkan anggaran atau anomali ke topik Pub/Sub.

Notifikasi anggaran

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 dan 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 ingin Anda kelola anggarannya.
  3. Buka bagian Penagihan: Buka Menu navigasi konsol Google Cloud , lalu pilih Penagihan.

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

Notifikasi anomali

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 .

    Anomali Terbuka
  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 Pub/Sub notifications, pilih Connect a Pub/Sub topic to receive programmatic updates about anomalies.
  6. Dari menu drop-down yang muncul, pilih topik Pub/Sub yang ingin Anda hubungkan untuk menerima notifikasi.
    • Topik dicantumkan berdasarkan 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.

Notifikasi 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 Penagihan Cloud.
schemaVersion 1.0 Versi skema notifikasi.

Data

Detail pemberitahuan anggaran ditampilkan dalam string UTF-8 berenkode 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 timbul. Jenis biaya yang dilacak bergantung pada filter & setelan anggaran.
costIntervalStart "2021-02-01T08:00:00Z" Awal periode pemberitahuan anggaran. `costAmount` mencakup biaya penggunaan yang dimulai pada waktu ini. Ini adalah hari pertama jangka waktu anggaran (bulan, kuartal, tahun, atau rentang tanggal kustom) saat 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 ini:
  • "SPECIFIED_AMOUNT": Jumlah tetap.
  • "LAST_MONTH_COST": Total biaya yang dikeluarkan selama bulan kalender terakhir.
  • "LAST_PERIODS_COST": Biaya yang timbul selama periode kalender non-bulanan terakhir, seperti kuartal atau tahun.
alertThresholdExceeded 0.9 Nilai minimum pemberitahuan biaya aktual tertinggi yang dikonfigurasi telah terlampaui. Nilai adalah persen dalam format desimal (misalnya, 0,9 adalah 90%). Kunci ini tidak ada jika biaya sebenarnya tidak melebihi nilai minimum apa pun.
forecastThresholdExceeded 0.2 Batas pemberitahuan perkiraan biaya tertinggi terlampaui. Nilai adalah persentase dalam format desimal (misalnya, 0,2 adalah 20%). Kunci ini tidak ada jika perkiraan biaya tidak melebihi nilai minimum apa pun.
currencyCode "USD" Mata uang pemberitahuan anggaran. Semua biaya dan jumlah pemberitahuan anggaran menggunakan mata uang ini.

Notifikasi anomali

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
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 deteksi anomali biaya.
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 sebenarnya dan pembelanjaan yang diperkirakan.
deviationPercentage 18.77 Persentase jumlah penyimpangan 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 penyebab utama anomali.

Pengiriman notifikasi ke Pub/Sub

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

Notifikasi anggaran

  • Notifikasi anggaran dikirim ke topik Pub/Sub beberapa kali per hari dengan status anggaran Anda saat ini. Frekuensi ini berbeda dengan frekuensi 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 menyediakan pengiriman minimal satu kali. Anda mungkin menerima pesan beberapa kali, dan pesan mungkin tiba 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

  • Notifikasi anomali hanya dikirim ke topik Pub/Sub saat nilai minimum tercapai.
  • Pub/Sub hanya memastikan pengiriman minimal satu kali. Anda mungkin menerima pesan beberapa kali, dan pesan mungkin tiba 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: