Hologres Serverless Computing mengenakan biaya untuk pekerjaan SQL besar—misalnya, yang memiliki beban CPU atau memori tinggi—berdasarkan sumber daya komputasi yang dikonsumsi dan durasi penggunaannya. Topik ini menjelaskan cara melihat konsumsi resource Serverless Computing dan rincian penagihan Anda.
Ikhtisar Penagihan
Untuk setiap pekerjaan SQL, Serverless Computing mengukur penggunaan resource dalam satuan CU·H, yaitu jumlah resource aktual dikalikan dengan durasi penggunaannya. Penagihan diproses per jam. Setiap jam, sistem mengagregasi penggunaan dari jam sebelumnya untuk semua pekerjaan SQL yang dijalankan menggunakan Serverless Computing dan menagih Anda sesuai dengan itu. Untuk informasi harga satuan saat ini, lihat Billing Overview.
-
Penagihan untuk Serverless Computing dimulai pada
2024-07-01(UTC+8). Dokumen ini memberikan panduan tentang cara memantau konsumsi resource Serverless Computing Anda, memperkirakan tagihan Anda, serta menyesuaikan alokasi resource untuk pekerjaan guna mencegah biaya tak terduga. -
Untuk daftar wilayah dan zona yang didukung, lihat Serverless Computing User Guide.
-
Kedua tabel
hologres.hg_query_logdanhologres.hg_serverless_computing_query_logmenyimpan data selama 30 hari terakhir.
Hanya pekerjaan SQL yang berhasil dieksekusi yang dikenai biaya. Eksekusi yang gagal tidak dikenai biaya.
Kueri Konsumsi Resource
Mulai dari Hologres V2.1.18, Anda dapat melakukan kueri terhadap tampilan hologres.hg_serverless_computing_query_log untuk menghitung konsumsi resource Serverless Computing dan memperkirakan biaya menggunakan rumus penagihan Serverless. Untuk detail tentang log kueri lambat, lihat View and Analyze Slow Query Logs.
-
Sebelum
Hologres V2.2.7, log kueri lambat mencatat semua pekerjaan Serverless Computing yang gagal dan pekerjaan yang berhasil yang berjalan lebih dari100milidetik. Mulai dariHologres V2.2.7, log mencakup semua pekerjaan Serverless Computing. -
Log kueri lambat mencatat konsumsi resource untuk setiap pernyataan SQL. Selama penagihan, sistem mungkin menerapkan agregasi data dan konversi satuan, yang dapat menyebabkan sedikit perbedaan.
Persyaratan Izin
Untuk memperkirakan konsumsi dan penagihan Serverless Computing dari log kueri lambat, Anda memerlukan izin tertentu. Konten berikut menjelaskan aturan izin dan metode pemberiannya.
-
Menjalankan kueri volume pemindaian data di seluruh database dalam suatu instans
-
Metode 1: Berikan izin Superuser menggunakan perintah berikut:
-- Ganti "ID akun Alibaba Cloud" dengan username yang sebenarnya. -- Untuk Pengguna RAM, tambahkan awalan "p4_" pada ID akun. ALTER USER "ID akun Alibaba Cloud" SUPERUSER; -
Metode 2: Tambahkan pengguna ke grup pg_read_all_stats menggunakan perintah berikut:
CatatanSelain izin Superuser, Hologres mendukung grup pg_read_all_stats untuk melihat volume pemindaian data di seluruh database. Jika Anda adalah pengguna biasa yang memerlukan akses log lengkap, Anda harus menghubungi Superuser untuk otorisasi dan ditambahkan ke grup tersebut.
GRANT pg_read_all_stats TO "ID akun Alibaba Cloud";-- Model otorisasi PostgreSQL standar CALL spm_grant('pg_read_all_stats', 'ID akun Alibaba Cloud'); -- SPM CALL slpm_grant('pg_read_all_stats', 'ID akun Alibaba Cloud'); -- SLPM
-
-
Menampilkan volume pemindaian data untuk database saat ini
-
Aktifkan simple permission model (SPM) atau schema-level simple permission model (SLPM), lalu tambahkan pengguna ke grup db_admin. Peran db_admin dapat melihat volume pemindaian data untuk database saat ini. Anda dapat menggunakan perintah berikut:
CALL spm_grant('<db_name>_admin', 'Alibaba Cloud account ID'); -- SPM CALL slpm_grant('<db_name>.admin', 'Alibaba Cloud account ID'); -- SLPM -
Pengguna biasa dapat menjalankan kueri terhadap volume pemindaian datanya sendiri dalam database yang terkait dengan akun mereka.
-
Untuk informasi lebih lanjut tentang izin, lihat Permission Management Overview.
Kueri Konsumsi Resource untuk Satu Pernyataan SQL
Anda dapat menggunakan perintah SQL berikut untuk mengambil rincian konsumsi resource untuk pekerjaan Serverless Computing.
SELECT
*,
queue_time_ms, -- Waktu yang dihabiskan SQL menunggu dalam antrian Serverless Computing, dalam milidetik (ms)
serverless_allocated_cores, -- Jumlah CU yang dialokasikan oleh Serverless Computing untuk pekerjaan SQL ini
serverless_resource_used_time_ms, -- Durasi SQL benar-benar menggunakan resource Serverless Computing, dalam milidetik (ms)
(serverless_allocated_cores::DECIMAL(38, 4)) * (serverless_resource_used_time_ms::DECIMAL(38, 4)) AS serverless_cums
FROM
hologres.hg_serverless_computing_query_log;
Kueri Konsumsi Resource dalam Periode Waktu Tertentu
Anda dapat menggunakan perintah SQL berikut untuk menghitung total konsumsi resource untuk pekerjaan Serverless Computing yang berhasil dieksekusi dalam rentang waktu tertentu.
SELECT
(SUM((serverless_allocated_cores::DECIMAL(38, 4)) * (serverless_resource_used_time_ms::DECIMAL(38, 4))) / 1000 / 60 / 60)::bigint AS serverless_cuh
FROM
hologres.hg_serverless_computing_query_log
WHERE
status = 'SUCCESS'
AND serverless_allocated_cores IS NOT NULL
AND serverless_resource_used_time_ms IS NOT NULL
AND query_end BETWEEN '2024-05-01 00:00:00' AND '2024-05-31 24:00:00';-- Tentukan rentang waktu
Estimasi Konsumsi Sumber Daya
Jika Anda belum mengaktifkan Serverless Computing tetapi ingin memperkirakan biaya menjalankan pernyataan SQL tertentu menggunakan resource Serverless, Anda dapat terlebih dahulu mengeksekusinya menggunakan resource instans Hologres Anda. Tabel sistem hologres.hg_query_log mencakup bidang cpu_time_ms, yang mencatat waktu CPU yang dikonsumsi oleh setiap pekerjaan SQL. Anda dapat memperkirakan konsumsi resource Serverless secara kasar menggunakan rumus berikut: cpu_time_ms / 1000 / 60 / 60. Anda dapat menggunakan perintah berikut untuk mengkueri cpu_time_ms:
SELECT cpu_time_ms FROM hologres.hg_query_log WHERE query_id = 'xxx';
Resource instans dapat dipengaruhi oleh workload lain, sedangkan resource Serverless bersifat terisolasi. Kapasitas resource kedua jenis tersebut juga berbeda. Karena alasan ini, metode ini tidak dapat memberikan perkiraan konsumsi Serverless yang akurat. Kami menyarankan Anda memilih pekerjaan SQL utama dan mengujinya langsung dengan Serverless Computing seperti yang dijelaskan dalam Serverless Computing User Guide. Pengujian ini tidak memengaruhi tugas lain pada instans Anda.
Pemantauan dan Peringatan Konsumsi
Batas Penggunaan Harian
Mulai dari Hologres V3.1.5, Anda dapat membatasi penggunaan harian Serverless Computing menggunakan perintah SQL berikut. Hanya Superuser yang dapat mengatur batas ini.
-- Tetapkan batas untuk database
ALTER DATABASE <db_name> SET hg_serverless_computing_daily_max_cuh_usage_threshold = xx;
-- Tetapkan batas untuk pengguna
ALTER USER <user_name> SET hg_serverless_computing_daily_max_cuh_usage_threshold = xx;
-
Rincian Batas
-
Nilai default adalah -1, yang menunjukkan bahwa tidak ada batas yang ditetapkan.
-
Satuannya adalah CU·H.
-
Hologres mengagregasi dan memperbarui total penggunaan Serverless Computing untuk instans setiap 10 menit. Oleh karena itu, penerapan batas mungkin tertunda hingga 10 menit.
-
Sebelum mengeksekusi pernyataan SQL, Hologres membandingkan penggunaan harian Serverless instans saat ini dengan batas yang dikonfigurasi untuk pengguna atau database. Jika batas tercapai, pernyataan SQL secara otomatis beralih ke penggunaan resource komputasi instans. Jika tidak, pernyataan SQL dijalankan pada resource Serverless.
-
Hologres melacak penggunaan harian Serverless berdasarkan zona waktu default database. Anda dapat menjalankan perintah berikut dalam sesi yang sama untuk memeriksa zona waktu database saat ini:
-- Atur ulang zona waktu untuk menghindari pengaruh dari pengaturan klien atau pengguna RESET timezone; -- Tampilkan zona waktu default database SHOW timezone;
-
-
Rekomendasi
-
Jika Anda secara rutin menggunakan Hologres Serverless Computing, Anda dapat menentukan batas harian yang sesuai dengan meninjau informasi penggunaan yang dijelaskan dalam Query Resource Consumption Over a Specified Time Period.
-
Jika Anda baru mengenal Serverless Computing, kami menyarankan Anda menunggu hingga workload Anda stabil sebelum menetapkan batas penggunaan harian.
-
Untuk mencegah kueri secara otomatis beralih ke resource instans ketika batas terlampaui dan sebagai gantinya membuat kueri gagal langsung, Anda dapat menjalankan perintah berikut. Hanya Superuser yang dapat mengatur parameter ini.
-- Tetapkan di tingkat database
ALTER DATABASE <db_name> SET hg_serverless_computing_enable_fallback_when_exceed_cuh_threshold = false;
-- Tetapkan di tingkat pengguna
ALTER USER <user_name> SET hg_serverless_computing_enable_fallback_when_exceed_cuh_threshold = false;
-
Nilai default adalah `true`, yang mengaktifkan fallback otomatis ke resource instans ketika batas terlampaui.
-
Jika Anda mengatur parameter ini ke `false`, kueri akan gagal dan menghasilkan error berikut:
serverless computing is not available due to exceeding cuh usage threshold, please adjust the threshold or turn off serverless computing for current query.
Analisis Biaya
Anda dapat menggunakan modul di Expenses and Costs untuk memantau dan menganalisis penagihan resource komputasi Hologres.
-
Masuk ke Expenses and Costs. Di panel navigasi sebelah kiri, klik .
-
Di halaman Cost Analysis, pada bagian kanan , pilih Billing Item. Kemudian, pilih Cost Type dan Time Granularity sesuai kebutuhan.
-
Di bagian kanan Filter Conditions, pilih Billing Item yang sesuai dengan jenis resource Anda.
Untuk informasi selengkapnya, lihat Cost Analysis.
Peringatan Pengeluaran
Anda dapat menggunakan layanan Expenses and Costs yang disediakan oleh Alibaba Cloud untuk mengelola anggaran dan mengatur peringatan pengeluaran bayar sesuai penggunaan untuk produk tertentu di wilayah tertentu. Untuk informasi selengkapnya, lihat Expense Alerts.
Peringatan Durasi Eksekusi SQL Tunggal
Hologres mendukung pemantauan metrik Serverless Computing. Kami menyarankan Anda membuat aturan peringatan berdasarkan skenario bisnis Anda untuk menghindari biaya tak terduga.
Sebagai contoh, untuk metrik Durasi terpanjang di antara kueri Serverless Computing yang sedang berjalan, kami merekomendasikan aturan peringatan berikut:
Peringatan: Durasi terpanjang di antara kueri Serverless Computing yang sedang berjalan ≥ 3.600.000 milidetik selama 5 periode berturut-turut (1 periode = 1 menit).

Untuk informasi selengkapnya, lihat Monitoring and Alerting Best Practices.
Referensi
-
Untuk ikhtisar Serverless Computing, lihat Serverless Computing.
-
Untuk petunjuk penggunaan, lihat Serverless Computing User Guide.