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.uri

Prometheus 協調器主機位址

prometheus.query-chunk-duration

每個 Prometheus 查詢的持續時間

prometheus.max-query-duration

Prometheus 整體查詢的寬度,將會劃分為 query-chunk-duration 查詢

prometheus.cache-ttl

組態值快取的時間長度

prometheus.bearer-token-file

保存用於存取 Prometheus 的 Bearer Token 的檔案

避免耗盡您的 Presto 可用堆積

prometheus.query-chunk-durationprometheus.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 設定需要,否則不是必要的。