全部產品
Search
文件中心

Hologres:Serverless Computing監控與營運

更新時間:Aug 06, 2025

本文為您介紹在使用Hologres的Serverless Computing功能時,如何通過特定方式進行監控與營運,以確保服務的穩定與高效運行。

查看監控指標

登入Hologres管理主控台,查看執行個體Serverless Query最長運行時間長度、Serverless Computing Query排隊數量、Serverless Computing資源Quota使用率的監控指標。如有需要,可進一步配置監控警示,詳見CloudMonitor

查看任務狀態

  • 查看Serverless Computing資源中正在啟動並執行SQL任務。

    SELECT
        *,
        (running_info::json) ->> 'computing_resource' AS computing_resource,
        (running_info::json) ->> 'current_stage' AS current_stage
    FROM
        hg_stat_activity
    WHERE (running_info::json) ->> 'computing_resource' = 'Serverless'
        AND (running_info::json) -> 'current_stage'->>'stage_name' = 'EXECUTE'
  • 查看Serverless Computing資源中排隊的SQL任務。

    SELECT
        *,
        (running_info::json) ->> 'computing_resource' AS computing_resource,
        (running_info::json) ->> 'current_stage' AS current_stage
    FROM
        hg_stat_activity
    WHERE (running_info::json) ->> 'computing_resource' = 'Serverless'
        AND (running_info::json) -> 'current_stage'->>'stage_name' = 'QUEUE'
  • 查看Serverless Computing資源中SQL任務的運行狀態。

    SELECT
        *,
        (running_info::json) ->> 'computing_resource' AS computing_resource,
        (running_info::json) ->> 'current_stage' AS current_stage
    FROM
        hg_stat_activity
    WHERE 
        query_id = '<query_id>';

查詢歷史任務

說明

hologres.hg_query_loghologres.hg_serverless_computing_query_log均保留一個月的資料。

Hologres自V2.1.18版本起,支援hologres.hg_serverless_computing_query_log視圖,可以直接查看在Serverless Computing資源中執行的歷史任務。

  • 相比慢Query日誌,增加以下欄位:

    • queue_time_ms:Serverless Computing資源中SQL等待排隊時間長度,單位毫秒(ms)。

    • serverless_allocated_cores:Serverless Computing資源實際分配給當前SQL的CU數。

    • serverless_allocated_workers:Serverless Computing資源實際分配給當前SQL的Worker數。

    • serverless_resource_used_time_ms:當前SQL實際佔用Serverless Computing資源的時間長度,單位毫秒(ms)。

  • 在extended_info欄位中,額外記錄以下資訊:

    • serverless_computing_source:Query來源,含以下值:

      • user_submit:使用者自行指定使用Serverless資源執行的Query。

      • query_queue:通過指定查詢隊列的Query全部由Serverless資源執行的Query,詳情請參見使用Serverless Computing資源執行查詢隊列的查詢

      • big_query_isolation_service:通過自適應Serverless功能而使用Serverless資源啟動並執行Query,詳情請參見自適應Serverless計算

      • query_queue_rerun:通過Query Queue的大查詢控制功能,自動使用Serverless資源重啟動並執行Query,詳情請參見大查詢控制

    • query_id_of_triggered_rerun:僅serverless_computing_source為query_queue_rerun時有該欄位,表示重運行Query的原始Query ID。

Hologres自V2.2.7版本前,hologres.hg_serverless_computing_query_log視圖僅支援查看執行時間長度大於100 ms的成功Query和全部失敗Query。Hologres自V2.2.7版本起,支援查看全部Serverless Computing Query。

SELECT
    *
FROM
    hologres.hg_serverless_computing_query_log;

針對部分特殊任務,如COPY、CTAS、INSERT OVERWRITE等,在慢Query日誌中會產生多條記錄,包括任務SQL本身及其執行過程中產生的INSERT記錄,其中的INSERT會實際使用Serverless資源執行。可以通過任務SQL本身的trans_id欄位關聯到INSERT記錄,關聯樣本如下。

SELECT
    query_id,
    query,
    extended_info
FROM
    hologres.hg_query_log
WHERE
    extended_info ->> 'source_trx' = '<transaction_id>' -- 通過COPY/CTAS/RESHARDING等本身記錄的trans_id欄位可以取到transaction_id
    -- extended_info ->> 'src_query_id' = 'query_id'	-- 預存程序不是一個事務,因此需要通過query_id欄位關聯
    -- query like '%<transaction_id>%'	-- RESHARDING任務無法通過extended_info欄位關聯,需要通過query欄位
ORDER BY
    query_start
;

查看資源佔用

查看Serverless Computing資源中正在啟動並執行SQL任務佔用的總資源。

SELECT
    datname::text as db_name,
    (running_info::json) -> 'current_stage' ->> 'stage_name' AS current_stage,
    SUM(((running_info::json) -> 'current_stage' ->> 'serverless_allocated_cores')::int) AS total_computing_resource,
    count(1) as query_qty
FROM
    hg_stat_activity
WHERE (running_info::json) ->> 'computing_resource' = 'Serverless'
GROUP BY
    1,
    2;

返回結果中,列含義介紹:

  • db_name:資料庫名稱。

  • current_stage:執行階段,例如EXECUTE(執行中)、QUEUE(排隊中)等。

  • total_computing_resource:當前DB和執行階段下,總的使用的Serverless Computing的資源。

  • query_qty:SQL數量。