Prometheus 連接器¶
Prometheus 連接器允許將 Prometheus 指標讀取為 Presto 中的表格。
查詢 Prometheus 的機制是使用 Prometheus HTTP API。具體來說,所有查詢都會解析為 Prometheus 即時查詢,形式如下:https://127.0.0.1:9090/api/v1/query?query=up[21d]&time=1568229904.000” 在此情況下,up
指標取自 Presto 查詢表名稱。21d
是查詢的持續時間。Prometheus time
值對應於 timestamp
欄位。Presto 查詢會從它們對 timestamp
欄位的使用轉換為所需的持續時間和時間值。Presto 分割是透過將查詢範圍劃分為嘗試相等的區塊來產生。
組態¶
建立 etc/catalog/prometheus.properties
以將 Prometheus 連接器掛載為 prometheus
目錄,並根據需要替換屬性
connector.name=prometheus
prometheus.uri=https://127.0.0.1:9090
prometheus.query-chunk-duration=1d
prometheus.max-query-duration=1h
prometheus.cache-ttl=30s
prometheus.bearer-token-file=/path/to/bearer/token/file
組態屬性¶
下列組態屬性可用
屬性名稱 |
描述 |
---|---|
|
Prometheus 協調器主機位址 |
|
每個 Prometheus 查詢的持續時間 |
|
Prometheus 整體查詢的寬度,將會劃分為 query-chunk-duration 查詢 |
|
組態值快取的時間長度 |
|
保存用於存取 Prometheus 的 Bearer Token 的檔案 |
避免耗盡您的 Presto 可用堆積¶
prometheus.query-chunk-duration
和 prometheus.max-query-duration
是保護 Presto 不從 Prometheus 擷取過多資料的值。prometheus.max-query-duration
是特別關注的項目。
在已執行一段時間的 Prometheus 執行個體上,並取決於資料保留設定,21d
可能過多。或許 1h
可能是更合理的設定。在 1h
的情況下,將 prometheus.query-chunk-duration
設定為 10m
可能是很有用的,將查詢視窗劃分為 6 個查詢,每個查詢都可以在 Presto 分割中處理。
主要查詢發行者可以透過利用 WHERE
子句中對 timestamp
的限制來限制 Prometheus 傳回的資料量,設定定義相對較小視窗的上限和下限。例如
SELECT * FROM prometheus.default.up WHERE timestamp > (NOW() - INTERVAL '10' second);
如果查詢不包含 WHERE 子句限制,則這些組態設定旨在防止無限查詢。
Bearer Token 驗證¶
可以設定 Prometheus,要求每個查詢都使用 Authorization 標頭。prometheus.bearer-token-file
中的值允許從組態的檔案讀取 Bearer Token。此檔案是選用的,除非您的 Prometheus 設定需要,否則不是必要的。