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:
- Berintegrasi dengan Slack untuk respons yang lebih cepat
- Mengelola pemakaian resource untuk mengurangi biaya
- Batasi pembelanjaan dengan menonaktifkan penagihan saat Anda mencapai anggaran
Batasan
Anggaran menggunakan estimasi data Penagihan Cloud yang dapat berubah hingga invoice Anda selesai.
Jika Anda menetapkan kebijakan organisasi untuk membatasi pembagian resource menurut domain (misalnya, mengaktifkan
enforceInTransit
di topik Pub/Sub), Anda mungkin mengalami error saat mencoba menyiapkan atau menghubungkan topik Pub/Sub. Dalam situasi ini, Anda mungkin perlu memaksa akses akun agar berhasil menghubungkan topik Pub/Sub ke anggaran. Untuk memaksa akses akun, selesaikan langkah-langkah berikut:- Hapus kebijakan organisasi yang berisi batasan pembatasan domain
menggunakan salah satu metode berikut:
- Hapus kebijakan organisasi untuk sementara.
- Ganti kebijakan organisasi untuk project yang berisi topik Pub/Sub.
- Ikuti langkah-langkah untuk menghubungkan topik Pub/Sub.
- Kembalikan kebijakan organisasi untuk organisasi atau project (opsional).
- Hapus kebijakan organisasi yang berisi batasan pembatasan domain
menggunakan salah satu metode berikut:
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.
Buka halaman Pub/Sub di konsol Google Cloud.
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.
Klik
CREATE TOPIC.Di kolom Topic ID, berikan nama topik.
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) |
---|---|
|
|
Untuk menghubungkan topik Pub/Sub ke anomali biaya, selesaikan langkah-langkah berikut:
Pengguna dengan izin akun Penagihan Cloud (Pratinjau) |
---|
|
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:
|
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
|
{
|
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:
- Topik Pub/Sub tidak lagi ada.
- Penagihan Cloud tidak lagi memiliki izin untuk memublikasikan ke topik Pub/Sub.
- Anda telah melampaui kuota notifikasi.
- Anda memiliki kebijakan organisasi yang membatasi berbagi resource menurut domain.
- 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:
- Topik Pub/Sub tidak lagi ada.
- Akun Penagihan Cloud tidak lagi memiliki izin untuk memublikasikan ke topik Pub/Sub.
- Anda telah melampaui kuota notifikasi.
- Anda telah menerapkan kebijakan organisasi yang membatasi berbagi resource menurut domain.
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:
- Mendengarkan notifikasi
- Mengirim notifikasi ke Slack
- Mengontrol penggunaan resource dengan notifikasi
- Menonaktifkan penggunaan penagihan dengan notifikasi