请指教
我正在使用 Pushgateway 来监控自定义服务。据我了解,我们发送的所有度量标准都由 Pushgateway 存储在自己的内部数据库中,然后暴露给 Prometheus。如果这是真的,我有以下含义(我测试了除了 1.,这就是它现在对我有用的方式):
- Prometheus 必须在每次刮擦上处理全部测量值,包括旧的
- 如果测量在 Pushgateway 中被删除或替换,那么它在 Prometheus 中也不再可用
- 如果 Pushgateway 关闭(特别有趣的是它可能会因为向其推送不一致的指标而关闭,因此如果端口打开,任何人都可以通过单个 PUT 请求将其关闭),Prometheus 中的测量将再次不可用
从我的角度来看,这种情况非常愚蠢,考虑到 Prometheus 在 TSDB 方面或多或少是生产就绪的行业标准,所以我希望很多,这只是我缺乏误解。
我想要以下配置:
- 一个。测量被发送到 Pushgateway
- 湾。Prometheus 正在从 Pushgateway 读取测量值并将其写入自己的数据库中
- C。当 Prometheus 读取该指标时,Pushgateway 正在删除该指标
到目前为止,我无法实现上述目标。
我还尝试通过 node_exporter 配置基于文本的抓取,结果相同:只要我将文本文件保留在节点上,度量和测量就可用。如果我删除文本数据,测量值会从 Prometheus 中消失,因此它不会自行存储。
UPD 实际上,我能够找到从文本文件中抓取的旧指标——只需要设置过去的时间段而不是“现在”。所以这行得通,普罗米修斯正在将文本文件中的指标写入自己的数据库,我将使用这个解决方案