最近在用Prometheus收集数据,虽然网上资料现在有不少,但是命令和参数的描述都不够详细.这里简单记录我最近用到的一些配置

由于我们需要收集大批量的数据,而且也用到了pushgateway来推送数据到prometheus,所以prometheus的部署架构需要考虑到性能问题(高可用由于Prometheus本身不支持主从,而我们也没用k8s等云所以不做考虑了)。 我们的场景需要满足以下特点: - 数据量大,每天几千万的指标 - 需要保存短期数据(比如一周),但是无需保留长期数据(例如一年).

所以我使用了prometheus的本地存储和联邦集群.至于这两个概念可以看这里.这里需要特别说明的是本地存储中,数据是以块(block)的形式存放的,而块中的数据又是以时间序列形式存在。

接下来需要说明的是本地存储的一些启动命令的作用:

–storage.tsdb.min-block-duration: 单个块中最小存放的数据
–storage.tsdb.max-block-duration: 单个块中最大存放的数据
–storage.tsdb.retention: 块的过期时间.

举个栗子:

假设有如下设置:
–storage.tsdb.max-block-duration 1h
–storage.tsdb.max-block-duration 15m
–storage.tsdb.retention 2h

再假设你在今天的16:00搜索了数据,那么你最多可以搜索到今天13:00(即16-(2-1))的数据.而最少也可以搜索到14:45(如果期间数据在产生)往后的数据。