本篇要來講述 Prometheus Server 處理 /query_range 的流程。
首先 /query_range 裡,除了 PromQL 還會有 時間範圍 和 時間間隔。
API 的 handler 會先將這三個參數解析出來,確保合法後,連同 storage 的參考,交給 PromQL 引擎。
PromQL 引擎要先檢查目前使用的 go routine 還沒超出上限,才會產生新的 go routine 來處理這個查詢。
新的 go routine 會先把 PromQL 語句解析成 Node 構成的AST。視 AST 計算出的格式,決定回傳的格式。
之後才 PromQL 引擎才會從 storage 拿出需要的資料查詢。