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:
- Berintegrasi dengan Slack untuk respons yang lebih cepat
- Mengelola pemakaian resource untuk mengurangi biaya
- Membatasi pembelanjaan dengan menonaktifkan penagihan saat Anda mencapai anggaran
Batasan
Anggaran menggunakan perkiraan data Penagihan Cloud yang dapat berubah hingga invoice Anda diselesaikan.
Jika Anda menetapkan kebijakan organisasi untuk membatasi berbagi resource menurut domain (misalnya, mengaktifkan
enforceInTransitpada 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 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.
- Aktifkan kembali kebijakan organisasi untuk organisasi atau project (opsional).
- Hapus kebijakan organisasi yang berisi batasan domain
menggunakan salah satu metode berikut:
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.
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 Anda menggunakan project administrasi FinOps untuk menyimpan topik Pub/Sub terkait penagihan.
Klik CREATE TOPIC.
Di kolom Topic ID, berikan nama topik.
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) |
|---|---|
|
|
Notifikasi anomali
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.
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:
|
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
|
{
|
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:
- Topik Pub/Sub tidak lagi ada.
- Penagihan Cloud tidak lagi memiliki izin untuk memublikasikan ke topik Pub/Sub.
- Anda melampaui kuota notifikasi.
- Anda telah menerapkan kebijakan organisasi yang membatasi berbagi resource menurut domain.
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:
- Topik Pub/Sub tidak lagi ada.
- Akun Penagihan Cloud tidak lagi memiliki izin untuk memublikasikan ke topik Pub/Sub.
- Anda 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