Pushgateway 是一个中间服务,允许您从无法被抓取的作业推送指标。有关详细信息,请参阅推送指标。
我们仅建议在某些有限的情况下使用 Pushgateway。盲目地使用 Pushgateway 而不是 Prometheus 常规的拉取模型进行通用指标收集时,存在一些陷阱。
up
指标(在每次抓取时生成)进行的自动实例健康监控。当作业的多个实例通过 instance
标签或类似标签在 Pushgateway 中区分其指标时,后一点尤其重要。即使原始实例被重命名或删除,实例的指标仍将保留在 Pushgateway 中。这是因为 Pushgateway 作为指标缓存的生命周期与向其推送指标的进程的生命周期从根本上是分开的。与 Prometheus 常规的拉取式监控形成对比:当一个实例消失(有意或无意)时,它的指标也会自动消失。使用 Pushgateway 时,情况并非如此,您现在必须手动删除任何过时的指标,或者自行自动化此生命周期同步。
通常,Pushgateway 的唯一有效用例是捕获服务级别批处理作业的结果。 “服务级别”批处理作业是指在语义上与特定机器或作业实例无关的作业(例如,为整个服务删除多个用户的批处理作业)。此类作业的指标不应包含机器或实例标签,以将特定机器或实例的生命周期与推送的指标分离。这减少了在 Pushgateway 中管理过时指标的负担。另请参阅监控批处理作业的最佳实践。
如果入站防火墙或 NAT 阻止您从目标拉取指标,请考虑也将 Prometheus 服务器移动到网络屏障后面。我们通常建议在与受监控实例相同的网络上运行 Prometheus 服务器。否则,请考虑 PushProx,它允许 Prometheus 遍历防火墙或 NAT。
对于与机器相关的批处理作业(例如自动安全更新 cron 作业或配置管理客户端运行),请使用 Node Exporter 的 textfile 收集器而不是 Pushgateway 来暴露生成的指标。
此文档是 开源的。请通过提交问题或拉取请求来帮助改进它。