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 digunakan guna memastikan tindakan tepat waktu untuk 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 serangkaian 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 IAM Penagihan Cloud bawaan berikut di akun Penagihan Cloud Anda:

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

Selain itu, minta administrator untuk memberi Anda peran berikut di 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)

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

Selain itu, minta administrator untuk memberi Anda peran berikut di 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 telah 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 Google Cloud konsol

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

    Saat mengonfigurasi topik Pub/Sub untuk notifikasi penagihan, sebaiknya Anda menggunakan project administrasi FinOps untuk menyimpan 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.

Hubungkan topik Pub/Sub Anda

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.

Notifikasi anggaran

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

Pengguna dengan izin Akun Penagihan Cloud Hanya pengguna dengan izin tingkat 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 Pilih 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 Google Cloud konsol
  2. Pilih project yang anggarannya ingin Anda kelola.
  3. Buka bagian Penagihan: Buka Navigation menu di konsol Google Cloud , lalu pilih Penagihan.

    Jika Anda 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 Billing Overview 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 Pilih 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 Anomali di konsol Google Cloud .

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

    Halaman Anomali 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 Anda lihat untuk menemukan topik yang ingin Anda pilih.
    • Jika Anda ingin membuat topik baru, beralihlah ke project pilihan Anda sebelum mengklik Buat topik.
  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 Cloud Billing 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 terakumulasi. 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 periode 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 ditimbulkan selama bulan kalender terakhir.
  • "LAST_PERIODS_COST": Biaya yang dikeluarkan selama periode kalender terakhir, yang tidak bulanan, seperti kuartal atau tahun.
alertThresholdExceeded 0.9 Nilai minimum 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 yang diperkirakan tertinggi terlampaui. Nilai adalah persen dalam format desimal (misalnya, 0,2 adalah 20%). Kunci ini tidak ada jika perkiraan biaya tidak melebihi batas.
currencyCode "USD" Mata uang pemberitahuan anggaran. Semua biaya dan jumlah pemberitahuan anggaran dinyatakan dalam mata uang ini.

Notifikasi anomali

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

Jaminan 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 saat ini. Ritme ini berbeda dengan ritme untuk email pemberitahuan anggaran, yang hanya dikirim saat batas anggaran tercapai.
  • 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 tidak berurutan.
  • Jika pengiriman gagal karena kesalahan konfigurasi topik Pub/Sub, Anda tidak akan menerima notifikasi.

Penayangan mungkin gagal karena salah satu alasan berikut:

Notifikasi anomali

  • Notifikasi anomali dikirim ke topik Pub/Sub hanya saat nilai minimum tercapai.
  • Pub/Sub hanya menjamin pengiriman setidaknya 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.

Penayangan 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: