Prometheus 连接器¶
Prometheus 连接器允许在 Presto 中将 Prometheus.metrics 作为表格读取。
查询 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 令牌的文件 |
避免耗尽 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 令牌身份验证¶
Prometheus 可以设置为要求每个查询都带有 Authorization 标头。 prometheus.bearer-token-file
中的值允许从配置的文件中读取 Bearer 令牌。此文件是可选的,除非您的 Prometheus 设置要求它,否则不需要。