全部产品
Search
文档中心

Hologres:Pantau dan analisis penggunaan resource komputasi tanpa server

更新时间:Dec 11, 2025

Resource tanpa server dikenai biaya berdasarkan konsumsi dan durasi penggunaan. Panduan ini menjelaskan cara melihat penggunaan resource komputasi tanpa server Anda serta memperkirakan biaya terkait.

Catatan mengenai penagihan

Serverless Computing menagih setiap pekerjaan SQL berdasarkan Jam-CU (Compute Units × Hours). Metrik ini mengukur konsumsi resource dengan mengalikan jumlah CU yang digunakan dengan durasi pekerjaan tersebut. Setiap jam, penggunaan dari jam sebelumnya diagregasi, tagihan dibuat, dan biaya dipotong secara otomatis. Untuk informasi penagihan lebih lanjut, lihat Ikhtisar penagihan.

Penting
  • Serverless Computing telah tersedia secara komersial dan dapat ditagih sejak 1 Juli 2024 (UTC+8).

  • Lihat Panduan Serverless Computing untuk informasi mengenai wilayah dan zona yang didukung.

  • Baik hologres.hg_query_log maupun hologres.hg_serverless_computing_query_log menyimpan data selama 30 hari terakhir.

Hanya pekerjaan SQL yang berhasil dieksekusi yang dikenai biaya. Pekerjaan yang gagal tidak ditagih.

Kueri penggunaan resource

Mulai dari Hologres V2.1.18, kueri tampilan hologres.hg_serverless_computing_query_log untuk menghitung penggunaan resource tugas Serverless Computing dan memperkirakan biaya. Untuk informasi lebih lanjut, lihat Kueri dan analisis log kueri lambat.

Catatan
  • Pada versi sebelum Hologres V2.2.7, log kueri lambat hanya mencatat tugas komputasi tanpa server yang berhasil dan berdurasi lebih dari 100 ms serta semua tugas yang gagal. Mulai Hologres V2.2.7 dan versi setelahnya, semua tugas komputasi tanpa server tersedia dalam log kueri lambat.

  • Log kueri lambat mencatat penggunaan resource per pernyataan SQL. Selama pembuatan tagihan, proses seperti agregasi data dan konversi satuan dapat menyebabkan sedikit perbedaan antara data di log dan tagihan akhir.

Izin yang diperlukan

Untuk mengkueri hologres.hg_serverless_computing_query_log, diperlukan izin berikut:

  • Kueri pemindaian data semua database dalam suatu instans

    • Anda memiliki peran superuser:

      -- Superuser dapat menjalankan perintah ini. Ganti "Account ID" dengan ID akun Alibaba Cloud yang sebenarnya. Untuk RAM user, tambahkan awalan "p4_" pada ID tersebut.
      ALTER USER "Account ID" SUPERUSER;
    • Atau, Anda adalah pengguna biasa yang ditambahkan ke kelompok pengguna pg_read_all_stats:

      Catatan

      Untuk melihat semua log kueri lambat sebagai pengguna biasa, mintalah superuser instans untuk menambahkan Anda ke kelompok ini.

      GRANT pg_read_all_stats TO "Alibaba Cloud account ID";-- Model otorisasi PostgreSQL standar
      CALL spm_grant('pg_read_all_stats', 'Alibaba Cloud account ID');  -- Model izin sederhana (SPM)
      CALL slpm_grant('pg_read_all_stats', 'Alibaba Cloud account ID'); -- Model izin tingkat skema (SLPM)
  • Lihat pemindaian data database saat ini

    • Aktifkan model izin sederhana (SPM) atau model izin tingkat skema (SLPM) untuk database tersebut dan tambahkan pengguna ke kelompok pengguna db_admin:

      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 mengkueri volume pemindaian data untuk kueri mereka sendiri di database saat ini.

Catatan

Untuk informasi lebih lanjut, lihat Ikhtisar manajemen izin.

Kueri penggunaan resource untuk satu pernyataan SQL

Contoh:

SELECT
    *,
    queue_time_ms,	-- Durasi antrian pernyataan SQL menunggu resource komputasi tanpa server, dalam milidetik (ms).
    serverless_allocated_cores,	-- Jumlah CU tanpa server yang dialokasikan untuk pernyataan SQL.
    serverless_resource_used_time_ms, -- Waktu resource komputasi tanpa server digunakan oleh pernyataan SQL, dalam 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 penggunaan resource dalam periode waktu tertentu

Contoh:

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 periode waktu.

Perkirakan penggunaan resource untuk pernyataan SQL

Sebelum mengaktifkan Serverless Computing, perkirakan kebutuhan resource untuk pernyataan SQL Anda dengan mengeksekusinya pada instans Hologres yang sudah ada. Tabel sistem hologres.hg_query_log mencatat cpu_time_ms (waktu CPU dalam milidetik), yang mencerminkan konsumsi resource setiap tugas SQL. Perkirakan penggunaan resource tanpa server (Jam-CU) menggunakan rumus berikut: cpu_time_ms / 1000 / 60 / 60. Kueri cpu_time_ms:

SELECT cpu_time_ms FROM hologres.hg_query_log WHERE query_id = 'xxx';
Catatan

Memperkirakan penggunaan resource tanpa server dengan menjalankan pernyataan SQL pada resource instans yang dipesan bersifat perkiraan. Hal ini karena resource instans yang dipesan dapat terpengaruh oleh beban kerja lain. Selain itu, kapasitas kedua jenis resource ini mungkin berbeda. Untuk penilaian yang lebih akurat, kami merekomendasikan memilih tugas SQL utama dan menguji penggunaan resource aktualnya langsung pada resource tanpa server. Proses pengujian ini berjalan secara independen dan tidak akan memengaruhi tugas lain di instans Anda. Untuk informasi lebih lanjut, lihat Panduan pengguna Serverless Computing.

Pantau penggunaan resource

Tetapkan kuota harian

Hologres V3.1.5+ memungkinkan superuser membatasi penggunaan harian resource komputasi tanpa server menggunakan perintah berikut:

-- Tetapkan kuota resource untuk suatu DB.
ALTER DATABASE <db_name> SET hg_serverless_computing_daily_max_cuh_usage_threshold = xx;

-- Tetapkan kuota resource untuk suatu pengguna.
ALTER USER <user_name> SET hg_serverless_computing_daily_max_cuh_usage_threshold = xx;
  • Catatan

    • Nilai default hg_serverless_computing_daily_max_cuh_usage_threshold adalah -1, yang berarti tidak ada batasan yang diterapkan.

    • Satuan: Jam-CU.

    • Hologres memperbarui total penggunaan resource komputasi tanpa server untuk suatu instans setiap 10 menit. Akibatnya, penerapan batasan mungkin mengalami penundaan hingga 10 menit.

    • Sebelum mengeksekusi pernyataan SQL, Hologres membandingkan resource komputasi tanpa server yang digunakan hari itu dengan kuota resource harian untuk pengguna atau database saat ini. Jika batas tercapai, pernyataan SQL akan beralih ke resource instans yang dipesan.

    • Hologres menghitung konsumsi resource komputasi tanpa server berdasarkan hari kalender di zona waktu default database. Anda dapat mengkueri zona waktu default database dengan menjalankan pernyataan berikut dalam sesi yang sama:

      -- Atur ulang zona waktu untuk menghindari pengaruh dari zona waktu klien atau zona waktu default pengguna.
      RESET timezone;
      
      -- Kueri zona waktu default DB saat ini.
      SHOW timezone;
  • Saran

    • Untuk pengguna jangka panjang: Untuk menentukan kuota harian yang sesuai untuk resource komputasi tanpa server, analisis penggunaan resource Anda dalam periode waktu tertentu.

    • Untuk pengguna baru: Kami merekomendasikan menggunakan fitur ini secara ekstensif terlebih dahulu di lingkungan produksi yang stabil. Setelah mengamati pola penggunaan Anda, Anda dapat memutuskan apakah akan menetapkan batas penggunaan kumulatif harian.

Untuk mencegah pernyataan SQL beralih ke resource instans yang dipesan ketika batas penggunaan Serverless Computing tercapai, jalankan perintah berikut sebagai superuser. Konfigurasi ini akan menyebabkan kueri gagal dan mengembalikan error.

-- Tetapkan di tingkat DB.
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;
Catatan
  • Nilai default hg_serverless_computing_enable_fallback_when_exceed_cuh_threshold adalah true. Artinya, begitu batas tercapai, pernyataan SQL secara otomatis dijalankan pada resource instans yang dipesan.

  • Jika Anda mengaturnya ke false dan batas tercapai, pernyataan SQL gagal dan mengembalikan error berikut: serverless computing is not available due to exceeding cuh usage threshold, please adjust the threshold or trun off serverless computing for current query.

Analisis biaya

Pantau dan analisis biaya resource Serverless Computing di konsol Biaya dan Pengeluaran.

  1. Masuk ke Biaya dan Pengeluaran. Di panel navigasi kiri, klik Cost > Cost Analysis.

  2. Di halaman Cost Analysis, pada bagian Conditions di sebelah kanan, atur Category ke Billing Item serta atur Cost Type dan Time Unit.

  3. Di bagian Filters, atur item filter sesuai kebutuhan.

Untuk informasi lebih lanjut, lihat Analisis Biaya.

Tetapkan peringatan biaya

Di konsol Biaya dan Pengeluaran, Anda dapat mengelola anggaran dan menetapkan peringatan untuk item penagihan pay-as-you-go. Untuk informasi lebih lanjut, lihat Peringatan biaya.

Buat peringatan untuk kueri panjang

Hologres mendukung pemantauan metrik Serverless Computing. Kami merekomendasikan membuat aturan peringatan untuk Serverless Computing guna mencegah biaya tak terduga.

Sebagai contoh, untuk metrik Serverless Computing Longest Active Query Time, aturan peringatan yang direkomendasikan adalah sebagai berikut:

Warn: Nilai metrik "Serverless Computing / Serverless Computing Longest Active Query Time" >= 3.600.000 milidetik selama 5 Siklus Berturut-turut (1 Siklus = 1 Menit).

jiankong.jpg

Untuk informasi lebih lanjut, lihat Konfigurasi aturan peringatan.

Referensi