Prometheusコネクタ¶
Prometheusコネクタを使用すると、PrometheusのメトリクスをPrestoのテーブルとして読み取ることができます。
Prometheusへのクエリは、PrometheusのHTTP APIを使用します。具体的には、すべてのクエリは次のような形式のPrometheusのインスタントクエリに変換されます。http://localhost:9090/api/v1/query?query=up[21d]&time=1568229904.000 この場合、up
メトリクスはPrestoクエリテーブル名から取得されます。21d
はクエリの期間です。Prometheusのtime
値はtimestamp
フィールドに対応します。Prestoクエリは、timestamp
フィールドの使用から、必要に応じて期間と時間値に変換されます。Prestoのスプリットは、クエリ範囲をほぼ均等なチャンクに分割することで生成されます。
設定¶
Prometheusコネクタをprometheus
カタログとしてマウントするには、etc/catalog/prometheus.properties
を作成し、必要に応じてプロパティを置き換えます。
connector.name=prometheus
prometheus.uri=http://localhost: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へのアクセスのためのベアラートークンを保持するファイル |
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スプリットで処理できます。
主にクエリ発行者は、timestamp
に関するWHERE
句の制限を利用して、上限と下限を設定することで比較的狭いウィンドウを定義し、Prometheusから返されるデータ量を制限できます。例えば
SELECT * FROM prometheus.default.up WHERE timestamp > (NOW() - INTERVAL '10' second);
クエリにWHERE句の制限が含まれていない場合、これらの設定は、無制限のクエリに対する保護を目的としています。
ベアラートークン認証¶
Prometheusは、すべてのクエリでAuthorizationヘッダーを要求するように設定できます。prometheus.bearer-token-file
の値により、設定されたファイルからベアラートークンを読み取ることができます。このファイルはオプションであり、Prometheusの設定で要求されない限りは必要ありません。