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