Prometheusコネクタ¶
Prometheusコネクタを使用すると、PrometheusのメトリクスをPrestoのテーブルとして読み取ることができます。
Prometheusへのクエリは、PrometheusのHTTP APIを使用します。具体的には、すべてのクエリは次のような形式のPrometheusのインスタントクエリに変換されます。https://: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=https://: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の設定で要求されない限りは必要ありません。